The GNOME accessibility architecture is made up of several
distinct software layers:
Tools Layer. This layer is made up of the tools that can
be used to build accessible applications or to test them for
accessibility support. Examples are tools that can probe an
application to determine whether it implements the accessible
interfaces.
Application Layer. This layer is occupied by the
accessible applications themselves. In the case of GNOME, these
applications can be built most easily by using standard GTK+
widgets, which support the accessibility interfaces defined by the
Accessibility Toolkit Application Programming Interface (ATK API).
Applications for the Java platform should use the Java
Accessibility APIs. Both types of applications connect to assistive
technologies using software bridges provided with GNOME.
Assistive Technologies Platform Layer. This layer is
where the Assistive Technology Service Provider Interface (AT-SPI)
resides. This interface enables developers to integrate
technologies such as screen readers, screen magnifiers, voice
technologies, Braille devices, and alternate pointing technologies
with GNOME accessible applications on any GNOME 2.0-enabled UNIX(R)
or Linux platform.
Assistive Technologies Layer. Assistive technologies,
which interface to the system through the Assistive Technologies
Service Provider Interface (AT-SPI), include solutions such as
screen readers, screen magnifiers, and on-screen keyboards.
Beneath the assistive technologies layer is the operating system
layer, which provides basic services and building blocks that
assistive technologies can use.
Benefits to developers of this architecture, include:
Easy to create accessible solutions
Accessibility support is integrated into the GNOME 2.0 desktop and
not "bolted on" as an afterthought.
Easy to support multiple platform
The same architecture is used on all GNOME 2.0-powered UNIX and
Linux platforms
Java platform support
Assistive technologies provided with GNOME also work with Java
technology-based applications built with the Java Foundation
Classes