GNOME Shell accessibility status

These days some people have started to ask about the current GNOME Shell accessibility status, probably a collateral effect of the Boston Summit, as Joanmarie Diggs and Alejandro Leiva (Orca maintainers) were talking there with GNOME Shell developers, mainly about the current Universal Access UI and how fit Orca on the new ui experience. They are planning to make a summary post so stay tunned.

Anyway, I would like to share my view of the current accessibility status on GNOME Shell. Using the GNOME Shell roadmap as a guide:

  • Magnification: Joseph work has been integrated on GNOME Shell. Not as a extension or something like this, it is a real feature of GNOME Shell. So good news.
  • Design and implement keyboard navigation: Some months before GUADEC Dan Winship started to work on on keyboard navigation, and it has been really active these past months. This includes support on the Shell Toolkit itself (already on master), and then use this on the different regions of the shell, like the overview or the chrome, which provides a promising keyboard navigation. Note that in the case of the overview this is somewhat on a idle, as it is planned a overview relayout (check the overview-relayout branch).
  • Hook up accessibility to ATK: basic ATK support is right now directly provided without loading any Cally module, as Cally is now part of Clutter, and part of the stable Clutter 1.4 release. It is true that Cally can be more complete (this statement applies to any library), but the current status should be enough for GNOME Shell purposes. Of course, new bugs can be detected, and I should need to take a look to this bug, but I don’t see Cally as the main issue here. In the same way, I provided a patch proposal to load the atk-bride on GNOME Shell. The main problem with this patch is that although working, it is not clear if it is the final solution.
  • Comprehensively make controls accessibility: new elements are being defined on the Shell Toolkit, and most of them would require to export appropriate roles and actions. I have started to review this, so I have already created a patch for StLabel, and I have some other items in my TODO, like StWidget tooltips, and the new objects declared on the Javascript code. This is related with the previous keyboard navigation task, as I’m detecting most of then while testing the keyboard navigation patches. So I reported some additional bugs related to provide extra ATK information on the overview navegation (with patches) and the chrome. As there isn’t anything equivalent to gtk widget mnemonics those patches are using direct calls to ATK methods.
  • Theming: it is already reported as a bug, but AFAIK, there is not immediate plans to implement it.

So, if you apply all these patches, you get Orca speeching out most of the events from GNOME Shell. Part of the sections of GNOME Shell can be used using just the keyboard. In the cases that GNOME Shell is using the new core keyboard navigation support Orca reacts to the focus change, although the information exposed is only meaningful on part of the cases.

Apart from this, GNOME Shell includes an accessibility tray icon, with the intention of switch on/off the accessibility features, or start the Universal Access UI to configure those tools. But it is not still complete for the moment, and it seems more a mock-up. The screen reader switch doesn’t starts any screen reader, and although you can start the GNOME Shell magnifier you can’t configure it on the settings dialog (right now you need Orca to do that).

Conclusion

Most (all?) of the missing accessibility holes are detected, and a lot of them have provisional solutions. The process to manage the GNOME Shell with just Orca and the keyboard has started. In fact in my short-medium term plans was updating and finishing the current additional ATK support required on the keyboard navigation support, and create something like a branch or PPA and ask some user feedback (so new bugs). This will be postponed, due last changes on keyboard navigation and the overview-relayout.

But, most of then are provisional solutions, and it is still required to analyze them. Although it works, it is not clear if the current proposal to load the atk bridge, or start to add atk calls to the ui javascript code are the best options. Those should be also good solutions. Using Owen Taylor words “In my mind accessibility has to be held to the same high standards as everything else in GNOME”.

So as it was already stated, it would be really unlikely that GNOME Shell will ship with full accessibility support for GNOME 3.0.

BUT, as the roadmap states, accessibility is being taking into account. People are working on it, with several bugs, patches, and continuous patch review. So what now is a “rough draft”, at that moment will be a “real draft” of the required accessibility support on GNOME Shell, enough at least to start to ask users for feedback, and with a perspective of what it is missing, with the purpose of polish them for the following releases.