An accessibility update

I recently saw somebody ask

Is Fedora accessible now ?

To which I want to say: yes! But this question does not really have a  simple yes-or-no answer. There is lots of nuance to it. A better question would be:

Is this system usable for *me* ?

Accessibility is about making our software usable (and, ideally, pleasant to use) for as many people as we can.

It has been a year since we last gave an update on accessibility (a11y) in and around GTK. Time to look at what has happened in this space since then. On the surface, it might seem that the answer is: not much. But lets look a bit closer.

A new backend

We merged the AccessKit a11y backend in GTK 4.18. This is pretty big news for GTK on platforms other than Linux. For the very first time, GTK applications can be accessible on Windows and macOS. This is also the first rust dependency in GTK.

If you want to try it out, build GTK with the -Daccesskit=enabled build option, and set

GTK_A11Y=accesskit

in the environment. The AccessKit backend works on Linux as well, but we are still defaulting to at-spi here. If you are ever uncertain which a11y backend GTK is using, you can find this information in the inspector.

The new backend was created by Matt Campbell as part the STF initiative.

Keyboard shortcuts in orca

One of the remaining gaps in the Wayland a11y support was the lack of support for the special keyboard shortcuts that are traditionally provided by the orca screen reader.

Another result of the STF initiative was a prototype for a new a11y protocol, including support for these shortcuts, but it was not complete and unmerged.

Thankfully, Lukáš Tyrychtr and Carlos Garnacho cooperated on extracting the relevant parts and completed the shortcuts support. This closes one of the biggest remaining “Wayland accessibility” gaps in  GNOME 48.

An accessible web browser

Georges Basile Stavracas Neto put a lot of effort into making webkitgtk accessible, in particular when it is used in a flatpak sandbox. You can watch his GUADEC talk from last year to learn all about the complexities of this task. But he succeeded, so GNOME Web is now a fully accessible, fully sandboxed web browser.

This was work was also supported by the STF initiative.

A new accessibility tool

Elevado is a new tool to let you browse and explore what apps expose on the a11y bus. The existing tool for this, accerciser, has not been in active development for a long time, so it is good to have an alternative.

The new tool just got ported to rust, so its cool. And it just saw its first release. Try it out!

Elevado was started by Georges to help with his work on a11y in webkitgtk.

The long tail

Beyond these big headline features, there have been many smaller improvements to a11y in GTK and related libraries:

  • A number of missing accessible labels, tooltips and key bindings have been added in the file chooser
  • List boxes now provide information to make orca say the right thing
  • The a11y overlay in the GTK inspector will now show you when your buttons are too small as click targets
  • ATs can receive notification about platform state (such as focus) changes, and custom accessible implementations can emit such notifications
  • We now provide information about shortcuts and mnemonics for actions in the form that orca expects
  • Reporting of text attributes has been improved (a contribution from the LibreOffice team)
  • libadwaita toast notifications are now announced to AT
  • The accessible representation of many libadwaita action row widgets has been improved

Summary

Accessibility in GNOME is continuously improving, thanks to the contributions of many people. Thanks to everybody who helps! ❤️