-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot get Orca to work with the SDL example #328
Comments
Hello @squeaktoy, When you say:
Do you mean that you see a blank window but you can't hear anything when pressing the Tab key? Or do you mean that no window is open? Which display system are you using? X11 or Wayland? I know that our winit example doesn't open any window under Wayland because we are not drawing anything. If you have downloaded accesskit_c pre-built package through our GitHub releases, you should be able to compile the example with CMake, if this is not the case then there might be an issue and I'd like to see the output of the command please. I am not sure to understand what you did to build AccessKit from source, but you won't be able to do so if you want to stick with your distribution provided Rust anyway. Building the header file requires a nightly compiler, and our build process require rustup to locate Cargo and other tools. |
So I just installed rustup and the nightly toolchain and installed the bindings, but the SDL example still doesn't work. I'm using X11. The window opens, but doesn't draw anything, and Orca cannot see the window at all. I can't do anything inside. |
@squeaktoy I will need more information to diagnose the issue:
Also note that the new live regions are not yet supported by Orca, so pressing Space won't display anything. You should hear the button names when pressing Tab though. |
at-spi2-core 2.48.3 Here is an Orca log from when I launch the sdl example and press tab and other keys. |
It seems I figured out the problem. As it turns out, dbus on my system was not configured properly, and one of the fallback mechanisms of dbus is to generate a session bus ID based on an X11 session. Some programs can handle this fallback fine, but it seems that AccessKit cannot handle it properly.
This is just an example and probably needs more work to be integrated into a |
Just in case: @zeenix Does the comment above make sense to you? Are you aware of this "X11 session ID fallback" mechanism apparently missing from zbus? FYI we are connecting to the session bus using |
Thank you! Well it's purely a case of badly installed/configured dbus then. Nothing we can do about it. |
@zeenix Thank you for looking at this. Feel free to ignore this thread now; it's outside the scope of zbus. We shouldn't give up this easily. @squeaktoy will not be the last developer interested in this library whose system is configured this way, and we don't want to give such developers, particularly those who are less tenacious than @squeaktoy, an excuse to give up on accessibility because they encounter an avoidable obstacle. I specifically want AccessKit to appeal to the kind of developer that hates bloat and, as a result, runs a minimal, idiosyncratic desktop environment. That said, the X11 fallback is AT-SPI-specific, so it certainly doesn't belong in zbus. Basically, the AccessKit Unix adapter needs to get a property called |
The original issue seem quite similar to this other one. If the session bus is running and the environment variables are properly propagated (so I think that the fallback mechanism you describe @mwcampbell is a separate issue. While it would have hidden the problem by avoiding the session bus entirely, it comes with major drawbacks. Unless I missed something, we would not be able to lazily initialize our tree so we would turn on accessibility for everyone. We would have to monitor X11 window properties to see when an atom containing the private bus address is attached, but I don't think we can do so. A more elegant solution would be to have the AT-SPI bus launcher expose the But the only situation where this whole process is necessary is when you have a graphical application running as root, as the session bus would either be out of reach or not even started. Pretty much everyone agree that this should not be done though so I'm not sure it is worth adding this complexity into AccessKit. |
All I see is
Orca is turned on, but it won't read anything from this window. Does anyone else have this issue? I'm using accesskit_c v0.6.2. I also tried compiling accesskit from source, which worked after modifying Cargo.toml to not use winit but unix instead. I couldn't build the C bindings though. It requires rustup for some reason, but I want to stick with my distro's toolchain. I just used the header from 0.6.2.
The way I compiled the SDL example is as follows:
CMake again refuses to compile it correctly because it cannot find accesskit despite it being on my system, hence the manual gcc invocation.
The text was updated successfully, but these errors were encountered: