Assistive Technology Service Provider Interface: Difference between revisions

Content deleted Content added
Monkbot (talk | contribs)
m Support: Task 16: replaced (2×) / removed (0×) deprecated |dead-url= and |deadurl= with |url-status=;
Adding local short description: "Computer accessibility framework", overriding Wikidata description "D-Bus based accessibility framework"
 
(21 intermediate revisions by 14 users not shown)
Line 1:
{{Short description|Computer accessibility framework}}
{{Infobox software
| name =
Line 15 ⟶ 16:
| released = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| discontinued =
| latest release version = 2.26.2{{wikidata|property|reference|edit|P348}}
| latest release date = {{Start date and age|2017|10|30}}<ref>{{cite web wikidata| url = https://git.gnome.org/browse/at-spi2-core qualifier| title = AT-SPI git source code repository P348| accessdate = 2015-03-23 P577}}}}</ref>
| latest preview version =
| latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| status = active
| programming language =
| operating system =
Line 32:
}}
 
'''Assistive Technology Service Provider Interface''' ('''AT-SPI''') is a platform-neutral framework for providing bi-directional communication between [[assistive technologies]] (AT) and applications.<ref>{{cite web | url = http://www.linuxfoundation.org/collaborate/workgroups/accessibility/atk/at-spi/overview| title = ATK/AT-SPI SIG Overview | accessdate = 2014-04-10| archive-date = 2014-04-13| archive-url = https://web.archive.org/web/20140413132602/http://www.linuxfoundation.org/collaborate/workgroups/accessibility/atk/at-spi/overview| url-status = dead}}</ref> It is the ''de facto'' standard for providing accessibility to free and open desktops, like GNU/[[Linux]] or [[OpenBSD]], led by the [[GNOME project|GNOME Project]].
 
One common nomenclature to explain an accessibility framework is a usual client-server architecture. In that way, [[Assistive technology#Computer accessibility|Assistive Technologies]] (ATs), likesuch 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 [[Inter-process communication|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.<ref name=webkitgtk>{{cite web|last=Sánchez Prada|first=Mario|title=Accessibility in [WebKit]GTK+|url=http://mariospr.org/2013/02/03/accessibility-in-webkitgtk/|date=February 3, 2013|accessdate=2014-04-10}}</ref>
Line 40:
==Implementations==
 
AT-SPI was originally designed for using [[Common Object Request Broker Architecture]], an object-based [[Inter-process communication|IPC]]/[[Remote procedure call|RPC]] technology, for its transport protocol. The AT-SPI specification itself was tied to CORBA as it was defined in CORBA [[Interface description language|IDL]]. AT-SPI used the GNOME project's own fast and lightweight CORBA implementation, [[ORBit]], and its own framework for creating CORBA components, [[Bonobo (component model)|Bonobo]].<ref>{{cite web|title=Orca Documentation Series|url=https://www.mit.edu/~rjc/orca-docs.html|accessdate=2014-04-10|archive-date=2014-04-13|archive-url=https://web.archive.org/web/20140413132918/http://www.mit.edu/~rjc/orca-docs.html|url-status=dead}}</ref>
 
The GNOME project decided that the 3.0 release willwould be free of ORBit and Bonobo, meaning that a [[D-Bus]] AT-SPI solution was required.<ref>{{cite web|title=Planning for GNOME 3.0|url=https://wiki.gnome.org/ThreePointZero/Plan|accessdate=2014-04-10}}</ref><ref>{{cite web|title=GNOME 3 Porting Guide|url=https://wiki.gnome.org/DevGnomeOrg/Gnome3PortingGuide|accessdate=2014-04-10}}</ref> 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.<ref>{{cite web|title=Accessibility/ATK/AT-SPI/AT-SPI on D-Bus|url=https://wiki.linuxfoundation.org/en/AT-SPI_on_D-Bus#Background|accessdate=2014-04-10}}</ref> The D-Bus version of AT-SPI, AT-SPI version 2, was released along with GNOME 3.0 in April 2011.<ref>{{cite web|title=GNOME 3.0 released: better for users, developers|url=http://www.gnome.org/press/2011/04/gnome-3-0-released-better-for-users-developers-3/|accessdate=2014-04-10}}</ref><ref>{{cite web|title=Git source code released with GNOME 3.0|url=https://git.gnome.org/browse/at-spi2-atk/log/?h=gnome-3-0|accessdate=2014-04-10}}</ref>
 
==Support==
 
AT-SPI provides an ATK bridge, so all thosethe widgetswidget systems or applications that implement ATK will automatically communicate all itstheir events, to AT-SPI. The GNOME widget system, [[GTK+]], or [[Mozilla]] applications like [[Firefox]] and [[Mozilla Thunderbird|Thunderbird]] for GNU/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 (software)|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<ref>{{cite web|title=Accessibility on Linux|url=http://blog.qt.digia.com/blog/2011/08/23/accessibility-on-linux/|accessdate=2014-04-10|archive-url=https://web.archive.org/web/20140707193743/http://blog.qt.digia.com/blog/2011/08/23/accessibility-on-linux/|archive-date=2014-07-07|url-status=dead}}</ref> and it was integrated into Qt for general use a year later.<ref>{{cite web|title=Qt accessibility APIs|url=http://blog.qt.digia.com/blog/2012/06/18/qt-5-accessibility-apis/|accessdate=2014-04-10|archive-url=https://web.archive.org/web/20140707201604/http://blog.qt.digia.com/blog/2012/06/18/qt-5-accessibility-apis/|archive-date=2014-07-07|url-status=dead}}</ref>
 
== 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 ==
Line 67:
== Other uses ==
 
AT-SPI also can also be used for automated testing of user interfaces, with tools such as [[Linux Desktop Testing Project]] and [[Dogtail]].<ref>{{cite web | url = https://wiki.linuxfoundation.org/accessibility/atk/at-spi/start | title = ATK/AT-SPI Special Interest Group | accessdate = 2020-11-26 }}</ref>
 
==Licensing==
Line 79:
 
==See also==
* {{slink|GNOME|GNOME Accessibility}}
 
== External links ==
* [http://directory.fsf.org/project/at-spi/ at-spi], at the [[Free Software Directory]]
* [http://projects.gnome.org/accessibility/ GNOME Accessibility Project homepage]
* [https://web.archive.org/web/20140607010125/https://wiki.linuxfoundation.org/en/Accessibility/News/2010/02/08/AT-SPI2_release_0.1.6 ATSPI2] at the [[Linux Foundation]]
 
== References ==
<references/>
 
== External links ==
* [http[freesoft://directory.fsf.org/project/atAt-spi/ |at-spi]], at the [[Free Software Directory]]
* [httphttps://projectswiki.gnome.org/accessibility/Accessibility GNOME Accessibility Project homepage]
* [https://web.archive.org/web/20140607010125/https://wiki.linuxfoundation.org/en/Accessibility/News/2010/02/08/AT-SPI2_release_0.1.6 ATSPI2] at the [[Linux Foundation]]
 
[[Category:Accessibility API]]