Debian – Why does KDE Accessible / the screenreader start automatically and how to prevent it

accessibilitydebiankde

I'm running Debian 9.1 with KDE and KDE Accessible / the screenreader keeps appearing from time to time for some reason. I'd like to know why that is and how to prevent it from starting.
It's not listed in the autostart entries in Background Services nor in the BootUp-Manager (bum). In the Accessibility Options "Screen reader enabled" is not checked.


ps -ef | grep access gives me:

/usr/bin/dbus-daemon –config-file=/usr/share/defaults/at-spi2/accessibility.conf –nofork –print-address 3
/usr/lib/kde4/libexec/kaccessibleapp

The content of /usr/share/defaults/at-spi2/accessibility.conf can be found here.

Best Answer

It's a session D-Bus service, defined in file /usr/share/dbus-1/services/org.kde.kaccessible.service. It is started indirectly by systemd's user session manager.

See systemctl --user status.

When a GUI desktop session begins, one of the user-level services started at that time is the accessibility bus service: at-spi-dbus-bus.service. It starts at-spi-bus-launcher, which in turn starts an instance of dbus-daemon for the accessibility bus, and the actual D-Bus services of the accessibility bus, including kaccessibleapp.

In order to disable just the kaccessibleapp service, as far as I can see, the file /usr/share/dbus-1/services/org.kde.kaccessible.service would need to stop existing in that directory; there does not seem to be any other way to control the start-up of that service specifically.

If you want to disable the entire accessibility bus, run systemctl --user stop at-spi-dbus-bus.service as your regular user account, then verify nothing important to you is broken by that. If something is wrong, just logging out and back in restarts the accessibility bus again. To persistently disable the accessibility bus from starting, run systemctl --user disable at-spi-dbus-bus.service. To undo, replace disable with enable.

If some other session-level service requires the accessibility bus in its systemd configuration, the accessibility bus service may still get started to fulfill that requirement. To explicitly forbid the start of the accessibility bus even if something else requires it, run systemctl --user mask at-spi-dbus-bus.service. To undo, replace mask with unmask.

Related Question