Features/AtSpiTwo

= At-Spi 2 =

Summary
The at-spi accessibility framework gets ported to D-Bus

Owner

 * Name: Matthias Clasen
 * Email: mclasen@redhat.com

Current status

 * Targeted release:
 * Last updated: 2010-02-03
 * Percentage of completion: 50%

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, at-spi2-atk and pyatspi2 have been built for F13.

caribou is under review.

This feature is being subsumed by the larger GNOME3 feature, and will not be tracked as a standalone feature any longer.

Detailed Description
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: 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.
 * at-spi2-core - protocol definitions and registry daemon
 * at-spi2-atk - the atk-bridge GTK+ module
 * pyatspi - Python bindings for at-spi

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.

Scope

 * Package at-spi2-core. review. Done
 * Package at-spi2-atk. review. Done
 * Package pyatspi. review. Done
 * Rebuild at-spi with support for parallel installation. Done
 * Package caribou. review.
 * Port cspi users to D-Bus: mousetweaks, dasher

How To Test

 * 1) Make sure accessibility support is turned on
 * 2) Install at-spi2-core, at-spi2-atk, pyatspi
 * 3) Set the GConf key /desktop/gnome/interface/at-spi-corba to false
 * 4) Log in again
 * 5) Verify that at-spi-registry is not running
 * 6) Start orca
 * 7) Verify that at-spi-registryd2 has been activated
 * 8) Verify that speech support in orca works as it does with the old stack

Repeat these steps with other accessibility technologies

User Experience
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.

Dependencies

 * at-spi needs to be rebuilt 'relocation' changes outlined above
 * mousetweaks and dasher need to be ported to D-Bus (upstream)

Contingency Plan

 * 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

Documentation

 * http://www.linuxfoundation.org/collaborate/workgroups/accessibility/atk/at-spi/at-spi_on_d-bus

Release Notes

 * Fedora 14 is one of the first distributions to include the D-Bus-based at-spi2 accessibility framework.

Comments and Discussion

 * See Talk:Features/AtSpiTwo