OBS, Orca screen reader and x11: program opens for a few seconds then crashes
Operating System Info
Other
Other OS
ArchLinux
OBS Studio Version
30.0.2
OBS Studio Version (Other)
No response
OBS Studio Log URL
https://obsproject.com/logs/FTVzbkLjRel64W5E
OBS Studio Crash Log URL
No response
Expected Behavior
When opening the program in an X11 session under Plasma 6's X11 session or under I3 the program runs but closes itself after a few seconds, all this with the Orca screen reader enabled. I cannot, for obvious reasons, test this with the screen reader disabled, but I do not believe that has anything to do with it. This does not occur under Wayland, from what I can tell. I am using the Flatpak.
Current Behavior
The program should not crash under any kind of session.
Steps to Reproduce
- Turn on the orca screen reader
- Open obs under an Xorg session.
Anything else we should know?
No response
I cannot replicate with orca on i3, please provide a gdb backtrace from the crash. If you find that it is instead exiting unexpectedly instead of crashing then likely your flatpak is out of date or your broke it with something like flatseal.
So uh... this was fun.
This crash just turned up in #linux-support and it took us... checks clock 6 hours to figure out what was happening 💀
Anyway... I got a trace for you:
And the corresponding log for good measure:
Of note are the loads of these lines in the log:
08:28:28.563: Could not find accessible on path: "/org/a11y/atspi/accessible/
Though I am not sure if these originate from Qt, OBS, Orca, or CEF.
The user on Discord was encountering this on SteamOS (Desktop Mode), which I could reproduce once we figured it out as well. I can also see the same on Fedora though, both on the Flatpak and my native Fedora build, so it's not sandboxing shenanigans.
If you need anything else let me know.
For reference, on both systems all that was required was checking this box:
I never had to even enter the Configuration.
Oh right... it's late/early so I forgot about Repro steps 🤦 This can be done with a clean or used profile, doesn't matter.
- Enable the aforementioned screen reader option (in KDE at least, unclear whether other DEs and their screen readers are affected)
- Start OBS
- Add a browser dock - e.g.
https://obsproject.com/browser-source - Click Apply
- The dock spawns with no content, shortly after OBS crashes
edit:
I should also mention during our troubleshooting adventure we also tested whether this was a problem with CEF by running the YouTube dock (which we first thought to be the culprit) in CEF, and couldn't reproduce the crash there.
Since we now know that any Dock is affected, I just tried this again with the browser source placeholder, and I can still not reproduce in cefsimple.
It should also be noted that browser sources are not affected, even when using the Interact option. Only browser docks lead to this crash.
So, this is really just a matter of not attempting to use the browser window with accessibility enabled. You crash when using the browser plugin or just setting up streaming once you've gone through setup. As described in the discord with myself (cos1718) and tarulia, atk-bridge keeps injecting itself into every application, so the accessibility bridge fails on browser content with unexpected processes. CEF emitted a sigtrap and bam, obs goes down with it. This will affect users on the steam machine, steam deck, and steam frame. Because of how you've built the application, there is no native support as things stand. Hoping this helps ^^