Bug#948676: at-spi2-core: /etc/X11/Xsession.d/90qt-a11y does not enable Qt5 support as the Wiki indicates

Samuel Thibault sthibault at debian.org
Sun Jan 12 18:54:22 GMT 2020

Control: reassign -1 qtbase-opensource-src


Thorsten Glaser, le sam. 11 janv. 2020 21:12:47 +0100, a ecrit:
> https://wiki.debian.org/accessibility-devel says it should export
> Exporting that before starting MuseScore makes the latter show up
> in “orca -l” output, so it’s probably needed.

Yes and no.

There is a permanent battle between enabling accessibility by default,
and enabling it only when actually needed.

See Bug#874054 ("Setting QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 has a
huge negative performance impact, should not be always on") for more
details. Currently Qt only enables accessibility when the orca screen
reader is enabled in the control panel.

I guess in your case what you expected was that at the very least
applications started after orca got started should be accessible, even
if orca is only started by hand. This would work if Qt was not only
looking at org.a11y.Status ScreenReaderEnabled (the control panel
configuration), but also at org.a11y.Status IsEnabled (set by Orca on
startup). This would not be enough for making existing applications
accessible when you first start Orca, Bug#874054 mentions that it's
because Qt currently doesn't monitor the dbus IsEnabled variable.

Could we at least restore looking at IsEnabled in Qt, as the attached
patch does? Actually, that is needed for proper focus tracking in Qt
applications for zoom support in compiz when Orca is not used. The
comment there says that IsEnabled is always true, but that's not what I
am observing with e.g. Debian 8's gnome 3.14, Debian 9's gnome 3.22, and
Debian 10's 3.30... Ideally, we'd backport this fix to buster too.

-------------- next part --------------
No, isEnabled does not always return true currently.
We do need to test for isEnabled for the case of running Orca by hand.
It's Orca (or compiz' focuspoll) which sets IsEnabled.

 src/platformsupport/linuxaccessibility/dbusconnection.cpp |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/src/platformsupport/linuxaccessibility/dbusconnection.cpp
+++ b/src/platformsupport/linuxaccessibility/dbusconnection.cpp
@@ -120,8 +120,7 @@ void DBusConnection::serviceRegistered()
     static const bool a11yAlwaysOn = qEnvironmentVariableIsSet("QT_LINUX_ACCESSIBILITY_ALWAYS_ON");
-    // a11yStatus->isEnabled() returns always true (since Gnome 3.6)
-    bool enabled = a11yAlwaysOn || a11yStatus->screenReaderEnabled();
+    bool enabled = a11yAlwaysOn || a11yStatus->screenReaderEnabled() || a11yStatus->isEnabled();
     if (enabled != m_enabled) {
         m_enabled = enabled;

More information about the Pkg-a11y-devel mailing list