GNOME Accessibility Logo

This page provides information related to the impact of removing Bonobo from GNOME 3.0.

Overview

Bonobo has been deprecated for GNOME 2.x and there are plans to eliminate it from GNOME 3.0. The accessibility infrastructure of GNOME depends highly upon Bonobo, so we need to figure out how to move forward with GNOME 3.0 while also keeping it accessible. With respect to accessibility, the main touch points of Bonobo are as follows:

AT-SPI

Updated 02-Nov-2009.

Much work has been done by Mark Doffman and Rob Taylor from Codethink to move the infrastructure to D-Bus, and the http://www.linuxfoundation.org/en/Accessibility/ATK/AT-SPI/AT-SPI_on_D-Bus is the primary page for tracking the work. For the purposes of keeping the entire Bonobo/CORBA deprecation plans for accessibility in one spot, however, we include a discussion here.

The AT-SPI provides the whole of the accessibility infrastructure - GAIL, ATK, at-spi-registryd, Java Access Bridge for GNOME, cspi, pyatspi, etc. Not everything needs changing (phew!). Instead, just the components that touch CORBA need to be changed. The following diagram represents a prototypical example of the components in the infrastructure. The black lines represent the CORBA communication channels between components (lines from Orca and GOK to all the applications have not been included to avoid clutter). The CORBA touchpoints are presented in red: atk-bridge, JABG (Java Access Bridge for GNOME), at-spi-registryd, pyatspi, and cspi. Note that other components, such as GAIL, ATK, and the Java Accessibility API should not need modification.

AT-SPI with CORBA

The following diagram represents the plan for moving to D-Bus. The CORBA components illustrated in red above have been replaced with D-Bus components illustrated in green, with the exception of the Java ATK Wrapper (JAW), which is illustrated in dark blue.

AT-SPI with CORBA

In particular:

Finally, gnome-session currently launches the at-spi-registryd. This will be modified so that D-Bus activation will launch at-spi-registryd.

Here is a mapping of the old to the new files and a description of how to get the CORBA and D-Bus solutions to co-exist on the filesystem.

Remaining Work

The week of April 21st, 2009, several GNOME accessibility community members held a hackfest. This hackfest not only helped train more people about the AT-SPI/D-Bus internals, but also led to improvements in the code base and a clear identification of the remaining work to make the D-Bus implementation a viable replacement for the CORBA implementation.

The remaining work includes the following:

GNOME Speech

Updated 02-Nov-2009.

gnome-speech: provides the text-to-speech infrastructure for GNOME and is based upon Bonobo/CORBA. The primary consumer of gnome-speech on the GNOME desktop is Orca. gnome-speech has a number of limitations, one of which is that it is bound to the GNOME desktop. People want speech to be more of a session and/or system service that can be used across desktop solutions (e.g., GNOME and KDE) as well as at the console level for applications such BrlTTY and speakup. The timing is right to rethink all of gnome-speech and either develop or move to something else. The current alternative solution, Speech Dispatcher, is usable and Orca currently has code to use it (see also Orca/SpeechDispatcher). It, however, comes with its own set of issues/limitations.

Luke "TheMuso" Yelavich (Canonical) has developed a proposal to carry speech dispatcher forward and is busy working on it. Willie Walker has also worked on a preliminary investigation of getting speech-dispatcher running on OpenSolaris (it works after a 3000-line patch Willie created and which Luke has integrated). gnome-speech will be left alone and marked for deprecation once the speech dispatcher work can supplant it and Orca integration with speech dispatcher is complete.

Magnification

Updated 14-Oct-2009.

gnome-mag: provides magnification support for GNOME and is based upon Bonobo/CORBA. gnome-mag suffers from similar limitations as gnome-speech, but perhaps not nearly as so. The primary consumer of gnome-mag is Orca as well as the standalone 'magnifier' application provided by gnome-mag. The other high-visibility magnifier solution available is the eZoom plugin for Compiz.

Magnification in GnomeShell: Joseph Scheuhammer, Ph.D., Accessibility Software Architect Adaptive Technology Research Centre University of Toronto will be working on taking magnification forward. Joseph, Owen Taylor (RedHat), Peter Korn (Sun), Jan Richards (ATRC), and Willie Walker (Sun) met on 21-Jul-2009 to discuss adding magnification support to GnomeShell. Owen showed a very compelling 15-line modification to GnomeShell to demonstrate a hard-coded magnification example. Joseph will be working forward in GnomeShell with Owen, with the goal being to provide standalone magnification support in GnomeShell as well as a DBus API for assistive technologies such as Orca to use. The target is GNOME 3.0. gnome-mag will be left alone and will be marked for deprecation once the GnomeShell magnifier and DBus API can supplant it and Orca integration with the new magnifier API is complete. Patches to GnomeShell that add this magnification functionality can be found in the bugzilla for GnomeShell.

Accessibility/BonoboDeprecation (last edited 2009-11-02 20:57:04 by WillieWalker)