Assistive Technology Service Provider Interface (AT-SPI) is a platform-neutral framework for providing bi-directional communication between assistive technologies (AT) and applications.[3] It is the de facto standard for providing accessibility to free and open desktops, like Linux or OpenBSD, led by the GNOME Project.
Stable release | 2.50.2[1]
/ 16 March 2024 |
---|---|
Repository | |
License | GNU LGPL (version 2)[2] |
Website | wiki |
One common nomenclature to explain an accessibility framework is a usual client-server architecture. In that way, Assistive Technologies (ATs), such as screen readers, 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 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 (ATK)) due to historical reasons related to the underlying technologies.[4]
Implementations
editAT-SPI was originally designed for using Common Object Request Broker Architecture, an object-based IPC/RPC 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.[5]
The GNOME project decided that the 3.0 release would be free of ORBit and Bonobo, meaning that a D-Bus AT-SPI solution was required.[6][7] 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.[8] The D-Bus version of AT-SPI, AT-SPI version 2, was released along with GNOME 3.0 in April 2011.[9][10]
Support
editAT-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+, or Mozilla applications like Firefox 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 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[11] and it was integrated into Qt for general use a year later.[12]
Development
editAT/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
editATK development has been led by their maintainers with the help of its community. The maintainers so far are:[13]
Current:
- Mike Gorse
Previous:
- Mark Doffman
- Li Yuan
Other uses
editAT-SPI can also be used for automated testing of user interfaces, with tools such as Linux Desktop Testing Project and Dogtail.[14]
Licensing
editAT-SPI is released under the GNU Library General Public License (LGPL) version 2.[2]
See also
edit- Accessibility Toolkit (ATK)
- Microsoft Active Accessibility (MSAA)
- Microsoft UI Automation (UIA)
- IAccessible2
See also
editReferences
edit- ^ "Tag 2.50.2".
- ^ a b "AT-SPI git source code repository, COPYING file". Retrieved 2014-04-10.
- ^ "ATK/AT-SPI SIG Overview". Archived from the original on 2014-04-13. Retrieved 2014-04-10.
- ^ Sánchez Prada, Mario (February 3, 2013). "Accessibility in [WebKit]GTK+". Retrieved 2014-04-10.
- ^ "Orca Documentation Series". Archived from the original on 2014-04-13. Retrieved 2014-04-10.
- ^ "Planning for GNOME 3.0". Retrieved 2014-04-10.
- ^ "GNOME 3 Porting Guide". Retrieved 2014-04-10.
- ^ "Accessibility/ATK/AT-SPI/AT-SPI on D-Bus". Retrieved 2014-04-10.
- ^ "GNOME 3.0 released: better for users, developers". Retrieved 2014-04-10.
- ^ "Git source code released with GNOME 3.0". Retrieved 2014-04-10.
- ^ "Accessibility on Linux". Archived from the original on 2014-07-07. Retrieved 2014-04-10.
- ^ "Qt accessibility APIs". Archived from the original on 2014-07-07. Retrieved 2014-04-10.
- ^ "AT-SPI's Maintainers file". Retrieved 2014-03-30.
- ^ "ATK/AT-SPI Special Interest Group". Retrieved 2020-11-26.