### Namespace

# Atk – 1.0

GNOME provides support for accessibility devices using the ATK framework. This framework defines a set of interfaces to which graphical interface components adhere. This allows, for instance, screen readers to read the text of an interface and interact with its controls. ATK support is built into GTK+ 3 and the rest of the GNOME platform, so any application using GTK+ 3 will have reasonable accessibility support for free. GTK4 now includes accessibility support natively and does not need ATK.

Version | 2.61.0
Authors | ATK Development Team
License | LGPL-2.1-or-later
Website | https://wiki.gnome.org/Accessibility
Source | https://gitlab.gnome.org/GNOME/at-spi2-core/

#### Build

C headers | `atk/atk.h`
pkg-config files | `atk`

#### Dependencies

GObject—2.0 | The base type system library
| Browse documentation

#### Related libraries

AT-SPI | The Assistive Technology Service Provider Interface
| Browse documentation

#### Additional documentation

- Classes Hierarchy

#### Classes

GObjectAccessible | This object class is derived from AtkObject and can be used as a basis implementing accessible objects.
Hyperlink | An ATK object which encapsulates a link or set of links in a hypertext document.
Misc | A set of ATK utility functions for thread locking.
NoOpObject | An AtkObject which purports to implement all ATK interfaces.
NoOpObjectFactory | The AtkObjectFactory which creates an AtkNoOpObject.
Object | The base object class for the Accessibility Toolkit API.
ObjectFactory | The base object class for a factory used to create accessible objects for objects of a specific GType.
Plug | Toplevel for embedding into other processes.
Registry | An object used to store the GType of the factories used to create an accessible object for an object of a particular GType.
Relation | An object used to describe a relation between a object and one or more other objects.
RelationSet | A set of AtkRelations, normally the set of AtkRelations which an AtkObject has.
Socket | Container for AtkPlug objects from other processes.
StateSet | An AtkStateSet contains the states of an object.
Util | A set of ATK utility functions for event and toolkit support.

#### Interfaces

Action | The ATK interface provided by UI components which the user can activate/interact with.
Component | The ATK interface provided by UI components which occupy a physical area on the screen. which the user can activate/interact with.
Document | The ATK interface which represents the toplevel container for document content.
EditableText | The ATK interface implemented by components containing user-editable text content.
HyperlinkImpl | A queryable interface which allows AtkHyperlink instances associated with an AtkObject to be obtained. AtkHyperlinkImpl corresponds to AT-SPI’s Hyperlink interface, and differs from AtkHyperlink in that AtkHyperlink is an object type, rather than an interface, and thus cannot be directly queried. FTW.
Hypertext | The ATK interface which provides standard mechanism for manipulating hyperlinks.
Image | The ATK Interface implemented by components which expose image or pixmap content on-screen.
ImplementorIface | The AtkImplementor interface is implemented by objects for which AtkObject peers may be obtained via calls to iface->(ref_accessible)(implementor);.
Selection | The ATK interface implemented by container objects whose `AtkObject` children can be selected.
StreamableContent | The ATK interface which provides access to streamable content.
Table | The ATK interface implemented for UI components which contain tabular or row/column information.
TableCell | The ATK interface implemented for a cell inside a two-dimentional `AtkTable`.
Text | The ATK interface implemented by components with text content.
Value | The ATK interface implemented by valuators and components which display or select a value from a bounded range of values.
Window | The ATK Interface provided by UI components that represent a top-level window.

#### Structs

Attribute

AtkAttribute is a string name/value pair representing a generic attribute. This can be used to expose additional information from an accessible object as a whole (see atk_object_get_attributes()) or an document (see atk_document_get_attributes()). In the case of text attributes (see atk_text_get_default_attributes()), `AtkTextAttribute` enum defines all the possible text attribute names. You can use `atk_text_attribute_get_name()` to get the string name from the enum value. See also `atk_text_attribute_for_name()` and `atk_text_attribute_get_value()` for more information.

Implementor |
KeyEventStruct | Encapsulates information about a key event.
PropertyValues | valid value. This is a field defined with the purpose of contain the previous value of the property, but is not used anymore.
Range | A given range or subrange, to be used with `AtkValue`.
Rectangle | A data structure for holding a rectangle. Those coordinates are relative to the component top-level parent.
TextRange | A structure used to describe a text range.
TextRectangle | A structure used to store a rectangle used by AtkText.
TextSelection | This structure represents a single text selection within a document. This selection is defined by two points in the content, where each one is defined by an AtkObject supporting the AtkText interface and a character offset relative to it. since: 2.52

#### Aliases

AttributeSet | This is a singly-linked list (a `GSList`) of `AtkAttribute`. It is used by atk_text_get_run_attributes(), atk_text_get_default_attributes(), atk_editable_text_set_run_attributes(), `atk_document_get_attributes()` and atk_object_get_attributes().
State | An AtkState describes a single state of an object.

#### Enumerations

CoordType | Specifies how xy coordinates are to be interpreted. Used by functions such as `atk_component_get_position()` and atk_text_get_character_extents().
KeyEventType | Specifies the type of a keyboard evemt.
Layer | Describes the layer of a component.
Live | Enumeration used to indicate a type of live region and how assertive it should be in terms of speaking notifications. Currently, this is only used for “notification” events, but it may be used for additional purposes in the future. since: 2.50
RelationType | Describes the type of the relation.
Role | Describes the role of an object.
ScrollType | Specifies where an object should be placed on the screen when using scroll_to. since: 2.30
StateType | The possible types of states of an object.
TextAttribute | Describes the text attributes supported.
TextBoundary | Text boundary types used for specifying boundaries for regions of text. This enumeration is deprecated since 2.9.4 and should not be used. Use AtkTextGranularity with #atk_text_get_string_at_offset instead.
TextClipType | Describes the type of clipping required.
TextGranularity | Text granularity types used for specifying the granularity of the region of text we are interested in.
ValueType | Default types for a given value. Those are defined in order to easily get localized strings to describe a given value or a given subrange, using atk_value_type_get_localized_name().

#### Bitfields

HyperlinkStateFlags | Describes the type of link.

#### Callbacks

EventListener | A function which is called when an object emits a matching event, as used in #atk_add_focus_tracker. Currently the only events for which object-specific handlers are supported are events of type “focus:”. Most clients of ATK will prefer to attach signal handlers for the various ATK signals instead.
EventListenerInit | An `AtkEventListenerInit` function is a special function that is called in order to initialize the per-object event registration system used by `AtkEventListener`, if any preparation is required.
FocusHandler | The type of callback function used for `atk_component_add_focus_handler()` and atk_component_remove_focus_handler(). deprecated: 2.9.4
Function | An AtkFunction is a function definition used for padding which has been added to class and interface structures to allow for expansion in the future.
KeySnoopFunc | An `AtkKeySnoopFunc` is a type of callback which is called whenever a key event occurs, if registered via atk_add_key_event_listener. It allows for pre-emptive interception of key events via the return code as described below.
PropertyChangeHandler | An AtkPropertyChangeHandler is a function which is executed when an AtkObject’s property changes value. It is specified in a call to atk_object_connect_property_change_handler(). deprecated: Unknown

#### Functions

add_focus_tracker | Adds the specified function to the list of functions to be called when an object receives focus. deprecated: 2.9.4
add_global_event_listener | Adds the specified function to the list of functions to be called when an ATK event of type event_type occurs.
add_key_event_listener | Adds the specified function to the list of functions to be called when a key event occurs. The `data` element will be passed to the `AtkKeySnoopFunc` (`listener`) as the `func_data` param, on notification.
focus_tracker_init | Specifies the function to be called for focus tracker initialization. This function should be called by an implementation of the ATK interface if any specific work needs to be done to enable focus tracking. deprecated: 2.9.4
focus_tracker_notify | Cause the focus tracker functions which have been specified to be executed for the object. deprecated: 2.9.4
get_binary_age | Returns the binary age as passed to libtool when building the ATK library the process is running against. since: 2.8

get_default_registry

Gets a default implementation of the `AtkObjectFactory`/type registry. Note: For most toolkit maintainers, this will be the correct registry for registering new `AtkObject` factories. Following a call to this function, maintainers may call `atk_registry_set_factory_type()` to associate an `AtkObjectFactory` subclass with the GType of objects for whom accessibility information will be provided.

get_focus_object | Gets the currently focused object. since: 1.6
get_interface_age | Returns the interface age as passed to libtool when building the ATK library the process is running against. since: 2.8
get_major_version | Returns the major version number of the ATK library. (e.g. in ATK version 2.7.4 this is 2.). since: 2.8
get_micro_version | Returns the micro version number of the ATK library. (e.g. in ATK version 2.7.4 this is 4.). since: 2.8
get_minor_version | Returns the minor version number of the ATK library. (e.g. in ATK version 2.7.4 this is 7.). since: 2.8
get_root | Gets the root accessible container for the current application.
get_toolkit_name | Gets name string for the GUI toolkit implementing ATK for this application.
get_toolkit_version | Gets version string for the GUI toolkit implementing ATK for this application.
get_version | Gets the current version for ATK. since: 1.20
remove_focus_tracker | Removes the specified focus tracker from the list of functions to be called when any object receives focus. deprecated: 2.9.4
remove_global_event_listener | `listener_id` is the value returned by #atk_add_global_event_listener when you registered that event listener.
remove_key_event_listener | `listener_id` is the value returned by #atk_add_key_event_listener when you registered that event listener.

#### Function Macros

CHECK_VERSION | Returns `TRUE` if the version of the ATK header files is the same as or newer than the passed-in version. since: 2.7.4
DEFINE_ABSTRACT_TYPE | A convenience macro for ATK type implementations. Similar to ATK_DEFINE_TYPE(), but defines an abstract type. since: 1.22
DEFINE_ABSTRACT_TYPE_WITH_CODE | A convenience macro for ATK type implementations. Similar to ATK_DEFINE_TYPE_WITH_CODE(), but defines an abstract type. since: 1.22
DEFINE_TYPE | A convenience macro for type ATK implementations, which declares a class initialization function, an instance initialization function (see `GTypeInfo` for information about these) and a static variable named `t_n` _parent_class pointing to the parent class. Furthermore, it defines a _get_type() function. since: 1.22
DEFINE_TYPE_EXTENDED | The most general convenience macro for ATK type implementations, on which ATK_DEFINE_TYPE(), etc are based. since: 1.22
DEFINE_TYPE_WITH_CODE | A convenience macro for ATK type implementations. Similar to ATK_DEFINE_TYPE(), but allows you to insert custom code into the _get_type() function, e.g. interface implementations via G_IMPLEMENT_INTERFACE(). since: 1.22
DEPRECATED_FOR |
DEPRECATED_IN_2_10_FOR |
DEPRECATED_IN_2_12_FOR |
DEPRECATED_IN_2_14_FOR |
DEPRECATED_IN_2_2_FOR |
DEPRECATED_IN_2_30_FOR |
DEPRECATED_IN_2_36_FOR |
DEPRECATED_IN_2_4_FOR |
DEPRECATED_IN_2_6_FOR |
DEPRECATED_IN_2_8_FOR |
GOBJECT_ACCESSIBLE |
GOBJECT_ACCESSIBLE_CLASS |
NO_OP_OBJECT |
NO_OP_OBJECT_CLASS |
NO_OP_OBJECT_FACTORY |
NO_OP_OBJECT_FACTORY_CLASS |
UNAVAILABLE |

#### Constants

BINARY_AGE | Like atk_get_binary_age(), but from the headers used at application compile time, rather than from the library linked against at application run time.
INTERFACE_AGE | Like atk_get_interface_age(), but from the headers used at application compile time, rather than from the library linked against at application run time.
MAJOR_VERSION | Like atk_get_major_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.
MICRO_VERSION | Like atk_get_micro_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.
MINOR_VERSION | Like atk_get_minor_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.
VERSION_MIN_REQUIRED | A macro that should be defined by the user prior to including the atk/atk.h header. The definition should be one of the predefined ATK version macros: `ATK_VERSION_2_12`, `ATK_VERSION_2_14`,…