Repository navigation
Register with AT-SPI inside a Flatpak sandbox - #12
Closed
chris-addison wants to merge 2 commits into
Closed
chris-addison wants to merge 2 commits into
chris-addison wants to merge 2 commits into
Conversation
gpui_linux now builds against a copy of accesskit_unix 0.24.0 under vendor/, outside the workspace, so the next commit can patch it. This commit is the published crate byte for byte, plus its upstream licence files and a note on why the copy exists. typos skips vendor/.
accesskit_unix connects to the AT-SPI bus only after it reads org.a11y.Status.IsEnabled from org.a11y.Bus on the session bus. Flatpak hides org.a11y.Bus from the sandbox (GetAll fails with ServiceUnknown) and hands the app its own proxy of the accessibility bus in AT_SPI_BUS_ADDRESS instead. The property change stream then never yields, so a sandboxed app never registered and screen readers never saw it. When AT_SPI_BUS_ADDRESS is set and the toggle can't be read, the adapter now connects to that bus at once and treats accessibility as enabled, as GTK and Qt do. Bus::new already prefers that address. Where the toggle can be read, it stays in charge.
Collaborator
Author
|
Superseded by 13: the same two commits on |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes a Flatpak app register with AT-SPI, so screen readers can see it, by carrying a patched copy of
accesskit_unix0.24.0 until an AccessKit release handles the case.Why:
accesskit_unixconnects to the accessibility bus only after it readsorg.a11y.Status.IsEnabledfromorg.a11y.Buson the session bus. Flatpak hidesorg.a11y.Busfrom the sandbox (GetAllfails withServiceUnknown) and hands the app its own proxy of the accessibility bus inAT_SPI_BUS_ADDRESSinstead. The property stream never yields, so the adapter never activates. In the native Unity Hub's Flatpak, the app was missing fromAtspi.get_desktop(0)even with accessibility on. 0.24.0 is the latest release, and upstreammainhas the same code.accesskit_unix0.24.0 undervendor/, byte for byte as published, plus its upstream licence files and aUNITY.mdnote. It sits outside the workspace (exclude), and typos skipsvendor/, so neither CI lane lints third-party code.AT_SPI_BUS_ADDRESSis set andIsEnabledcan't be read, the adapter connects to that bus at once and treats accessibility as enabled, as GTK and Qt do.Bus::newalready prefers that address. Where the toggle can be read, it stays in charge.Verified with the Hub built against this branch and run inside the installed
com.unity.UnityHubsandbox: before, the app was missing from the AT-SPI desktop. After, it lists its frame, dialog, heading, buttons and links. A non-sandboxed build behaves as before.Hub pin: Unity-Technologies/unity-hub#16305. Follow-up: send the second commit to AccessKit and drop
vendor/once a release carries it.🤖 Generated with Claude Code