Assistive Technology Service Provider Interface (AT-SPI) is a platform-neutral framework for providing bi-directional communication between
assistive technologies (AT) and applications. It is the ''de facto'' standard for providing accessibility to free and open desktops, like
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
or
OpenBSD
OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
, led by the
GNOME Project
GNOME Project is a community behind the GNOME desktop environment and the software platform upon which it is based. It consists of all the software developers, artists, writers, translators, other contributors, and active users of GNOME. The GNOM ...
.
One common nomenclature to explain an accessibility framework is a usual client-server architecture. In that way,
Assistive Technologies (ATs), such as
screen readers
A screen reader is a form of assistive technology (AT) that renders text and image content as speech or braille output. Screen readers are essential to blindness, blind people, and are useful to visually impaired people, Illiteracy, illiterate, ...
, would be the clients of that framework, and computer applications would be the server. In this architecture, client and server need to communicate with each other, usually using the
IPC
IPC may refer to:
Businesses and organizations Arts and media
* Intellectual Property Committee, a coalition of US corporations with intellectual property interests
* International Panorama Council, an international network of specialists in ...
technology of the platform. Ideally the accessibility framework exposes this to the client and server in a transparent way.
Usually the API for both client-side and server-side applications are the same, and the accessibility framework provides a client-side and a server-side implementation of that API. In the case of GNOME, there are two different APIs, one for the client-side (AT-SPI) and a different one for the server-side (
Accessibility Toolkit
Accessibility Toolkit (ATK) is an open source software library, part of the GNOME project, which provides application programming interfaces (APIs) for implementing accessibility support in software.
One common nomenclature to explain an acc ...
(ATK)) due to historical reasons related to the underlying technologies.
Implementations
AT-SPI was originally designed for using
Common Object Request Broker Architecture
The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sy ...
, an object-based
IPC
IPC may refer to:
Businesses and organizations Arts and media
* Intellectual Property Committee, a coalition of US corporations with intellectual property interests
* International Panorama Council, an international network of specialists in ...
/
RPC
RPC may refer to:
Science and technology
* Rational polynomial coefficient
* Reactive Plastic Curtain, a carbon-dioxide-absorbing device used in some rebreather breathing sets
* Regional Playback Control, a regional lockout technology for DVDs ...
technology, for its transport protocol. The AT-SPI specification itself was tied to CORBA as it was defined in CORBA
IDL. AT-SPI used the GNOME project's own fast and lightweight CORBA implementation, ORBit, and its own framework for creating CORBA components,
Bonobo
The bonobo (; ''Pan paniscus''), also historically called the pygmy chimpanzee (less often the dwarf chimpanzee or gracile chimpanzee), is an endangered great ape and one of the two species making up the genus ''Pan (genus), Pan'' (the other bei ...
.
The GNOME project decided that the 3.0 release would be free of ORBit and Bonobo, meaning that a
D-Bus
D-Bus (short for "Desktop Bus")
is a message-oriented middleware mechanism that allows communication between multiple Process (computing), processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org pro ...
AT-SPI solution was required. In an effort to move AT-SPI forward, a D-Bus project was started in November 2006. This took the form of a performance and design review available on the GNOME wiki. Work began on the implementation in May 2007. The D-Bus version of AT-SPI, AT-SPI version 2, was released along with GNOME 3.0 in April 2011.
Support
AT-SPI provides an ATK bridge, so all the widget systems or applications that implement ATK will automatically communicate all their events to AT-SPI. The GNOME widget system,
GTK+
GTK (formerly GIMP ToolKit and GTK+) is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary s ...
, or
Mozilla
Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting free software and open standards. The community is supported institution ...
applications like
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curr ...
and
Thunderbird for Linux implement ATK, so they communicate out-of-box with AT-SPI. However, it is completely possible to use AT-SPI without implementing ATK. The
D-Bus
D-Bus (short for "Desktop Bus")
is a message-oriented middleware mechanism that allows communication between multiple Process (computing), processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org pro ...
migration made possible that
Qt added AT-SPI support. Qt implemented its own bridge to AT-SPI that was released in alpha status in August 2011 for testing purposes and it was integrated into Qt for general use a year later.
Development
AT/SPI is part of the GNOME Accessibility Framework that was released in 2001. The main development force behind ATK was the Accessibility Program Office (APO) of Sun Microsystems, Inc. (now Oracle) with contributions from many community members. When Oracle acquired Sun in 2010 they cut developer jobs of full-time developers working on GNOME accessibility components like the Accessibility Toolkit ATK and the Orca screen reader. Since then, it is mainly maintained by the GNOME community.
Maintainers
ATK development has been led by their maintainers with the help of its community. The maintainers so far are:
Current:
* Mike Gorse
Previous:
* Mark Doffman
* Li Yuan
Other uses
AT-SPI can also be used for automated testing of user interfaces, with tools such as
Linux Desktop Testing Project and Dogtail.
Licensing
AT-SPI is released under the
GNU Library General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL) version 2.
See also
*
Accessibility Toolkit
Accessibility Toolkit (ATK) is an open source software library, part of the GNOME project, which provides application programming interfaces (APIs) for implementing accessibility support in software.
One common nomenclature to explain an acc ...
(ATK)
*
Microsoft Active Accessibility
Microsoft Active Accessibility (MSAA) is an application programming interface (API) for user interface accessibility. MSAA was introduced as a platform add-on to Microsoft Windows 95 in 1997. MSAA is designed to help assistive technology (AT) produ ...
(MSAA)
*
Microsoft UI Automation (UIA)
*
IAccessible2
See also
* {{slink, GNOME, Accessibility
References
External links
*
at-spi, at the
Free Software Directory
GNOME Accessibility Project homepageATSPI2at the
Linux Foundation
The Linux Foundation (LF) is a non-profit organization established in 2000 to support Linux development and open-source software projects.
Background
The Linux Foundation started as Open Source Development Labs in 2000 to standardize and prom ...
Accessibility API
GNOME Accessibility