Use AT-SPI screen reader status on Linux#285
Open
matthewflint wants to merge 1 commit intodesktop-app:masterfrom
Open
Use AT-SPI screen reader status on Linux#285matthewflint wants to merge 1 commit intodesktop-app:masterfrom
matthewflint wants to merge 1 commit intodesktop-app:masterfrom
Conversation
Use org.a11y.Status.ScreenReaderEnabled on Linux instead of treating QAccessible::isActive() as equivalent to a running screen reader.
matthewflint
added a commit
to matthewflint/tdesktop
that referenced
this pull request
Apr 17, 2026
Pulls in desktop-app/lib_base#285 for Linux screen reader mode detection.
Contributor
|
Qt's implementation needs a few lines fix and I would like to avoid having 213 lines of new C(!!!) code unless the problem is discussed with Qt folks. Also, you could notice other D-Bus code in the repo uses C++ codegen. |
Author
|
Thanks, got it. I'll take this to the Qt side first and reduce it to a minimal repro. |
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.
Summary
Use
org.a11y.Status.ScreenReaderEnabledfor Linux screen reader mode detection instead of treatingQAccessible::isActive()as equivalent to a running screen reader.On affected Linux X11 setups,
QAccessible::isActive()can become active even when no screen reader is running. That broader accessibility-active state is a poor match for Telegram's screen-reader-specific mode and causes false activation downstream.What changed
ScreenReaderStateimplementation based on AT-SPI statusQT_LINUX_ACCESSIBILITY_ALWAYS_ONas an explicit overrideorg.a11y.Busjust to probe the statusQAccessible::isActive()fallback on LinuxRationale
Applications sometimes need a narrower product signal than Qt's generic accessibility-active state. For Telegram Desktop, that signal feeds screen-reader-specific behavior and a user-facing warning bar. Using
ScreenReaderEnabledis a better fit for that decision than using any accessibility backend activity as a proxy.Validation
org.a11y.Statusproperty reads against a live session busPropertiesChangeddelivery for runtime updates