GNOME Accessibility Logo

Title Here: This page provides information about the mapping of the old CORBA-based AT-SPI to the new D-Bus-based AT-SPI.

GIT Repositories and Files they Install

The AT-SPI infrastructure lives in the following GIT repositories:

General ATK Support

The atk module from git://git.gnome.org/atk is used by both the AT-SPI/CORBA and AT-SPI/D-Bus solutions. It provides the normalizing object model for toolkits such as GTK+, Gecko, and OOo to use and it provides the following files:

/usr/include/atk-1.0/ - include files
/usr/lib/libatk-1.0.* - libraries
/usr/lib/pkgconfig/atk.pc - pkgconfig support
/usr/share/locale/*/LC_MESSAGES/atk10.mo - locale support for ATK strings (e.g., rolenames)

AT-SPI/CORBA

The AT-SPI/CORBA files are all lumped under git://git.gnome.org/at-spi. With at-spi 1.29.2 and greater, the configure file provides a --enable-relocate feature which is enabled by default. If enabled, the at-spi files are installed to non-standard locations and the /desktop/gnome/interface/at-spi-corba boolean gconf key is used to determine whether the files should be used or not. If --enable-relocate is used, the files are installed in the following locations:

/etc/gconf/schemas/at-spi.schemas - holds the new /desktop/gnome/interface/at-spi-corba key
/etc/xdg/autostart/at-spi-registryd.desktop - launches /usr/lib/at-spi-registryd only if the new at-spi-corba key is true
/usr/lib/at-spi-registryd - the CORBA registryd
/usr/lib/bonobo/servers/Accessibility_Registry.server - Bonobo activation support
/usr/lib/gtk-2.0/modules/at-spi-corba/modules/libatk-bridge.* - GTK+ module for the CORBA bridge
/usr/lib/libcspi.* - C API Bindings
/usr/lib/libloginhelper.* - Bindings for helper for login screen
/usr/lib/libspi.* - SPI Bindings
/usr/lib/orbit-2.0/Accessibility_LoginHelper_module.* - Bonobo/ORBit/CORBA support for login helper
/usr/lib/orbit-2.0/Accessibility_module.* - Bonobo/ORBit/CORBA support for AT-SPI
/usr/lib/pkgconfig/cspi-1.0.pc - pkgconfig file
/usr/lib/pkgconfig/libloginhelper-1.0.pc - pkgconfig file
/usr/lib/pkgconfig/libspi-1.0.pc - pkgconfig file
/usr/lib/python2.4/site-packages/pyatspi-corba - relocated 'pyatspi' module
/usr/lib/python2.4/site-packages/pyatspi-corba.pth - relocates 'pyatspi' module to pyatspi-corba if new at-spi-corba key is true
/usr/share/doc/at-spi-1.28.0 - API docs
/usr/share/idl/at-spi-1.0 - API IDL
/usr/share/locale/*/LC_MESSAGES/at-spi.mo - translations for 2 strings that describe the Accessibility_Registry

If --disable-relocate is used, then the schema for the new at-spi-corba is not installed, the GTK+ modules end up directly under /usr/lib/gtk-2.0/modules/libatk-bridge.*, /etc/xdg/autostart/at-spi-registryd.desktop launches the registryd if the /desktop/gnome/interface/accessibility key is set, and the pyatspi module is installed directly under /usr/lib/python2.4/site-packages/pyatspi.

AT-SPI/D-Bus

The AT-SPI/D-Bus support breaks AT-SPI into several repositories. The goal is to allow the modules to be better shared with toolkits such as KDE's Qt toolkit. As a result, some GNOME-isms need to be separated out. The three repositories are as follows:

at-spi2-core

git://git.gnome.org/at-spi2-core provides the core D-Bus definitions and files needed for running the registryd

/usr/include/{dbind,droute}-0.1, /usr/lib/lib{dbind,droute}.*, and /usr/lib/pkgconfig/{dbind,droute}-0.1.pc - dbind and droute support.  These might end up being moved into a static library and not shipped at all.
/usr/lib/at-spi2-registryd - the D-Bus registryd
/usr/share/at-spi2-core/dbus/org.freedesktop.atspi.* - D-Bus XML definitions for AT-SPI
/usr/share/dbus-1/services/org.freedesktop.atspi.Registry.service - D-Bus activation support

at-spi2-atk

git://git.gnome.org/at-spi2-atk provides the AT-SPI/D-Bus GTK+ atk-bridge module:

/usr/lib/gtk-2.0/modules/libatk-bridge.* - GTK+ module for the D-Bus bridge
/usr/share/gnome/autostart/atk-bridge.desktop - [[[WDW - only shipped if GTK_MODULE_DIR is set to a non-default value before building]]]

NOTE - the bridge can be relocated by setting the GTK_MODULE_DIR environment variable.

pyatspi2

git://git.gnome.org/pyatspi2 provides the AT-SPI/D-Bus 'pyatspi' module:

/usr/lib/python2.4/site-packages/pyatspi - the 'pyatspi' python module

NOTE - the pyatspi module directory can be changed by setting the PYATSPI_SUBDIR environment variable.

Coexistence Notes

With the default build settings in git master, the AT-SPI/CORBA and AT-SPI/D-Bus files coexist on the file system without conflict. The /desktop/gnome/interface/accessibility/ boolean gconf key is still used to determine whether accessibility support is desired for the system and AT-SPI/D-Bus is used as the accessibility solution by default. If one wants to use the AT-SPI/CORBA solution, they will also need to set the /desktop/gnome/interface/at-spi-corba boolean gconf key to true.

Note that Firefox, OOo, gdm all hardcode atk-bridge references and gnome-settings-daemon hardcodes "gail:atk-bridge" in its gconf settings. So, the name of the GTK+ module must stay at atk-bridge to reduce the number of changes that need to be made.

As a quick test, you can run the following command from a shell script:

python -c "import pyatspi; print(map(lambda x: x.name, filter(lambda x: x, pyatspi.Registry.getDesktop(0))))"

If you see output with D-Bus references in it (e.g., dbus.String(u'gnome-terminal')), then the system is set up to use AT-SPI/D-Bus. Here's a command you can cut/paste to turn the CORBA bindings on:

gconftool-2 --set /desktop/gnome/interface/at-spi-corba --type bool true

AccessibilityCORBAToDBusMapping (last edited 2009-11-03 18:04:09 by WillieWalker)