This page is for internal use by the Debian accessibility team. For user documentation on accessibility in Debian, please look at the accessibility page. For general package maintainer information on accessibility in Debian, please look at the accessibility maintainer page.

Accessibility stack internals

For graphical desktop accessibility to work, three things are needed:

The first two points, described in details below, can be checked automatically on any desktop with

$ git clone git://
$ sudo apt-get install build-essential pkg-config libdbus-1-dev libatspi2.0-dev libgtk2.0-dev libgtk-3-dev libqt4-dev qtbase5-dev 
$ cd check-a11y
$ source
$ make check

Accessibility bus getting started

This is provided by package at-spi2-core.

For gnome and Unity, this is automatically started from /etc/xdg/autostart/at-spi-dbus-bus.desktop under condition:

gsettings get org.gnome.desktop.interface toolkit-accessibility

For MATE, this is automatically started under condition

gsettings get org.mate.interface accessibility

Others don't start it automatically, but it is getting started when running accessible GTK2, GTK3 or QT4 applications with accessibility enabled. QT5 doesn't start it automatically, but can catch up with it afterwards if accessibility is enabled in it, see below.

Toolkits loading their accessibility layer

gtk3 needs libatk-adaptor and libgail-common, no condition.

gtk2 needs libatk-adaptor and libgail-common, loaded when GTK_MODULES=gail:atk-bridge or loaded by /usr/lib/gnome-settings-daemon-3.0/gtk-modules/at-spi2-atk.desktop when gnome-settings-daemon is running and gsettings get org.gnome.desktop.interface toolkit-accessibility is true.

KDE4 needs qt-at-spi, conditionalized by QT_ACCESSIBILITY=1

KDE5 has it integrated, conditionalized by

gsettings get org.gnome.desktop.a11y.applications screen-reader-enabled

but starting from QT5.4, it can also be forced with QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1

java needs libatk-wrapper-java, conditionalized in /etc/java-7-openjdk/ :


TODO: mono ?

screen reader getting started

gsettings get org.gnome.desktop.a11y.applications screen-reader-enabled

gconftool-2 --get /desktop/gnome/applications/at/screen_reader_enabled

xfconf-query -c xfce4-session -p StartAssistiveTechnologies

qdbus org.kde.kaccessibleapp /Adaptor speechEnabled

can be set with

qdbus org.kde.kaccessibleapp /Adaptor setSpeechEnabled true

kreadconfig5 --file kaccessrc --group ScreenReader --key Enabled

can be set with

kwriteconfig5 --file kaccessrc --group ScreenReader --key Enabled true

Notes about packaging


Testing scenarii (see explanation on

TODO Packaging


More generic details on



Accessibility archive section?