Accessibility Toolkit (ATK) is an open source
software library
In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subr ...
, part of the
GNOME
A gnome is a mythological creature and diminutive spirit in Renaissance magic and alchemy, first introduced by Paracelsus in the 16th century and later adopted by more recent authors including those of modern fantasy literature. Its characte ...
project, which provides
application programming interface
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
s (APIs) for implementing
accessibility
Accessibility is the design of products, devices, services, vehicles, or environments so as to be usable by people with disabilities. The concept of accessible design and practice of accessible development ensures both "direct access" (i. ...
support in software.
One common nomenclature to explain an accessibility framework is a usual
client-server architecture. In that way,
assistive technologies
Assistive technology (AT) is a term for assistive, adaptive, and rehabilitative devices for people with disabilities and the elderly. Disabled people often have difficulty performing activities of daily living (ADLs) independently, or even with ...
(ATs) such as
screen readers, would be the clients of that framework, and computer applications would be the server. In this architecture the client and server need to communicate with each other, usually using the
IPC
IPC may refer to:
Computing
* Infrastructure protection centre or information security operations center
* Instructions per cycle or instructions per clock, an aspect of central-processing performance
* Inter-process communication, the sharin ...
technology of the platform. Ideally the accessibility framework expose 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 (
Assistive Technology Service Provider Interface
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 ...
(AT-SPI)) and a different one for the server-side (ATK) due to historical reasons related to the underlying technologies.
Implementations
The ATK abstract
headers files are freely available to help developers who want to make their
GUI toolkit
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
accessible. Developers who use stock
widgets of GUI toolkits that implements the ATK headers can more easily make their applications accessible. However, if they develop their own widgets, they will have to ensure that they are exposing all the accessible information.
GAIL (GNOME Accessibility Implementation Library) was the name of the accessibility interfaces implementation defined by ATK for
GTK+
GTK (formerly GIMP ToolKit and GTK+) is a free and open-source 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 proprie ...
, the widget library of GNOME. Initially, GAIL was an independent module mapped to GTK+ but since GNOME 3.2, GAIL was merged into GTK+, so the ATK implementation is integrated into GTK+ and GAIL is deprecated.
Apart from GTK+, other GUI toolkits and applications have implemented ATK in order to be accessible, such as OpenOffice/
LibreOffice, Mozilla's Gecko, Clutter and WebKitGTK+.
Development
ATK 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
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
, Inc. (now
Oracle
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination.
Description
The word '' ...
) 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 such as the Accessibility Toolkit ATK and the Orca screen reader. Since then, ATK is mainly maintained by the GNOME community.
Successor
During
GUADEC
GUADEC, the GNOME Users And Developers European Conference, is an annual developer conference, whose prime topic is the development of the GNOME desktop environment and its underlying base software, such as GTK, GStreamer, etc.
The first GUADE ...
2020 Emanuelle Bassi announced to have been working for about 6 months on a successor to ATK. Accessibility will no longer be maintained out-of-tree but be part of
GTK. Available since GTK 3.99.0 The new approach will implement WAI-ARIA (World Wide Web Consortium (W3C) Accessibility Initiative – Accessible Rich Internet Applications).
Maintainers
ATK development has been led by their maintainers with the help of its community. The maintainers so far are:
Current:
* Alejandro Piñeiro Iglesias
Previous:
* Bill Haneman
* Leon Fan
* Li Yuan
References
External links
GNOME Accessibility Team wikiGNOME developer: ATKAccessibility Toolkit Source Download{{GNOME
Accessibility API
GNOME Accessibility
GTK
Software that uses Meson