Accessibility is important for a lot of users, without it they just can not use their computer.

“15% of the world's population lives with some form of disability”

Laws require accessibility.


A few important principles are to be kept in mind

  • We want to make existing software accessible, and avoid dedicated software
  • We need synchronization: accessibility is just another way for input and output
  • It should be easily available, ready to be enabled.

See also Nonvisual Presentation of Graphical User Interfaces: Contrasting Two Approaches which discusses a lot of ground design principles.

TODO Wayland

This is collected on Wayland


Accessibility support is needed in Input


Accessibility support is needed in Output


Accessibility support is needed in applications, through AT-SPI2

at-spi stack overview (source)

A Walkthrough documents the RPC and function calls details.

Gnome provides an Accessibility development guide

For ATK, there is a best ATK practices guide , and a minimal example of extending a base atk implementation is the GtkScaleAccessible class, based on GtkRangeAccessible, see gtk/gtk/a11y/gtkscaleaccessible.[ch]

For adding accessibility support to a custom-made widget, the evince implementation can be used as an example.

For Qt5, there is a guide for QWidget and a guide for Qt Quick

KDE provides an Accessibility development guide in the Human Interface Guidelines , a Plasma Accessibility documentation

Plans for wayland

LinuxJournal proposes a HOW-TO


There are so many accessibility mailing lists, notably for each distribution:

and for each toolkit or desktop:

and for each screen reader:

and cross-software lists:

If something is missing on these pages, don't hesitate to mail (or better, get a freedesktop wiki account to do additions yourself)