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
$ 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

This check is also run automatically on several desktops, please see a11y Desktop status Overview. This is currently work in Progress, so please inform Simon Kainz if you have questions/ideas about this.

Accessibility bus getting started

This is provided by package at-spi2-core.

This is automatically started from /etc/xdg/autostart/at-spi-dbus-bus.desktop

On Stretch and later, it is always started, whatever desktop is used.

On Jessie and before, for gnome and Unity, it is started 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 (already set by default from /etc/X11/Xsession.d/90atk-adaptor in Stretch and later) 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 (already set by default from /etc/X11/Xsession.d/90qt-a11y in Stretch and later)

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 (already set by default from /etc/X11/Xsession.d/90qt-a11y in Stretch)

See more discussion in 874054

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


and it can only work with the GTK look and feel, configured in

/etc/java-*-openjdk/ :

(already set by default in Stretch and later)

If it still doesn't work, debugging help can be obtained via the troubleshoot script from the check-a11y repository.

TODO: mono Winforms ?

screen reader getting started

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

gsettings get org.cinnamon.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


Starting from bookworm, mbrola-enabled debian installer images can easily be created:

More generic details on



Accessibility archive section?


Wiki page restructuring

The current accessibility is a monolithic source of information that makes finding the correct information difficult, especially for non-technical users. Instead, the front accessibility page should be short, and only be a point of entry to other pages which go into details; these should nevertheless shortly be introduced on the front page. Sections would include:

Notably, the troubleshooting and the tips & tricks pieces should go to the corresponding sections so they are easier to find.

Note: please tick sections that you outsource to track the working progress, thanks.