The at-spi accessibility framework gets ported to D-Bus
- Name: Matthias Clasen
- Email: firstname.lastname@example.org
- Targeted release: Fedora 13
- Last updated: 2010-01-06
- Percentage of completion: 33%
Initial packaging has been done for at-spi2-core, at-spi2-atk and pyatspi. The packages have been updated to the 0.1.4 releases, and can now coexist with the old accessibility stack, with runtime switching between the two.
at-spi2-core and at-spi2-atk have been built for F13.
The current at-spi accessibility framework is based on CORBA and ORBit; technologies which are being deprecated and phased out in the GNOME stack. Some features of CORBA (such as remote reference counting, reentrancy) make the current accessibility support fragile. The Linux Foundation is leading an effort to port the accessibility framework to D-Bus. The new stack is planned to debut in GNOME 2.30.
The current at-spi package is being replaced by three components:
- at-spi2-core - protocol definitions and registry daemon
- at-spi2-atk - the atk-bridge GTK+ module
- pyatspi - Python bindings for at-spi
There is no replacement for the cspi 'C bindings' at the moment. The current users of cspi are being ported to use D-Bus directly (mousetweaks) or replaced (gok being replaced by Caribou). Other components that use cspi and whose status is unknown (to me): dasher.
To make the transition phase less painful, there are some efforts to allow the old and new stacks to coexist. The CORBA-based at-spi stuff will install its atk-bridge module and Python bindings somewhere else, and there will be a desktop file that sets the GTK_PATH environment variable and a pyatspi.pth Python module that sets some Python path. These path-tweaks will be triggered by a GConf key, allowing both stacks to be installed at the same time and allowing users and testers to switch back and forth between the stacks. bug 606251 has more details.
Benefit to Fedora
Fedora stays close to upstream in the area of accessibility. Some long-standing problems with the CORBA-based accessibility stack will hopefully be solved as a side-effect of the move to D-Bus. By making the new stack available in parallel to the old one early on in rawhide, we help to provide the necessary testing and feedback to the upstream accessibility developers.
- Package at-spi2-core. review
- Package at-spi2-atk. review
- Package pyatspi. review
- Rebuild at-spi with support for parallel installation
- Package caribou
- Port cspi users to D-Bus: mousetweaks, dasher
How To Test
- Make sure accessibility support is turned on
- Install at-spi2-core, at-spi2-atk, pyatspi
- Set the GConf key /desktop/gnome/interface/at-spi-corba to false
- Log in again
- Verify that at-spi-registry is not running
- Start orca
- Verify that at-spi-registryd2 has been activated
- Verify that speech support in orca works as it does with the old stack
- Start accerciser (you may have to build accerciser because it has not been reviewed yet - see bug #546738 )
- Verify that you can see desktop applications in the top left pane
- Verify that you can expand the widget tree for the various applications in the top left pane
Repeat these steps with other accessibility technologies
Accessibility tools will work as well as (or hopefully better than) they used to. The onscreen keyboard will no longer be gok, but caribou, which may offer a slightly different user experience.
- at-spi needs to be rebuilt 'relocation' changes outlined above
- mousetweaks and dasher need to be ported to D-Bus (upstream)
- Do not install the at-spi2 packages and caribou
- Don't make them obsolete at-spi and gok
- Undo the porting of mousetweaks and dasher to D-Bus
- Fedora 13 is one of the first distributions to include the D-Bus-based at-spi2 accessibility framework.