Assistive Technology Service Provider Interface ( ATSPI)
The Assistive Technology Service Provider Interface (AT-SPI) is a platform-independent framework for two-way communication between assistive technologies (AT) and applications. It is the de-facto standard for accessing free and open desktops such as Linux or OpenBSD, it is managed by the GNOME project.
common client-server architecture
A common nomenclature for describing an accessibility framework is a common client-server architecture. In this way, assistive technologies (ATs) such as screen readers were the clients of this framework, and computer applications were the server. In this architecture, the client and the server must communicate with each other, usually using the platform’s IPC technology. Ideally, the accessibility framework makes it available to the client and server transparently.
Usually, the API is the same for both client-side and server-side applications, and the accessibility framework provides both client-side and server-side implementation of this API. In the case of GNOME, there are two different APIs, one for the client-side (AT-SPI) and another for the server-side (Accessibility Toolkit (ATK)) for historical reasons related to the underlying technologies.
ATSPI was originally designed to use the Common Object Request Broker Architecture, an object-based IPC/RPC technology, for the transport protocol. The AT-SPI specification itself was related to CORBA as defined in CORBA IDL. SPI used its own quick and easy CORBA implementation, ORBit, and its own framework for building CORBA components, Bonobo, for the GNOME project.
The GNOME project has decided that version 3.0 will be ORBit and Bonobo free, which means that a D-Bus AT-SPI solution must be started. This took the form of a performance and design review available on the GNOME Wiki. Implementation work began in May 2007. The D-Bus version of AT-SPI, AT-SPI version 2, was released with GNOME 3.0 released in April 2011.
AT-SPI provides an ATK bridge, so any system or widget application that implements ATK will automatically communicate all events to AT-SPI. Implement GNOME widget system, GTK, or Mozilla applications such as Firefox and Thunderbird for Linux ATK, so they can communicate with AT-SPI immediately. However, it is entirely possible to use AT-SPI without implementing ATK. The D-Bus migration allowed Qt to add AT-SPI support. Qt implemented its own bridge to AT-SPI, which was released as an alpha in August 2011 for testing purposes and rolled into Qt for general use a year later.
ATSPI is part of the GNOME Accessibility Framework released in 2001. The main development force behind ATK was the Accessibility Program Office (APO) of Sun Microsystems, Inc. (now Oracle), with input from many members of the community. When Oracle acquired Sun in 2010, developer jobs were cut by full-time developers working on GNOME accessibility components such as the Accessibility Toolkit ATK and the Orca screen reader. Since then, it is mainly maintained by the GNOME community.