This is an old revision of the document!
Accessibility in Xfce Core 4.10 Roadmap
In the next release we want to improve accessibility in the core applications of Xfce. The Gtk+ toolkit already provides most of the required accessibility, but there are a lot of parts of the interface (custom widgets, buttons without label) that are hard to access with a screen reader.
This includes the following tasks:
- Test the modules with Orca and Accerciser.
- Add additional contexts and/or bindings (atk).
- Some applications need to install Orca scripts.
- Make sure mnemonics work in all the dialogs and menus (keyboard navigation).
More information about accessibility can be found in the Gnome accessibility guide.
Currently if Xfce4-session is compiled with
–enable-gnome (enable gconf) and Gnome compatibility is checked in the setting, we check the
/desktop/gnome/interface/accessibility key and if set to true, the string array in
/desktop/gnome/accessibility/startup/exec_ats is spawned (see code).
This is obviously hard to find and also not fully working since the required Gtk modules are not loaded as well (this probably was handled by gdm, but not any more?).
Testing can be done by running Orca or Accerciser and start the application with . – option for this in the accessibility dialog.
GTK_MODULES=“gail:atk-bridge” in the environ
We need an xfce-a11y mailing list for discussion on accessibility issues.
Core Changes and Ideas
- Possibly provide a 2nd session desktop file to launch a session with full accessibility enabled (assignee: Nick).
Drop the gconf-depended accessibility loading, but make something that works in Xfce systems too (assignee: Nick).
- Xfce4-session starts the at-spi helpers and takes care of adding “gail:atk-bridge” to the GTK_MODULES environment variable.
- The Log out dialog needs accessibility support implemented (assignee: Jerome).
Bind xfce4-popup-applicationsmenu to Alt+F1.
- Add screen read tab in Accessibility dialog.
Add a checkbox in Accessibility dialog to enable accessibility support for the session.
- What other options do we want in the “Assesible Technologies” tab? Large pointer size? Hight contrast theme? Or option to enable a status icon with quick accessors for those actions?
- Support for keyboard navigation on the panel (bug #2411).
- The bottom panel should be accessible (somehow) by keyboard.
- Notification area
- The notification area should be accessible (somehow) by keyboard.
- Icons in the notification area lack accessibility support.
- The individual elements/icons in the notification area seem to lack associated accessible objects.
- When the menu associated with an icon appears, there is no accessible event.
- When the selection changes within one of the aforementioned menus, there is no accessible event.
- Combo boxes in the Clock dialog should derive their name from the displayed text ('16:13' not '%R')
- Thunar emits no events when the selection changes in the list of icons (panel on the right hand side). It does emit events when the selection changes in the tree on the left.
- I am not sure why the tree on the left is a problem (it's based on GtkTreeView and should emit selection events). Also, I assume that the details view on the right should emit those events. The icon and compact views, however, are custom-built widgets based on
ExoIconView, which in turn is based on
GtkContainerand doesn't implement
gtk/a11y/gtkcontaineraccessible.c). So I guess we'll have to add an
ExoIconViewAccessibleclass or something similar to make this work. — Jannis Pohlmann 2011/09/08 22:25
xfrun4 seems to be completely inaccessible(will be removed in 4.10). ←- and replaced with something accessible, correct? (i.e. run dialogs are handy including for Orca users)
- When pressing Alt+Tab to switch windows, the window first appears and displays text. We get a window:create event and an object:state-changed:showing event for the window. But at that time, the window seems to lack accessible children. As a result, ATs do not seem to have anything they can present when the window first appears. (Subsequent presses of Alt+Tab are accessible and now presented by Orca via a small script which has just been committed to Orca master.)
- The accessible hierarchy is incomplete: There are no children exposed for the individual icons.
- No events are being emitted when the selection changes.
- Impact: When an Orca user arrows amongst items on the desktop, Orca is not able to present the location moved to. Nor can Orca provide “where am I” information (e.g. total number of icons, position, etc.)
- Also, if these are custom widgets, please be sure accessibility is also implemented for when icons are being renamed.
Xfce Power Manager
- Orca does not speak the labels associated with many items in each notebook page (comboboxes, sliders, spin buttons, radio button group labels)
- EITHER manually establish the needed LABEL_FOR, LABELLED_BY AtkRelation pair between the items
- OR set the label's mnemonic widget (and use underline). As a general rule, Gtk+/Gail goodness will then set the aforementioned relationship for you automatically.
- The fact that Orca says 'page' as you arrow up and down amongst the items on the left-hand side is likely something that can, and probably should, be handled within an Orca script.
- Application Finder
- Application Menu
- All dialogs tested so far
- xfwm4 window switching (minus the first appearance)
- Mousepad text editor
Orca Scripts Required
- Xfce Power Manager
- Request: Could the accessible name of Terminal be something more unique to XFCE, like xfce4-terminal or xfterm or something to that effect? If not, no big deal. But my (joanie's) goal is to maintain upstream support for as many Desktop Environments and their apps as is possible in Orca, which means unique app names are highly desirable when possible.
- Request: Please give the applications menu an accessible, localized name (e.g. 'applications'). That way, when a user presses Alt+F1, Orca will say 'applications menu' rather than just 'menu.'
- Request: If possible, please add first letter navigation for menus in which underline is not used. (e.g. the applications menu). We have this in GNOME and it can save a lot of arrowing.