Movatterモバイル変換


[0]ホーム

URL:


W3C

Core Accessibility API Mappings 1.2

W3C Editor's Draft

More details about this document
This version:
https://w3c.github.io/core-aam/
Latest published version:
https://www.w3.org/TR/core-aam-1.2/
Latest editor's draft:
https://w3c.github.io/core-aam/
History:
https://www.w3.org/standards/history/core-aam-1.2/
Commit history
Implementation report:
https://w3c.github.io/test-results/core-aam-1.2/
Latest Recommendation:
https://www.w3.org/TR/core-aam-1.1/
Editors:
Valerie Young (Igalia, S.L.)
Cynthia Shelly (W3C Invited Expert)
Former editors:
Alexander Surkov (Igalia, S.L.) (Editor until August 2025)
Joanmarie Diggs (Igalia, S.L.) (Editor until October 2022)
Richard Schwerdtfeger (Knowbility) (Editor until October 2017)
Joseph Scheuhammer (Inclusive Design Research Centre, OCAD University) (Editor until May 2017)
Andi Snow-Weaver (IBM) (Editor until December 2012)
Aaron Leventhal (IBM) (Editor until January 2009)
Michael Cooper (W3C) (Editor until July 2023)
Platform Mapping Maintainers:
Benjamin Beaudry (Microsoft Corp.) (UIA)
James Craig (Apple, Inc.) (AX API)
Joanmarie Diggs (Igalia, S.L.) (ATK / AT-SPI)
Alexander Surkov (Igalia, S.L.) (MSAA, IAccessible2)
David Tseng (Google LLC) (Android Accessibility API)
Feedback:
GitHub w3c/core-aam (pull requests,new issue,open issues)

Copyright © 2014-2026World Wide Web Consortium.W3C®liability,trademark andpermissive document license rules apply.


Abstract

This document describes howuser agents should expose semantics of web content languages toaccessibilityAPIs. This helps users with disabilities to obtain and interact with information usingassistive technologies. Documenting these mappings promotes interoperable exposure of roles, states, properties, and events implemented by accessibilityAPIs and helps to ensure that this information appears in a manner consistent with author intent.

This Core AccessibilityAPI Mappings specification defines support that applies across multiple content technologies, including general keyboard navigation support and mapping of general-purposeroles, states, and properties provided in Web content viaWAI-ARIA [WAI-ARIA-1.2]. Other AccessibilityAPI Mappings specifications depend on and extend this Core specification for specific technologies, including native technology features andWAI-ARIA extensions. This document updates and will eventually supersede the guidance in theCore AccessibilityAPI Mappings 1.1 [CORE-AAM-1.1]W3C Recommendation. It is part of theWAI-ARIA suite described in theWAI-ARIA Overview.

Status of This Document

This section describes the status of this document at the time of its publication. A list of currentW3C publications and the latest revision of this technical report can be found in theW3C standards and drafts index.

The Accessible Rich Internet Applications Working Group seeks feedback on any aspect of the specification. When submitting feedback, please consider issues in the context of the companion documents. To comment,file an issue in theW3C core-aam GitHub repository. If this is not feasible, send email topublic-aria@w3.org (comment archive). In-progress updates to the document may be viewed in thepublicly visible editors' draft.

Living specification — This document is maintained as a living specification. For the latest normative version, visitCore AccessibilityAPI Mappings.

This document was published by theAccessible Rich Internet Applications Working Group as an Editor's Draft.

Publication as an Editor's Draft does not imply endorsement byW3C and its Members.

This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite this document as other than a work in progress.

This document was produced by a group operating under theW3C Patent Policy.W3C maintains apublic list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent that the individual believes containsEssential Claim(s) must disclose the information in accordance withsection 6 of theW3C Patent Policy.

This document is governed by the18 August 2025W3C Process Document.

1.Introduction

This section is non-normative.

The Core AccessibilityAPI Mappings specifies howWAI-ARIAroles,states, andproperties are expected to be exposed by user agents via platform accessibilityAPIs. It is part of a set of resources that define and support theWAI-ARIA specification which includes the following documents:

For an introduction toWAI-ARIA, see theWAI-ARIA Overview.

1.1AccessibilityAPIs

AccessibilityAPIs make it possible to communicate accessibility information about user interfaces to assistive technologies. This information includes:

  1. Descriptive properties (role, name, value, position, etc.)
  2. Transient states (pressed, focused, etc.)
  3. Events (text changed, button was clicked, checkbox was toggled)
  4. Actions the user might take (click, check/toggle, drag, etc.)
  5. Relationships (parent/child, description/described object, previous object/next object, etc.)
  6. Textual content

AccessibilityAPIs covered by this specification are:

TheWAI-ARIA 1.0 User Agent Implementation Guide included mappings for [UIA-EXPRESS], also known as IAccessibleEx, which was implemented in Microsoft Internet Explorer 8.0 - 11. New implementations are strongly encouraged to useUI Automation instead.

If user agent developers need to expose information using other accessibilityAPIs, it is recommended that they work closely with the developer of the platform where theAPI runs, and assistive technology developers on that platform.

1.2Comparing AccessibilityAPIs

For various technological and historical reasons, accessibilityAPIs do not all work in the same way. In many cases, there is no simple one-to-one relationship between how each of them names or exposes roles, states, and properties to assistive technologies. The following subsections describe a few of the distinguishing characteristics of some of theAPIs.

1.2.1ATK/AT-SPI

MSAA, IAccessible2,UIA, andAX API each define anAPI that is shared by both the software application exposing information about its content and interactive components, and the assistive technology consuming that information. Conversely, Linux/GNOME separates that shared interface into its two aspects, each represented by a different accessibilityAPI:ATK orAT-SPI.

ATK defines an interface that is implemented by software in order to expose accessibility information, whereasAT-SPI is a desktop service that gathers accessibility information from active applications and relays it to other interested applications, usually assistive technologies.

For example, the GNOMEGUI toolkit [GTK], implements the relevant aspects ofATK for each widget (menu, combobox, checkbox, etc.) in order that GTK widgets expose accessibility information about themselves.AT-SPI then acquires the information from applications built with GTK and makes it available to interested parties.

ATK is most relevant to implementors, whereasAT-SPI is relevant to consumers. In the context of mappingWAI-ARIA roles, states and properties, user agents are implementors and useATK. Assistive Technologies are consumers, and useAT-SPI.

1.2.2UIA (UI Automation)

UI Automation expresses every element of the application user interface as an automation element. Automation elements form the nodes of the application accessibility tree, that can be queried, traversed and interacted with by automation clients.

There are several concepts central to UI Automation:

All automation elements inherit from theIUIAutomationElement interface and all properties that are not specific to a particular control pattern can be queried through that interface. There are several ways to access UI Automation element properties:

Properties for specificUIA control patterns are queried the same way using relevant control pattern interfaces. Taking Toggle Pattern as an example, to query the ToggleState property clients can use IUIAutomationTogglePattern::CurrentToggleState or IUIAutomationTogglePattern::GetCurrentPropertyValue(UIA_ToggleToggleStatePropertyId) to get the current value.

The property mappings in this specification provide the{PropertyName} and do not specify all specific ways to access the property value. Automation clients can access current or cached values using conventions described above, depending on specific needs and coding style conventions.

1.2.3Android AccessibilityAPI

Android accessibility services and applications both express user interface elements as a tree ofAccessibilityNodeInfo objects. Accessibility services receive events, traverse theAccessibilityNodeInfo tree, retrieve properties, and perform actions on a node. Conversely, Android applications build theAccessibilityNodeInfo tree indirectly by constructing views or composables, or directly via anAccessibilityNodeProvider. They then subsequently fire events, and handle actions.

ForWAI-ARIA implementers, of particular interest is the mapping into properties, actions, and events onAccessibilityNodeInfo andAccessibilityEvent.

1.2.4Accessible Names and Descriptions

Each platform accessibilityAPI includes a way to assign and retrieveaccessible name andaccessible description properties for eachaccessible object created in theaccessibility tree. How these properties are implemented and what they are called vary depending on theAPI.

For instance, inMSAA, allaccessible objects support theaccName property, which stores the object'saccessible name. Where the object also supports having anaccessible description,MSAA stores this property in the object'saccDescription property.

Software usingATK can read and write to an object'saccessible-name andaccessible-description properties. In turn,AT-SPI can query the values of those properties through itsatspi_accessible_get_name andatspi_accessible_get_description functions.

Automation elements in theUIA accessibility tree have aName property. Where the object also supports having anaccessible description,UIA stores this property in the object'sFullDescription property.

An object'saccessible description, where provided byaria-description oraria-describedby, should be exposed in theaccessibilityCustomContentAPI. Otherwise, it should be exposed asAXHelp.

In Android, accessible names map to a number of properties defined onAccessibilityNodeInfo such as content description, supplemental description, and text.

For more detail, see theAccessible Name and Description Computation specification.

2.Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key wordsMAY,MUST,MUST NOT,SHOULD, andSHOULD NOT in this document are to be interpreted as described inBCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

Normative sections provide requirements that user agents and assistive technologiesMUST follow for an implementation to conform to this specification.

Non-normative (informative) sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such recommendations in order to conform to this specification.

2.1Features Deprecated inWAI-ARIA

TheWAI-ARIA specificationlists some features as deprecated. Although this means authors are encouraged not to use such features, it is expected that the features could still be used in legacy content. Therefore, it is important that user agents continue to map these features to accessibilityAPIs, and doing so is part of conformance to this specification. When future versions of theWAI-ARIA specification change such features from deprecated to removed, they will be removed from the mappings as well and user agents will no longer be asked to continue support for those features.

3.MappingWAI-ARIA to AccessibilityAPIs

3.1General rules for exposingWAI-ARIA semantics

Where supported by the platformAccessibilityAPI,user agents exposeWAI-ARIAsemantics through the standard mechanisms of the desktop accessibilityAPI. For example, forWAI-ARIAwidgets, compare how the widget is exposed in a similar desktop widget. In general mostWAI-ARIA widget capabilities are exposed through therole, value, Booleanstates, and relations of the accessibilityAPI.

With respect toWAI-ARIA 1.0 and 1.1, accessibilityAPIs operate in one direction only. User agents publishWAI-ARIA information (roles, states, and properties) via an accessibilityAPI, and anAT can acquire that information using the sameAPI. However, the other direction is not supported.WAI-ARIA 1.0 and 1.1 do not define mechanisms for assistive technologies to directly modifyWAI-ARIA information.

The terms "exposing", "mapping", and "including" refer to the creation ofaccessible objectnodes within theaccessibility tree, and populating these objects withAccessibilityAPI specificstates andproperties.

3.2Conflicts between native markup semantics andWAI-ARIA

WAI-ARIA roles, states, and properties are intended to addsemantic information when native host languageelements with these semantics are not available, and are generally used on elements that have no native semantics of their own. They can also be used on elements that have similar but not identical semantics to the intended object (for instance, a nested list could be used to represent a tree structure). This method can be part of a fallback strategy for older browsers that have noWAI-ARIA implementation, or because native presentation of the repurposed element reduces the amount of style and/or script needed. Except for the cases outlined below,user agentsMUST always use theWAI-ARIA semantics to define how it exposes the element toaccessibilityAPIs, rather than using the host language semantics.

Host languages can have features that have implicitWAI-ARIA semantics corresponding toroles. When aWAI-ARIA role is provided that has a corresponding role in the accessibilityAPI, user agentsMUST use the semantic of theWAI-ARIA role for processing, not the native semantic, unless the role requiresWAI-ARIA states and properties whose attributes are explicitly forbidden on the native element by the host language. Values for roles do not conflict in the same way as values for states and properties, and because authors are expected to have a valid reason to provide aWAI-ARIA role even on elements that would not normally be repurposed. For example, spin buttons are typically constructed from text fields (<input type="text">) in order to get most of the default keyboard support. But, the native role, "text field", is not correct because it does not properly communicate the additional features of a spin button. The author adds theWAI-ARIA role ofspinbutton (<input type="text" role="spinbutton" ...>) so that the control is properly mapped in the accessibilityAPI. When aWAI-ARIA role is provided that does not have a corresponding role in the accessibilityAPI, user agentsMAY expose the native semantic in addition to theWAI-ARIA role. If the host language element is overridden by aWAI-ARIA role whose semantics or structure is not equivalent to the native host language semantics or to a subclass of those semantics, then treat any child elements having roles specified as Allowed Accessibility Child Roles as havingpresentation ornone.

Note

The above text differs slightly from theWAI-ARIA specification. The requirement for user agents to expose theWAI-ARIA role instead of the native role was intended to only apply in cases where there is a direct mapping from theWAI-ARIA role to a corresponding role in the accessibilityAPI. The wording of the requirement is not clear in theWAI-ARIA specification, however, and has been interpreted differently by implementers. The requirement has been clarified here and an additional statement added to indicate that user agents may expose native semantics if there is not a direct mapping to a role in the accessibilityAPI. Because there are differing implementations, authors will be advised against adding suchWAI-ARIA roles to native elements that have their own semantics in theWAI-ARIA Authoring Practices Guide.

WhenWAI-ARIA states and properties correspond to host language features that have the same implicitWAI-ARIA semantic, it can be problematic if the values become out of sync. For example, theHTMLchecked attribute and thearia-checked attribute could have conflicting values. Therefore to prevent providing conflicting states and properties to assistive technologies, host languages will explicitly declare where the use ofWAI-ARIA attributes on a host language element conflict with native attributes for that element. When a host language declares aWAI-ARIAattribute to be in direct semantic conflict with a native attribute for a given element, user agentsMUST ignore theWAI-ARIA attribute and instead use the host language attribute with the same implicit semantic.

Host languages might also document features that cannot be overridden withWAI-ARIA (these are called "strong native semantics"). These can be features that have implicitWAI-ARIA semantics as well as features where the processing would be uncertain if the semantics were changed withWAI-ARIA. While conformance checkers might signal an error or warning when aWAI-ARIA role is used on elements with strong native semantics, user agentsMUST still use the value of the semantic of theWAI-ARIA role when exposing the element to accessibilityAPIs.

3.3Exposing attributes that do not directly map to accessibilityAPI properties

PlatformaccessibilityAPIs might have features that are not inWAI-ARIA. Likewise,WAI-ARIA exposes capabilities that are not supported by accessibilityAPIs at the time of publication. There typically is not a one to one relationship between allWAI-ARIAattributes and platform accessibilityAPIs. WhenWAI-ARIAroles,states andproperties do not directly map to an accessibilityAPI, and there is a mechanism in theAPI to expose theWAI-ARIA role, states, and properties and their values,user agentsMUST expose theWAI-ARIA data using that mechanism as follows:

Note

MSAA does not provide a mechanism for exposing attributes that do not map directly to theAPI and among implementers, there is no agreement on how to do it.

User agentsMUST also expose the entire role string through this mechanism andMAY also exposeWAI-ARIA attributes and values through this mechanism even when there is a direct mapping to an accessibilityAPI.

Browser implementers are advised to publicly document theirAPI methods for exposing any relevant information, so thatassistive technology developers can use theAPI to support user features.

3.4Role mapping

PlatformaccessibilityAPIs traditionally have had a finite set of predefinedroles that are expected byassistive technologies on that platform and only one or two roles may be exposed. In contrast,WAI-ARIA allows multiple roles to be specified as an ordered set of space-separated valid role tokens. The additional roles are fallback roles similar to the concept of specifying multiple fonts in case the first choice font type is not supported.

3.4.1General rules

User agentsMUST expose theWAI-ARIA role string if theAPI supports a mechanism to do so. This allows assistive technologies to do their own additional processing of roles.

3.4.2Computed Role

Thecomputedrole of an element is a string that represents the role of the element as computed by the browser engine. Thecomputedrole is used primarily for the purposes of developer tools and specification conformance and interoperability testing.

Note

User agents provide this role string, for example, in developer tools, and in response to the WebDriver functiongetComputedRole, which is used forinteroperability testing of ARIA,HTML-AAM, and other specifications.

Example 1
<button><!-- computedrole returns "button" --><ahref="#"role="button"><!-- computedrole returns "button" -->
Note

When an element has a role but is not contained in the required context (for example, an orphanedlistitem without the required accessible parent of rolelist), this is an authoring error, but the user agent behavior is not specified as a single rule. For most roles, user agents can either recover the error by ignoring the role, or respect the author's intended role in scenarios deemed by the implementation to be harmless. Please note that this permissiveness in how engines treat author role errors might be overridden in a language-specific mapping document such as [HTML-AAM].

Example 2
<divrole="listitem"><!-- Author error: orphaned listitem. computedrole is unspecified. --><divrole="list"><!-- computedrole returns "list" --><divrole="listitem"><!-- computedrole returns "listitem" in the appropriate context. -->

When host language elements do not have an exact or equivalent mapping to a valid, non-abstract role, the related AccessibiltyAPI Mapping extension specificationMAY specify a uniquecomputedrole string as the return value for interoperability testing purposes, such as<video> -> "html-video" in [HTML-AAM]. However, authorsMUST NOT use any host-language-prefixedcomputedrole string in therole attribute (such ashtml-video), unless the token also matches valid, defined role (such asdpub-chapter). User AgentsMUST ignore any abstract or invalid role token.

Example 3
<video><!-- computedrole returns "html-video" --><mainrole="html-video"><!-- Author error. computedrole returns "main" -->

3.4.3Role Mapping Tables

3.4.3.1alert
ARIA Specificationalert
Computed Role

alert

MSAA + IAccessible2Role:ROLE_SYSTEM_ALERT
Event: The user agentSHOULD fireEVENT_SYSTEM_ALERT.[Note 2]
UIAControl Type:Group
Localized Control Type:alert
LiveSetting:Assertive (2)
Event: The user agentSHOULD fire a system alertevent.[Note 2]
ATK/AT-SPIRole:ROLE_NOTIFICATION
Event: The user agentSHOULD fire a system alertevent.[Note 2]
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXApplicationAlert
Event: The user agentSHOULD fire a system alertevent.[Note 2]
Android

TBD

3.4.3.2alertdialog
ARIA Specificationalertdialog
Computed Role

alertdialog

MSAA + IAccessible2Role:ROLE_SYSTEM_DIALOG
Event: The user agentSHOULD fireEVENT_SYSTEM_ALERT.[Note 2]
UIAControl Type:Pane
Event: The user agentSHOULD fire a system alertevent.[Note 2]
ATK/AT-SPIRole:ROLE_ALERT
Interface:Window
Event: The user agentSHOULD fire a system alertevent.[Note 2]
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXApplicationAlertDialog
Event: The user agentSHOULD fire a system alertevent.[Note 2]
Android

TBD

3.4.3.3application
ARIA Specificationapplication
Computed Role

application

MSAA + IAccessible2Role:ROLE_SYSTEM_APPLICATION
UIAControl Type:Pane
Localized Control Type:application
ATK/AT-SPIRole:ROLE_EMBEDDED
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXWebApplication
Android

TBD

3.4.3.4article
ARIA Specificationarticle
Computed Role

article

MSAA + IAccessible2Role:ROLE_SYSTEM_DOCUMENT
State:STATE_SYSTEM_READONLY
Object Attribute:xml-roles:article
UIAControl Type:Group
Localized Control Type:article
ATK/AT-SPIRole:ROLE_ARTICLE
Object Attribute:xml-roles:article
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXDocumentArticle
Android

TBD

3.4.3.5banner
ARIA Specificationbanner
Computed Role

banner

MSAA + IAccessible2Role:IA2_ROLE_LANDMARK
Object Attribute:xml-roles:banner
UIAControl Type:Group
Localized Control Type:banner
Landmark Type:Custom
Localized Landmark Type:banner
ATK/AT-SPIRole:ROLE_LANDMARK
Object Attribute:xml-roles:banner
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXLandmarkBanner
Android

TBD

3.4.3.6blockquote
ARIA Specificationblockquote
Computed Role

blockquote

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Role:IA2_ROLE_BLOCK_QUOTE
UIAControl Type:Group
Localized Control Type:blockquote
ATK/AT-SPIRole:ROLE_BLOCK_QUOTE
AX API[Note 1]AXRole:AXGroup
AXSubrole:<nil>
Android

TBD

3.4.3.7button with default values foraria-pressed andaria-haspopup
ARIA Specificationbutton with default values foraria-pressed andaria-haspopup
Computed Role

button

MSAA + IAccessible2Role:ROLE_SYSTEM_PUSHBUTTON
UIAControl Type:Button
ATK/AT-SPIRole:ROLE_PUSH_BUTTON
AX API[Note 1]AXRole:AXButton
AXSubrole:<nil>
Android

TBD

3.4.3.8button with non-false value foraria-haspopup
ARIA Specificationbutton with non-false value foraria-haspopup
Computed Role

button

MSAA + IAccessible2Role:ROLE_SYSTEM_BUTTONMENU
UIAControl Type:Button
ATK/AT-SPIRole:ROLE_PUSH_BUTTON
AX API[Note 1]AXRole:AXPopUpButton
AXSubrole:<nil>
Android

TBD

3.4.3.9button with defined value foraria-pressed
ARIA Specificationbutton with defined value foraria-pressed
Computed Role

button

MSAA + IAccessible2Role:ROLE_SYSTEM_PUSHBUTTON
Role:IA2_ROLE_TOGGLE_BUTTON
UIAControl Type:Button
ATK/AT-SPIRole:ROLE_TOGGLE_BUTTON
AX API[Note 1]AXRole:AXCheckBox
AXSubrole:AXToggle
Android

TBD

3.4.3.10caption
ARIA Specificationcaption
Computed Role

caption

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Role:IA2_ROLE_CAPTION
UIAControl Type:Text
ATK/AT-SPIRole:ROLE_CAPTION
AX API[Note 1]AXRole:AXGroup
AXSubrole:<nil>
Android

TBD

3.4.3.11cell
ARIA Specificationcell
Computed Role

cell

MSAA + IAccessible2Role:ROLE_SYSTEM_CELL
Interface:IAccessibleTableCell
UIAControl Type:DataItem
Localized Control Type:item
Control Pattern:GridItem
Control Pattern:TableItem
ATK/AT-SPIRole:ROLE_TABLE_CELL
Interface:TableCell
AX API[Note 1]AXRole:AXCell
AXSubrole:<nil>
Android

TBD

3.4.3.12checkbox
ARIA Specificationcheckbox
Computed Role

checkbox

MSAA + IAccessible2Role:ROLE_SYSTEM_CHECKBUTTON
See also:aria-checked in theState and Property Mapping Tables
UIAControl Type:Checkbox
See also:aria-checked in theState and Property Mapping Tables
ATK/AT-SPIRole:ROLE_CHECK_BOX
See also:aria-checked in theState and Property Mapping Tables
AX API[Note 1]AXRole:AXCheckBox
AXSubrole:<nil>
See also:aria-checked in theState and Property Mapping Tables
Android

TBD

3.4.3.13code
ARIA Specificationcode
Computed Role

code

MSAA + IAccessible2Role:IA2_ROLE_TEXT_FRAME
Object Attribute:xml-roles:code
UIAControl Type:Text
Localized Control Type:code
ATK/AT-SPIRole:ROLE_STATIC
Object Attribute:xml-roles:code
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXCodeStyleGroup
Android

TBD

3.4.3.14columnheader
ARIA Specificationcolumnheader
Computed Role

columnheader

MSAA + IAccessible2Role:ROLE_SYSTEM_COLUMNHEADER
Interface:IAccessibleTableCell
UIAControl Type:DataItem
Localized Control Type:column header
Control Pattern:GridItem
Control Pattern:TableItem
ATK/AT-SPIRole:ROLE_COLUMN_HEADER
Interface:TableCell
AX API[Note 1]AXRole:AXCell
AXSubrole:<nil>
Android

TBD

3.4.3.15combobox
ARIA Specificationcombobox
Computed Role

combobox

MSAA + IAccessible2Role:ROLE_SYSTEM_COMBOBOX
State:STATE_SYSTEM_HASPOPUP
State:STATE_SYSTEM_COLLAPSED ifaria-expanded is not"true"
UIAControl Type:Combobox
ATK/AT-SPIRole:ROLE_COMBO_BOX
State:STATE_EXPANDABLE
State:STATE_HAS_POPUP
AX API[Note 1]AXRole:AXComboBox
AXSubrole:<nil>
Android

TBD

3.4.3.16comment
ARIA Specificationcomment
Computed Role

comment

MSAA + IAccessible2Role:IA2_ROLE_COMMENT
Object Attribute:xml-roles:comment
UIAControl Type:Group
Localized Control Type:comment
ATK/AT-SPIRole:ROLE_COMMENT
Object Attribute:xml-roles:comment
AX API[Note 1]AXRole:AXGroup
Android

TBD

3.4.3.17complementary
ARIA Specificationcomplementary
Computed Role

complementary

MSAA + IAccessible2Role:IA2_ROLE_LANDMARK
Object Attribute:xml-roles:complementary
UIAControl Type:Group
Localized Control Type:complementary
Landmark Type:Custom
Localized Landmark Type:complementary
ATK/AT-SPIRole:ROLE_LANDMARK
Object Attribute:xml-roles:complementary
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXLandmarkComplementary
Android

TBD

3.4.3.18contentinfo
ARIA Specificationcontentinfo
Computed Role

contentinfo

MSAA + IAccessible2Role:IA2_ROLE_LANDMARK
Object Attribute:xml-roles:contentinfo
UIAControl Type:Group
Localized Control Type:content information
Landmark Type:Custom
Localized Landmark Type:content information
ATK/AT-SPIRole:ROLE_LANDMARK
Object Attribute:xml-roles:contentinfo
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXLandmarkContentInfo
Android

TBD

3.4.3.19definition
ARIA Specificationdefinition
Computed Role

definition

MSAA + IAccessible2Object Attribute:xml-roles:definition
UIAControl Type:Group
Localized Control Type:definition
ATK/AT-SPIRole:ROLE_DESCRIPTION_VALUE
Object Attribute:xml-roles:definition
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXDefinition
Android

TBD

3.4.3.20deletion
ARIA Specificationdeletion
Computed Role

deletion

MSAA + IAccessible2Role:IA2_ROLE_CONTENT_DELETION
UIAControl Type:Text
Localized Control Type:deletion
ATK/AT-SPIRole:ROLE_CONTENT_DELETION
Object Attribute:xml-roles:deletion
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXDeleteStyleGroup
AXAttributedStringForTextMarkerRange: containsAXIsSuggestedDeletion = 1; for all text contained in adeletion
Android

TBD

3.4.3.21dialog
ARIA Specificationdialog
Computed Role

dialog

MSAA + IAccessible2Role:ROLE_SYSTEM_DIALOG
UIAControl Type:Pane
ATK/AT-SPIRole:ROLE_DIALOG
Interface:Window
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXApplicationDialog
Android

TBD

3.4.3.22directory (deprecated)
ARIA Specificationdirectory
Computed Role

list

MSAA + IAccessible2Role:ROLE_SYSTEM_LIST
UIAControl Type:List
ATK/AT-SPIRole:ROLE_LIST
AX API[Note 1]AXRole:AXList
AXSubrole:AXContentList
Android

TBD

3.4.3.23document
ARIA Specificationdocument
Computed Role

document

MSAA + IAccessible2Role:ROLE_SYSTEM_DOCUMENT
State:STATE_SYSTEM_READONLY
UIAControl Type:Document
ATK/AT-SPIRole:ROLE_DOCUMENT_FRAME
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXDocument
Android

TBD

3.4.3.24emphasis
ARIA Specificationemphasis
Computed Role

emphasis

MSAA + IAccessible2Role:IA2_ROLE_TEXT_FRAME
Object Attribute:xml-roles:emphasis
UIAControl Type:Text
Localized Control Type:emphasis
ATK/AT-SPIRole:ROLE_STATIC
Object Attribute:xml-roles:emphasis
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXEmphasisStyleGroup
Android

TBD

3.4.3.25feed
ARIA Specificationfeed
Computed Role

feed

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Object Attribute:xml-roles:feed
UIAControl Type:Group
Localized Control Type:feed
ATK/AT-SPIRole:ROLE_PANEL
Object Attribute:xml-roles:feed
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXApplicationGroup
Android

TBD

3.4.3.26figure
ARIA Specificationfigure
Computed Role

figure

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Object Attribute:xml-roles:figure
UIAControl Type:Group
Localized Control Type:figure
ATK/AT-SPIRole:ROLE_PANEL
Object Attribute:xml-roles:figure
AX API[Note 1]AXRole:AXGroup
AXSubrole:<nil>
Android

TBD

3.4.3.27form with an accessible name
ARIA Specificationform with an accessible name
Computed Role

form

MSAA + IAccessible2Role:IA2_ROLE_FORM
Object Attribute:xml-roles:form
UIAControl Type:Group
Localized Control Type:form
Landmark Type:Form
ATK/AT-SPIRole:ROLE_LANDMARK
Object Attribute:xml-roles:form
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXLandmarkForm
Android

TBD

3.4.3.28form without an accessible name
ARIA Specificationform without an accessible name
Computed Role

form

MSAA + IAccessible2Do not expose theelement as a landmark. Use the native host language role of the element instead.
UIADo not expose theelement as a landmark. Use the native host language role of the element instead.
ATK/AT-SPIDo not expose theelement as a landmark. Use the native host language role of the element instead.
AX API[Note 1]Do not expose theelement as a landmark. Use the native host language role of the element instead.
Android

TBD

3.4.3.29generic
ARIA Specificationgeneric
Computed Role

generic

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Role:IA2_ROLE_SECTION
UIAControl Type:Group
ATK/AT-SPIRole:ROLE_SECTION
AX API[Note 1]AXRole:AXGroup
AXSubrole:<nil>
Android

TBD

3.4.3.30grid
ARIA Specificationgrid
Computed Role

grid

MSAA + IAccessible2Role:ROLE_SYSTEM_TABLE
Object Attribute:xml-roles:grid
Interface:IAccessibleTable2
Method:IAccessible::accSelect()
Method:IAccessible::get_accSelection()
UIAControl Type:DataGrid
Control Pattern:Grid
Control Pattern:Table
Control Pattern:Selection
ATK/AT-SPIRole:ROLE_TABLE
Object Attribute:xml-roles:grid
Interface:Table
Interface:Selection

BecauseWAI-ARIA does not support modifying the selection via the accessibilityAPI, user agentsMUST returnfalse for allSelection methods that provide a means to modify the selection.

AX API[Note 1]AXRole:AXTable
AXSubrole:<nil>
AXColumnHeaderUIElements: a list of pointers to the columnheader elements
AXHeader: a pointer to the row or group containing those columnheader elements
AXRowHeaderUIElements: a list of pointers to the rowheader elements
Android

TBD

3.4.3.31gridcell
ARIA Specificationgridcell
Computed Role

gridcell

MSAA + IAccessible2Role:ROLE_SYSTEM_CELL
Interface:IAccessibleTableCell
UIAControl Type:DataItem
Localized Control Type:item
Control Pattern:SelectionItem
Control Pattern:GridItem
Control Pattern:TableItem
SelectionItem.SelectionContainer: the containinggrid
ATK/AT-SPIRole:ROLE_TABLE_CELL
Interface:TableCell
AX API[Note 1]AXRole:AXCell
AXSubrole:<nil>
Android

TBD

3.4.3.32group
ARIA Specificationgroup
Computed Role

group

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
UIAControl Type:Group
ATK/AT-SPIRole:ROLE_PANEL
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXApplicationGroup
Android

TBD

3.4.3.33heading
ARIA Specificationheading
Computed Role

heading

MSAA + IAccessible2Role:IA2_ROLE_HEADING
Object Attribute:xml-roles:heading
UIAControl Type:Text
Localized Control Type:heading
ATK/AT-SPIRole:ROLE_HEADING
AX API[Note 1]AXRole:AXHeading
AXSubrole:<nil>
Android

TBD

3.4.3.34image
ARIA Specificationimage
Computed Role

image

MSAA + IAccessible2Role:ROLE_SYSTEM_GRAPHIC
Interface:IAccessibleImage
UIAControl Type:Image
ATK/AT-SPIRole:ROLE_IMAGE
Interface:Image
AX API[Note 1]AXRole:AXImage
AXSubrole:<nil>
Android

TBD

3.4.3.35img
ARIA Specificationimg
Computed Role

image

MSAA + IAccessible2Role:ROLE_SYSTEM_GRAPHIC
Interface:IAccessibleImage
UIAControl Type:Image
ATK/AT-SPIRole:ROLE_IMAGE
Interface:Image
AX API[Note 1]AXRole:AXImage
AXSubrole:<nil>
Android

TBD

3.4.3.36insertion
ARIA Specificationinsertion
Computed Role

insertion

MSAA + IAccessible2Role:IA2_ROLE_CONTENT_INSERTION
UIAControl Type:Text
Localized Control Type:insertion
ATK/AT-SPIRole:ROLE_CONTENT_INSERTION
Object Attribute:xml-roles:insertion
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXInsertStyleGroup
AXAttributedStringForTextMarkerRange: containsAXIsSuggestedInsertion = 1; for all text contained in ainsertion
Android

TBD

3.4.3.37link
ARIA Specificationlink
Computed Role

link

MSAA + IAccessible2Role:ROLE_SYSTEM_LINK
State:STATE_SYSTEM_LINKED
State:STATE_SYSTEM_LINKED on its descendants
Interface:IAccessibleHypertext
UIAControl Type:HyperLink
Control Pattern:Value
ATK/AT-SPIRole:ROLE_LINK
Interface:HyperlinkImpl
AX API[Note 1]AXRole:AXLink
AXSubrole:<nil>
Android

TBD

3.4.3.38list
ARIA Specificationlist
Computed Role

list

MSAA + IAccessible2Role:ROLE_SYSTEM_LIST
State:STATE_SYSTEM_READONLY
UIAControl Type:List
ATK/AT-SPIRole:ROLE_LIST
AX API[Note 1]AXRole:AXList
AXSubrole:AXContentList
Android

TBD

3.4.3.39listbox without an accessibility parent ofcombobox
ARIA Specificationlistbox
Computed Role

listbox

MSAA + IAccessible2Role:ROLE_SYSTEM_LIST
Method:IAccessible::accSelect()
Method:IAccessible::get_accSelection()
UIAControl Type:List
Control Pattern:Selection
ATK/AT-SPIRole:ROLE_LIST_BOX
Interface:Selection

BecauseWAI-ARIA does not support modifying the selection via the accessibilityAPI, user agentsMUST returnfalse for allSelection methods that provide a means to modify the selection.

AX API[Note 1]AXRole:AXList
AXSubrole:<nil>
Android

TBD

3.4.3.40listbox with an accessibility parent ofcombobox
ARIA Specificationlistbox
Computed Role

listbox

MSAA + IAccessible2Role:ROLE_SYSTEM_LIST
Method:IAccessible::accSelect()
Method:IAccessible::get_accSelection()
UIAControl Type:List
Control Pattern:Selection
ATK/AT-SPIRole:ROLE_MENU
Interface:Selection

BecauseWAI-ARIA does not support modifying the selection via the accessibilityAPI, user agentsMUST returnfalse for allSelection methods that provide a means to modify the selection.

AX API[Note 1]AXRole:AXList
AXSubrole:<nil>
Android

TBD

3.4.3.41listitem
ARIA Specificationlistitem
Computed Role

listitem

MSAA + IAccessible2Role:ROLE_SYSTEM_LISTITEM
State:STATE_SYSTEM_READONLY
UIAControl Type:ListItem
Control Pattern:SelectionItem
SelectionItem.SelectionContainer: the containinglist
ATK/AT-SPIRole:ROLE_LIST_ITEM
AX API[Note 1]AXRole:AXGroup
AXSubrole:<nil>
Android

TBD

3.4.3.42log
ARIA Specificationlog
Computed Role

log

MSAA + IAccessible2Object Attribute:xml-roles:log
Object Attribute:container-live:polite
Object Attribute:live:polite
Object Attribute:container-live-role:log
UIAControl Type:Group
Localized Control Type:log
LiveSetting:Polite (1)
ATK/AT-SPIRole:ROLE_LOG
Object Attribute:xml-roles:log
Object Attribute:container-live:polite
Object Attribute:live:polite
Object Attribute:container-live-role:log
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXApplicationLog
Android

TBD

3.4.3.43main
ARIA Specificationmain
Computed Role

main

MSAA + IAccessible2Role:IA2_ROLE_LANDMARK
Object Attribute:xml-roles:main
UIAControl Type:Group
Localized Control Type:main
Landmark Type:Main
ATK/AT-SPIRole:ROLE_LANDMARK
Object Attribute:xml-roles:main
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXLandmarkMain
Android

TBD

3.4.3.44mark
ARIA Specificationmark
Computed Role

mark

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Role:IA2_ROLE_MARK
Object Attribute:xml-roles:mark
UIAControl Type:Group
ATK/AT-SPIRole:ROLE_MARK
Object Attribute:xml-roles:mark
AX API[Note 1]AXRole:AXGroup
AXRoleDescription:highlight
AXAttributedStringForTextMarkerRange: containsAXHighlight = 1; for all text contained in amark
Android

TBD

3.4.3.45marquee
ARIA Specificationmarquee
Computed Role

marquee

MSAA + IAccessible2Role:ROLE_SYSTEM_ANIMATION
Object Attribute:xml-roles:marquee
UIAControl Type:Group
Localized Control Type:marquee
ATK/AT-SPIRole:ROLE_MARQUEE
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXApplicationMarquee
Android

TBD

3.4.3.46math
ARIA Specificationmath
Computed Role

math

MSAA + IAccessible2Role:ROLE_SYSTEM_EQUATION
UIAControl Type:Group
Localized Control Type:math
ATK/AT-SPIRole:ROLE_MATH
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXDocumentMath
Android

TBD

3.4.3.47menu
ARIA Specificationmenu
Computed Role

menu

MSAA + IAccessible2Role:ROLE_SYSTEM_MENUPOPUP
Method:IAccessible::accSelect()
Method:IAccessible::get_accSelection()
UIAControl Type:Menu
ATK/AT-SPIRole:ROLE_MENU
Interface:Selection

BecauseWAI-ARIA does not support modifying the selection via the accessibilityAPI, user agentsMUST returnfalse for allSelection methods that provide a means to modify the selection.

AX API[Note 1]AXRole:AXMenu
AXSubrole:<nil>
Android

TBD

3.4.3.48menubar
ARIA Specificationmenubar
Computed Role

menubar

MSAA + IAccessible2Role:ROLE_SYSTEM_MENUBAR
Method:IAccessible::accSelect()
Method:IAccessible::get_accSelection()
UIAControl Type:MenuBar
ATK/AT-SPIRole:ROLE_MENU_BAR
Interface:Selection

BecauseWAI-ARIA does not support modifying the selection via the accessibilityAPI, user agentsMUST returnfalse for allSelection methods that provide a means to modify the selection.

AX API[Note 1]AXRole:AXMenuBar
AXSubrole:<nil>
Android

TBD

3.4.3.49menuitem
ARIA Specificationmenuitem
Computed Role

menuitem

MSAA + IAccessible2Role:ROLE_SYSTEM_MENUITEM
UIAControl Type:MenuItem
ATK/AT-SPIRole:ROLE_MENU_ITEM
AX API[Note 1]AXRole:AXMenuItem
AXSubrole:<nil>
Android

TBD

3.4.3.50menuitemcheckbox
ARIA Specificationmenuitemcheckbox
Computed Role

menuitemcheckbox

MSAA + IAccessible2Role:ROLE_SYSTEM_CHECKBUTTON orROLE_SYSTEM_MENUITEM
Role:IA2_ROLE_CHECK_MENU_ITEM
See also:aria-checked in theState and Property Mapping Tables
UIAControl Type:MenuItem
Control Pattern:Toggle
See also:aria-checked in theState and Property Mapping Tables
ATK/AT-SPIRole:ROLE_CHECK_MENU_ITEM
See also:aria-checked in theState and Property Mapping Tables
AX API[Note 1]AXRole:AXMenuItem
AXSubrole:<nil>
See also:aria-checked in theState and Property Mapping Tables
Android

TBD

3.4.3.51menuitemradio
ARIA Specificationmenuitemradio
Computed Role

menuitemradio

MSAA + IAccessible2Role:ROLE_SYSTEM_RADIOBUTTON orROLE_SYSTEM_MENUITEM
Role:IA2_ROLE_RADIO_MENU_ITEM
See also:aria-checked in theState and Property Mapping Tables
UIAControl Type:MenuItem
Control Pattern:Toggle
Control Pattern:SelectionItem
See also:aria-checked in theState and Property Mapping Tables
ATK/AT-SPIRole:ROLE_RADIO_MENU_ITEM
See also:aria-checked in theState and Property Mapping Tables
AX API[Note 1]AXRole:AXMenuItem
AXSubrole:<nil>
See also:aria-checked in theState and Property Mapping Tables
Android

TBD

3.4.3.52meter
ARIA Specificationmeter
Computed Role

meter

MSAA + IAccessible2Role:IA2_ROLE_LEVEL_BAR
Interface:IAccessibleValue
UIAControl Type:ProgressBar
Localized Control Type:meter
Control Pattern:RangeValue
ATK/AT-SPIRole:ROLE_LEVEL_BAR
Interface:Value
AX API[Note 1]AXRole:AXLevelIndicator
AXSubrole:AXMeter
Android

TBD

3.4.3.53navigation
ARIA Specificationnavigation
Computed Role

navigation

MSAA + IAccessible2Role:IA2_ROLE_LANDMARK
Object Attribute:xml-roles:navigation
UIAControl Type:Group
Localized Control Type:navigation
Landmark Type:Navigation
ATK/AT-SPIRole:ROLE_LANDMARK
Object Attribute:xml-roles:navigation
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXLandmarkNavigation
Android

TBD

3.4.3.54none
ARIA Specificationnone
Computed Role

none

MSAA + IAccessible2

For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in theaccessibility tree, expose it asIA2_ROLE_TEXT_FRAME.user agentsSHOULD prune empty descendants from theaccessibility tree.

UIA

For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in theaccessibility tree, expose it using thetext pattern.user agentsSHOULD prune empty descendants from theaccessibility tree.

ATK/AT-SPI

For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in theaccessibility tree, expose it asROLE_SECTION.user agentsSHOULD prune empty descendants from theaccessibility tree.

AX API[Note 1]

For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in theaccessibility tree, expose it asAXGroup.user agentsSHOULD prune empty descendants from theaccessibility tree.

Android

TBD

3.4.3.55note
ARIA Specificationnote
Computed Role

note

MSAA + IAccessible2Role:IA2_ROLE_NOTE
UIAControl Type:Group
Localized Control Type:note
ATK/AT-SPIRole:ROLE_COMMENT
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXDocumentNote
Android

TBD

3.4.3.56option not insidecombobox
ARIA Specificationoption not insidecombobox
Computed Role

option

MSAA + IAccessible2Role:ROLE_SYSTEM_LISTITEM
See also:aria-checked in theState and Property Mapping Tables
UIAControl Type:ListItem
Control Pattern:Invoke
See also:aria-checked in theState and Property Mapping Tables
ATK/AT-SPIRole:ROLE_LIST_ITEM
See also:aria-checked in theState and Property Mapping Tables
AX API[Note 1]AXRole:AXStaticText
AXSubrole:<nil>
See also:aria-checked in theState and Property Mapping Tables
Android

TBD

3.4.3.57option insidecombobox
ARIA Specificationoption insidecombobox
Computed Role

option

MSAA + IAccessible2Role:ROLE_SYSTEM_LISTITEM
See also:aria-checked in theState and Property Mapping Tables
UIAControl Type:ListItem
Control Pattern:Invoke
See also:aria-checked in theState and Property Mapping Tables
ATK/AT-SPIRole:ROLE_MENU_ITEM
See also:aria-checked in theState and Property Mapping Tables
AX API[Note 1]AXRole:AXStaticText
AXSubrole:<nil>
See also:aria-checked in theState and Property Mapping Tables
Android

TBD

3.4.3.58paragraph
ARIA Specificationparagraph
Computed Role

paragraph

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Role:IA2_ROLE_PARAGRAPH
UIAControl Type:Text
ATK/AT-SPIRole:ROLE_PARAGRAPH
AX API[Note 1]AXRole:AXGroup
AXSubrole:<nil>
Android

TBD

3.4.3.59presentation
ARIA Specificationpresentation
Computed Role

none

MSAA + IAccessible2

For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in theaccessibility tree, expose it asIA2_ROLE_TEXT_FRAME.user agentsSHOULD prune empty descendants from theaccessibility tree.

UIA

For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in theaccessibility tree, expose it using thetext pattern.user agentsSHOULD prune empty descendants from theaccessibility tree.

ATK/AT-SPI

For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in theaccessibility tree, expose it asROLE_SECTION.user agentsSHOULD prune empty descendants from theaccessibility tree.

AX API[Note 1]

For objects that have specified allowed accessibility children (e.g., a grid with gridcell children, a list with listitem children), and the descendant is in theaccessibility tree, expose it asAXGroup.user agentsSHOULD prune empty descendants from theaccessibility tree.

Android

TBD

3.4.3.60progressbar
ARIA Specificationprogressbar
Computed Role

progressbar

MSAA + IAccessible2Role:ROLE_SYSTEM_PROGRESSBAR
State:STATE_SYSTEM_READONLY
Interface:IAccessibleValue
UIAControl Type:ProgressBar
Control Pattern:RangeValue ifaria-valuenow,aria-valuemax, oraria-valuemin is present
ATK/AT-SPIRole:ROLE_PROGRESS_BAR
Interface:Value

BecauseWAI-ARIA does not support modifying the value via the accessibilityAPI, user agentsMUST returnfalse for allValue methods that provide a means to modify the value.

AX API[Note 1]AXRole:AXProgressIndicator
AXSubrole:<nil>
Android

TBD

3.4.3.61radio
ARIA Specificationradio
Computed Role

radio

MSAA + IAccessible2Role:ROLE_SYSTEM_RADIOBUTTON
See also:aria-checked in theState and Property Mapping Tables
UIAControl Type:RadioButton
Control Pattern:Toggle
Control Pattern:SelectionItem
See also:aria-checked in theState and Property Mapping Tables
ATK/AT-SPIRole:ROLE_RADIO_BUTTON
See also:aria-checked in theState and Property Mapping Tables
AX API[Note 1]AXRole:AXRadioButton
AXSubrole:<nil>
See also:aria-checked in theState and Property Mapping Tables
Android

TBD

3.4.3.62radiogroup
ARIA Specificationradiogroup
Computed Role

radiogroup

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
UIAControl Type:List
ATK/AT-SPIRole:ROLE_PANEL
AX API[Note 1]AXRole:AXRadioGroup
AXSubrole:<nil>
Android

TBD

3.4.3.63region with an accessible name
ARIA Specificationregion with an accessible name
Computed Role

region

MSAA + IAccessible2Role:IA2_ROLE_LANDMARK
Object Attribute:xml-roles:region
UIAControl Type:Group
Localized Control Type:region
Landmark Type:Custom
Localized Landmark Type:region
ATK/AT-SPIRole:ROLE_LANDMARK
Object Attribute:xml-roles:region
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXLandmarkRegion
Android

TBD

3.4.3.64region without an accessible name
ARIA Specificationregion without an accessible name
Computed Role

Use native host language role.

MSAA + IAccessible2Do not expose theelement as a landmark. Use the native host language role of the element instead.
UIADo not expose theelement as a landmark. Use the native host language role of the element instead.
ATK/AT-SPIDo not expose theelement as a landmark. Use the native host language role of the element instead.
AX API[Note 1]Do not expose theelement as a landmark. Use the native host language role of the element instead.
Android

TBD

3.4.3.65row not insidetreegrid
ARIA Specificationrow not insidetreegrid
Computed Role

row

MSAA + IAccessible2Role:ROLE_SYSTEM_ROW
UIAControl Type:DataItem
Localized Control Type:row
Control Pattern:SelectionItem
ATK/AT-SPIRole:ROLE_TABLE_ROW
AX API[Note 1]AXRole:AXRow
AXSubrole:<nil>
Android

TBD

3.4.3.66row insidetreegrid
ARIA Specificationrow insidetreegrid
Computed Role

row

MSAA + IAccessible2Role:ROLE_SYSTEM_OUTLINEITEM
UIAControl Type:DataItem
Localized Control Type:row
Control Pattern:SelectionItem
ATK/AT-SPIRole:ROLE_TABLE_ROW
AX API[Note 1]AXRole:AXRow
AXSubrole:<nil>
Android

TBD

3.4.3.67rowgroup
ARIA Specificationrowgroup
Computed Role

rowgroup

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
UIAControl Type:Group
ATK/AT-SPIRole:ROLE_PANEL
AX API[Note 1]Not mapped
Android

TBD

3.4.3.68rowheader
ARIA Specificationrowheader
Computed Role

rowheader

MSAA + IAccessible2Role:ROLE_SYSTEM_ROWHEADER
Interface:IAccessibleTableCell
UIAControl Type:HeaderItem
ATK/AT-SPIRole:ROLE_ROW_HEADER
Interface:TableCell
AX API[Note 1]AXRole:AXCell
AXSubrole:<nil>
Android

TBD

3.4.3.69scrollbar
ARIA Specificationscrollbar
Computed Role

scrollbar

MSAA + IAccessible2Role:ROLE_SYSTEM_SCROLLBAR
Interface:IAccessibleValue
UIAControl Type:ScrollBar
Control Pattern:RangeValue
ATK/AT-SPIRole:ROLE_SCROLL_BAR
Interface:Value

BecauseWAI-ARIA does not support modifying the value via the accessibilityAPI, user agentsMUST returnfalse for allValue methods that provide a means to modify the value.

AX API[Note 1]AXRole:AXScrollBar
AXSubrole:<nil>
Android

TBD

3.4.3.70search
ARIA Specificationsearch
Computed Role

search

MSAA + IAccessible2Role:IA2_ROLE_LANDMARK
Object Attribute:xml-roles:search
UIAControl Type:Group
Localized Control Type:search
Landmark Type:Search
ATK/AT-SPIRole:ROLE_LANDMARK
Object Attribute:xml-roles:search
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXLandmarkSearch
Android

TBD

3.4.3.71searchbox
ARIA Specificationsearchbox
Computed Role

searchbox

MSAA + IAccessible2Role:ROLE_SYSTEM_TEXT
Object Attribute:text-input-type:search
UIAControl Type:Edit
Localized Control Type:search box
ATK/AT-SPIRole:ROLE_ENTRY
Object Attribute:xml-roles:searchbox
Object Attribute:text-input-type:search
Interface:EditableText ifaria-readonly is not"true"
AX API[Note 1]AXRole:AXTextField
AXSubrole:AXSearchField
Android

TBD

3.4.3.72sectionfooter
ARIA Specificationsectionfooter
Computed Role

sectionfooter

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Object Attribute:xml-roles:sectionfooter
UIAControl Type:Group
Localized Control Type:section footer
ATK/AT-SPIRole:ROLE_FOOTER
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXSectionFooter
AXRoleDescription:section footer
Android

TBD

3.4.3.73sectionheader
ARIA Specificationsectionheader
Computed Role

sectionheader

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Object Attribute:xml-roles:sectionheader
UIAControl Type:Group
Localized Control Type:section header
ATK/AT-SPIRole:ROLE_HEADER
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXSectionHeader
AXRoleDescription:section header
Android

TBD

3.4.3.74separator (non-focusable)
ARIA Specificationseparator (non-focusable)
Computed Role

seperator

MSAA + IAccessible2Role:ROLE_SYSTEM_SEPARATOR
UIAControl Type:Separator
ATK/AT-SPIRole:ROLE_SEPARATOR
AX API[Note 1]AXRole:AXSplitter
AXSubrole:<nil>
Android

TBD

3.4.3.75separator (focusable)
ARIA Specificationseparator (focusable)
Computed Role

seperator

MSAA + IAccessible2Role:ROLE_SYSTEM_SEPARATOR
Interface:IAccessibleValue
UIAControl Type:Thumb
Control Pattern:RangeValue
ATK/AT-SPIRole:ROLE_SEPARATOR
Interface:Value

BecauseWAI-ARIA does not support modifying the value via the accessibilityAPI, user agentsMUST returnfalse for allValue methods that provide a means to modify the value.

AX API[Note 1]AXRole:AXSplitter
AXSubrole:<nil>
Android

TBD

3.4.3.76slider
ARIA Specificationslider
Computed Role

slider

MSAA + IAccessible2Role:ROLE_SYSTEM_SLIDER
Interface:IAccessibleValue
UIAControl Type:Slider
Control Pattern:RangeValue
ATK/AT-SPIRole:ROLE_SLIDER
Interface:Value

BecauseWAI-ARIA does not support modifying the value via the accessibilityAPI, user agentsMUST returnfalse for allValue methods that provide a means to modify the value.

AX API[Note 1]AXRole:AXSlider
AXSubrole:<nil>
Android

TBD

3.4.3.77spinbutton
ARIA Specificationspinbutton
Computed Role

spinbutton

MSAA + IAccessible2Role:ROLE_SYSTEM_SPINBUTTON
Interface:IAccessibleValue
UIAControl Type:Spinner
Control Pattern:RangeValue
ATK/AT-SPIRole:ROLE_SPIN_BUTTON
Interface:Value

BecauseWAI-ARIA does not support modifying the value via the accessibilityAPI, user agentsMUST returnfalse for allValue methods that provide a means to modify the value.

AX API[Note 1]AXRole:AXIncrementor
AXSubrole:<nil>
Android

TBD

3.4.3.78status
ARIA Specificationstatus
Computed Role

status

MSAA + IAccessible2Role:ROLE_SYSTEM_STATUSBAR
Object Attribute:container-live:polite
Object Attribute:live:polite
Object Attribute:container-live-role:status
UIAControl Type:Group
Localized Control Type:status
LiveSetting:Polite (1)
ATK/AT-SPIRole:ROLE_STATUSBAR
Object Attribute:container-live:polite
Object Attribute:live:polite
Object Attribute:container-live-role:status
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXApplicationStatus
Android

TBD

3.4.3.79strong
ARIA Specificationstrong
Computed Role

strong

MSAA + IAccessible2Role:IA2_ROLE_TEXT_FRAME
Object Attribute:xml-roles:strong
UIAControl Type:Text
Localized Control Type:strong
ATK/AT-SPIRole:ROLE_STATIC
Object Attribute:xml-roles:strong
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXStrongStyleGroup
Android

TBD

3.4.3.80subscript
ARIA Specificationsubscript
Computed Role

subscript

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Role:IA2_ROLE_TEXT_FRAME
Text Attribute:text-position:sub
UIAControl Type:Text
Styles used are exposed byIsSubscript attribute of theTextRange Control Pattern implemented on the accessible object.
ATK/AT-SPIRole:ROLE_SUBSCRIPT
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXSubscriptStyleGroup
Android

TBD

3.4.3.81suggestion
ARIA Specificationsuggestion
Computed Role

suggestion

MSAA + IAccessible2Role:IA2_ROLE_SUGGESTION
Object Attribute:xml-roles:suggestion
UIAControl Type:Group
Localized Control Type:suggestion
ATK/AT-SPIRole:ROLE_SUGGESTION
Object Attribute:xml-roles:suggestion
AX API[Note 1]AXRole:AXGroup
AXAttributedStringForTextMarkerRange: containsAXIsSuggestion = 1; for all text contained in asuggestion
Android

TBD

3.4.3.82superscript
ARIA Specificationsuperscript
Computed Role

superscript

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Role:IA2_ROLE_TEXT_FRAME
Text Attribute:text-position:super
UIAControl Type:Text
Styles used are exposed byIsSuperscript attribute of theTextRange Control Pattern implemented on the accessible object.
ATK/AT-SPIRole:ROLE_SUPERSCRIPT
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXSuperscriptStyleGroup
Android

TBD

3.4.3.83switch
ARIA Specificationswitch
Computed Role

switch

MSAA + IAccessible2Role:ROLE_SYSTEM_CHECKBUTTON
Role:IA2_ROLE_TOGGLE_BUTTON
Object Attribute:xml-roles:switch
See also:aria-checked in theState and Property Mapping Tables
UIAControl Type:Button
Localized Control Type:toggleswitch
Control Pattern:Toggle
See also:aria-checked in theState and Property Mapping Tables
ATK/AT-SPIRole:ROLE_TOGGLE_BUTTON
Object Attribute:xml-roles:switch
See also:aria-checked in theState and Property Mapping Tables
AX API[Note 1]AXRole:AXCheckBox
AXSubrole:AXSwitch
See also:aria-checked in theState and Property Mapping Tables
Android

TBD

3.4.3.84tab
ARIA Specificationtab
Computed Role

tab

MSAA + IAccessible2Role:ROLE_SYSTEM_PAGETAB
State:STATE_SYSTEM_SELECTED if focus is insidetabpanel associated witharia-labelledby
UIAControl Type:TabItem
ATK/AT-SPIRole:ROLE_PAGE_TAB
State:STATE_SELECTED if focus is insidetabpanel associated witharia-labelledby
AX API[Note 1]AXRole:AXRadioButton
AXSubrole:AXTabButton
Android

TBD

3.4.3.85table
ARIA Specificationtable
Computed Role

table

MSAA + IAccessible2Role:ROLE_SYSTEM_TABLE
Object Attribute:xml-roles:table
Interface:IAccessibleTable2
UIAControl Type:Table
Control Pattern:Grid
Control Pattern:Table
ATK/AT-SPIRole:ROLE_TABLE
Object Attribute:xml-roles:table
Interface:Table
AX API[Note 1]AXRole:AXTable
AXSubrole:<nil>
AXColumnHeaderUIElements: a list of pointers to the columnheader elements
AXHeader: a pointer to the row or group containing those columnheader elements
AXRowHeaderUIElements: a list of pointers to the rowheader elements
Android

TBD

3.4.3.86tablist
ARIA Specificationtablist
Computed Role

tablist

MSAA + IAccessible2Role:ROLE_SYSTEM_PAGETABLIST
Method:IAccessible::accSelect()
Method:IAccessible::get_accSelection()
UIAControl Type:Tab
Control Pattern:Selection
ATK/AT-SPIRole:ROLE_PAGE_TAB_LIST
Interface:Selection

BecauseWAI-ARIA does not support modifying the selection via the accessibilityAPI, user agentsMUST returnfalse for allSelection methods that provide a means to modify the selection.

AX API[Note 1]AXRole:AXTabGroup
AXSubrole:<nil>
Android

TBD

3.4.3.87tabpanel
ARIA Specificationtabpanel
Computed Role

tabpanel

MSAA + IAccessible2Role:ROLE_SYSTEM_PANE orROLE_SYSTEM_PROPERTYPAGE
UIAControl Type:Pane
ATK/AT-SPIRole:ROLE_SCROLL_PANE
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXTabPanel
Android

TBD

3.4.3.88term
ARIA Specificationterm
Computed Role

term

MSAA + IAccessible2Role:IA2_ROLE_TEXT_FRAME
Object Attribute:xml-roles:term
UIAControl Type:Text
Localized Control Type:term
ATK/AT-SPIRole:ROLE_DESCRIPTION_TERM
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXTerm
Android

TBD

3.4.3.89textbox whenaria-multiline isfalse
ARIA Specificationtextbox whenaria-multiline isfalse
Computed Role

textbox

MSAA + IAccessible2Role:ROLE_SYSTEM_TEXT
State:IA2_STATE_SINGLE_LINE
UIAControl Type:Edit
ATK/AT-SPIRole:ROLE_ENTRY
State:STATE_SINGLE_LINE
Interface:EditableText ifaria-readonly is not"true"
AX API[Note 1]AXRole:AXTextField
AXSubrole:<nil>
Android

TBD

3.4.3.90textbox whenaria-multiline istrue
ARIA Specificationtextbox whenaria-multiline istrue
Computed Role

textbox

MSAA + IAccessible2Role:ROLE_SYSTEM_TEXT
State:IA2_STATE_MULTI_LINE
UIAControl Type:Edit
ATK/AT-SPIRole:ROLE_ENTRY
State:STATE_MULTI_LINE
Interface:EditableText ifaria-readonly is not"true"
AX API[Note 1]AXRole:AXTextArea
AXSubrole:<nil>
Android

TBD

3.4.3.91time
ARIA Specificationtime
Computed Role

time

MSAA + IAccessible2Role:ROLE_SYSTEM_GROUPING
Object Attribute:xml-roles:time
UIAControl Type:Text
Localized Control Type:time
Note: create a separateUIA Control of type Text. This is different from mostUIA text mappings, which only create ranges in the page text pattern.
ATK/AT-SPIRole:ROLE_STATIC
Object Attribute:xml-roles:time
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXTimeGroup
Android

TBD

3.4.3.92timer
ARIA Specificationtimer
Computed Role

timer

MSAA + IAccessible2Object Attribute:xml-roles:timer
UIAControl Type:Group
Localized Control Type:timer
ATK/AT-SPIRole:ROLE_TIMER
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXApplicationTimer
Android

TBD

3.4.3.93toolbar
ARIA Specificationtoolbar
Computed Role

toolbar

MSAA + IAccessible2Role:ROLE_SYSTEM_TOOLBAR
UIAControl Type:ToolBar
ATK/AT-SPIRole:ROLE_TOOL_BAR
AX API[Note 1]AXRole:AXToolbar
AXSubrole:<nil>
Android

TBD

3.4.3.94tooltip
ARIA Specificationtooltip
Computed Role

tooltip

MSAA + IAccessible2Role:ROLE_SYSTEM_TOOLTIP
UIAControl Type:ToolTip
ATK/AT-SPIRole:ROLE_TOOL_TIP
AX API[Note 1]AXRole:AXGroup
AXSubrole:AXUserInterfaceTooltip
Android

TBD

3.4.3.95tree
ARIA Specificationtree
Computed Role

tree

MSAA + IAccessible2Role:ROLE_SYSTEM_OUTLINE
Method:IAccessible::accSelect()
Method:IAccessible::get_accSelection()
UIAControl Type:Tree
ATK/AT-SPIRole:ROLE_TREE
Interface:Selection

BecauseWAI-ARIA does not support modifying the selection via the accessibilityAPI, user agentsMUST returnfalse for allSelection methods that provide a means to modify the selection.

AX API[Note 1]AXRole:AXOutline
AXSubrole:<nil>
Android

TBD

3.4.3.96treegrid
ARIA Specificationtreegrid
Computed Role

treegrid

MSAA + IAccessible2Role:ROLE_SYSTEM_OUTLINE
Interface:IAccessibleTable2
Method:IAccessible::accSelect()
Method:IAccessible::get_accSelection()
UIAControl Type:DataGrid
ATK/AT-SPIRole:ROLE_TREE_TABLE
Interface:Table
Interface:Selection

BecauseWAI-ARIA does not support modifying the selection via the accessibilityAPI, user agentsMUST returnfalse for allSelection methods that provide a means to modify the selection.

AX API[Note 1]AXRole:AXTable
AXSubrole:<nil>
Android

TBD

3.4.3.97treeitem
ARIA Specificationtreeitem
Computed Role

treeitem

MSAA + IAccessible2Role:ROLE_SYSTEM_OUTLINEITEM
See also:aria-checked in theState and Property Mapping Tables
UIAControl Type:TreeItem
See also:aria-checked in theState and Property Mapping Tables
ATK/AT-SPIRole:ROLE_TREE_ITEM
See also:aria-checked in theState and Property Mapping Tables
AX API[Note 1]AXRole:AXRow
AXSubrole:AXOutlineRow
See also:aria-checked in theState and Property Mapping Tables
Android

TBD

Note

[Note 1] User agent should return a user-presentable, localized string value for the AXRoleDescription.

Note

[Note 2] This specification does not currently contain guidance for when user agents should fire system alert events. Some guidance may be added to the specification at a later date but it will be a recommendation (SHOULD), not a requirement (MUST).

3.5State and Property Mapping

This section describes how to exposeWAI-ARIAstates andproperties.

3.5.1General rules

  1. User agentsMUST computemanaged statesVISIBLE/INVISIBLE,SHOWING/OFFSCREEN, etc. This typically is done in the same way as for ordinaryelements that do not haveWAI-ARIA attributes present. TheFOCUSABLE/FOCUSED states may be affected byaria-activedescendant.
  2. User agentsMUST continue to expose native semantics in addition toWAI-ARIA state and property semantics except where an explicitWAI-ARIA override is allowed by the host language. For example, anHTML checkbox may have anaria-labelledby attribute but the nativeHTML semantics must still be exposed.
  3. User agentsMUST expose additional states for certainroles as defined in theRole Mapping Tables.
  4. User agentsMUST compute states for the relevantWAI-ARIAattributes and map to theaccessibilityAPI as specified in theState and Property Mapping Tables. To determine the relevantWAI-ARIA attributes, refer to theDefinition of Roles [WAI-ARIA-1.2]]. Where the author has not provided values for required attributes, user agentsSHOULD process as if the default value was provided.
  5. SomeWAI-ARIA properties are not global, and are only supported on certain roles. If a non-globalWAI-ARIA state or property is used where it is not supported, user agentsSHOULD NOT map the givenWAI-ARIA property to the platform accessibilityAPI. For example, ifaria-checked="true" is specified on<div role="grid">, it should not be exposed inMSAA implementations asSTATE_SYSTEM_CHECKED.
  6. When an explicit or inherited role ofnone orpresentation is applied to an element, the user agentMUST implement the rules for thenone or thepresentationrole defined inAccessible Rich Internet Applications (WAI-ARIA) 1.2 [WAI-ARIA-1.2]].

3.5.2State and Property Mapping Tables

3.5.2.1Not Mapped

There are a number of occurrences in the table where a given state or property is declared "Not mapped". In some cases, this occurs for the default value of the state/property, and is equivalent to its absence. User agents might find it quicker to map the value than check to see if it is the default. For computational efficiency, user agentsMAY expose the state or property value if doing so is equivalent to not mapping it. These cases are marked with an asterisk.

In other cases, it is mandatory that the state/property not be mapped, since exposing it implies a related affordance. An example isaria-grabbed. Its absence not only indicates that the accessible object is not grabbed, but further defines it as not grab-able. These cases are marked as "Not mapped" without an asterisk.

3.5.2.2aria-activedescendant
ARIA Specificationaria-activedescendant
MSAA + IAccessible2SeeFocus Changes.
UIASeeFocus Changes.
ATK/AT-SPISeeFocus Changes.
AX API SeeFocus Changes.
Property:AXSelectedRows: pointer to active descendant node
Android

TBD

3.5.2.3aria-atomic=true
ARIA Specificationaria-atomic=true
MSAA + IAccessible2Object Attribute:atomic:true
Object Attribute:container-atomic:true
Object Attribute:container-atomic:true on all descendants
Relation:IA2_RELATION_MEMBER_OF pointing to this element (the atomic root)
See also:Changes to document content or node visibility
UIAProperty:AriaProperties.atomic:true
See also:Changes to document content or node visibility
ATK/AT-SPIObject Attribute:atomic:true
Object Attribute:container-atomic:true
Object Attribute:container-atomic:true on all descendants
Relation:RELATION_MEMBER_OF pointing to this element (the atomic root)
See also:Changes to document content or node visibility
AX APIProperty:AXARIAAtomic:YES
See also:Changes to document content or node visibility
Android

TBD

3.5.2.4aria-atomic=false
ARIA Specificationaria-atomic=false
MSAA + IAccessible2Not mapped*, but if mapped:
Object Attribute:atomic:false
Object Attribute:container-atomic:false
Object Attribute:container-atomic:false on all descendants
Relation:IA2_RELATION_MEMBER_OF pointing to this element (the atomic root)
See also:Changes to document content or node visibility
UIAProperty:AriaProperties.atomic:false
See also:Changes to document content or node visibility
ATK/AT-SPINot mapped*, but if mapped:
Object Attribute:atomic:false
Object Attribute:container-atomic:false
Object Attribute:container-atomic:false on all descendants
Relation:RELATION_MEMBER_OF pointing to this element (the atomic root)
See also:Changes to document content or node visibility
AX APIProperty:AXARIAAtomic:NO
See also:Changes to document content or node visibility
Android

TBD

3.5.2.5aria-autocomplete=inline,list, orboth
ARIA Specificationaria-autocomplete=inline,list, orboth
MSAA + IAccessible2Object Attribute:autocomplete:<value>
State:IA2_STATE_SUPPORTS_AUTOCOMPLETION
UIANot mapped
ATK/AT-SPIObject Attribute:autocomplete:<value>
State:STATE_SUPPORTS_AUTOCOMPLETION
AX APINot mapped
Android

TBD

3.5.2.6aria-autocomplete=none
ARIA Specificationaria-autocomplete=none
MSAA + IAccessible2Not mapped*
UIANot mapped*
ATK/AT-SPINot mapped*
AX APINot mapped*
Android

TBD

3.5.2.7aria-braillelabel
ARIA Specificationaria-braillelabel
MSAA + IAccessible2Object Attribute:braillelabel:<value>
UIAProperty:AriaProperties.braillelabel:<value>
ATK/AT-SPIObject Attribute:braillelabel:<value>
AX APIProperty: AXBrailleLabel
Android

TBD

3.5.2.8aria-brailleroledescription
ARIA Specificationaria-brailleroledescription
MSAA + IAccessible2Object Attribute:brailleroledescription:<value>
UIAProperty:AriaProperties.brailleroledescription:<value>
ATK/AT-SPIObject Attribute:brailleroledescription:<value>
AX APIProperty: AXBrailleRoleDescription
Android

TBD

3.5.2.9aria-brailleroledescription is undefined or the empty string
ARIA Specificationaria-brailleroledescription is undefined or the empty string
MSAA + IAccessible2Not mapped
UIANot mapped
ATK/AT-SPINot mapped
AX APINot mapped
Android

TBD

3.5.2.10aria-busy=true
ARIA Specificationaria-busy=true
MSAA + IAccessible2State:STATE_SYSTEM_BUSY
UIAProperty:AriaProperties.busy:true
ATK/AT-SPIState:STATE_BUSY
AX APIProperty:AXElementBusy:YES
Android

TBD

3.5.2.11aria-busy=false
ARIA Specificationaria-busy=false
MSAA + IAccessible2State:STATE_SYSTEM_BUSY not exposed
UIAProperty:AriaProperties.busy:false
ATK/AT-SPIState:STATE_BUSY not exposed
AX APIProperty:AXElementBusy:NO
Android

TBD

3.5.2.12aria-checked=true
ARIA Specificationaria-checked=true
MSAA + IAccessible2State:STATE_SYSTEM_CHECKED
Object Attribute:checkable:true
UIAProperty:Toggle.ToggleState:On (1)
Property:SelectionItem.IsSelected:True forradio andmenuitemradio
ATK/AT-SPIState:STATE_CHECKABLE
State:STATE_CHECKED
AX APIProperty:AXValue:1
Property:AXMenuItemMarkChar: formenuitemcheckbox andmenuitemradio
Android

TBD

3.5.2.13aria-checked=false
ARIA Specificationaria-checked=false
MSAA + IAccessible2State:STATE_SYSTEM_CHECKED not exposed
Object Attribute:checkable:true
UIAProperty:Toggle.ToggleState:Off (0)
Property:SelectionItem.IsSelected:False forradio andmenuitemradio
ATK/AT-SPIState:STATE_CHECKABLE
State:STATE_CHECKED not exposed
AX APIProperty:AXValue:0
Property:AXMenuItemMarkChar:<nil> formenuitemcheckbox andmenuitemradio
Android

TBD

3.5.2.14aria-checked=mixed
ARIA Specificationaria-checked=mixed
MSAA + IAccessible2State:STATE_SYSTEM_MIXED
Object Attribute:checkable:true
UIAProperty:Toggle.ToggleState:Indeterminate (2)
ATK/AT-SPIState:STATE_INDETERMINATE
State:STATE_CHECKABLE
State:STATE_CHECKED not exposed
AX APIProperty:AXValue:2
Property:AXMenuItemMarkChar:<nil> formenuitemcheckbox andmenuitemradio
Android

TBD

3.5.2.15aria-checked is undefined
ARIA Specificationaria-checked is undefined
MSAA + IAccessible2Not mapped
UIANot mapped
ATK/AT-SPINot mapped
AX APINot mapped
Android

TBD

3.5.2.16aria-colcount
ARIA Specificationaria-colcount
MSAA + IAccessible2Object Attribute:colcount:<value>
Method:IAccessible2::groupPosition():similarItemsInGroup=<value> on cells and headers
UIAProperty:Grid.ColumnCount:<value>
ATK/AT-SPIObject Attribute:colcount should contain the author-provided value.
Method:atk_table_get_n_columns() should return the actual number of columns.
AX APIProperty:AXARIAColumnCount:<value>
Android

TBD

3.5.2.17aria-colindex
ARIA Specificationaria-colindex
MSAA + IAccessible2Object Attribute:colindex:<value>
Method:IAccessible2::groupPosition():positionInGroup=<value> on cells and headers
UIAProperty:GridItem.Column:<value> (zero-based)
ATK/AT-SPIObject Attribute:colindex should contain the author-provided value.
Method:atk_table_cell_get_position() should return the actual (zero-based) column index.
AX APIProperty:AXARIAColumnIndex:<value>
Android

TBD

3.5.2.18aria-colindextext
ARIA Specificationaria-colindextext
MSAA + IAccessible2Object Attribute:colindextext:<value>
UIAProperty:AriaProperties.colindextext:<value>
ATK/AT-SPIObject Attribute:colindextext:<value>
AX APIProperty:AXColumnIndexDescription:<value>
Android

TBD

3.5.2.19aria-colspan
ARIA Specificationaria-colspan
MSAA + IAccessible2Object Attribute:colspan:<value>
Method:IAccessibleTableCell::columnExtent():<value>
UIAProperty:GridItem.ColumnSpan:<value>
ATK/AT-SPIObject Attribute:colspan should contain the author-provided value.
Method:atk_table_cell_get_row_column_span() should return the actual column span.
AX APIProperty:AXColumnIndexRange.length:<value>
Android

TBD

3.5.2.20aria-controls
ARIA Specificationaria-controls
MSAA + IAccessible2Relation:IA2_RELATION_CONTROLLER_FOR points to accessible nodes matching IDREFs
Reverse Relation:IA2_RELATION_CONTROLLED_BY points to element
See also:Mapping Additional Relations
UIAProperty:ControllerFor: pointers to accessible nodes matching IDREFs
ATK/AT-SPIRelation:RELATION_CONTROLLER_FOR points to accessible nodes matching IDREFs
Reverse Relation:RELATION_CONTROLLED_BY points to element
See also:Mapping Additional Relations
AX APIProperty:AXLinkedUIElements: pointers to accessible nodes matching IDREFs
Android

TBD

3.5.2.21aria-current with non-false allowed value
ARIA Specificationaria-current with non-false allowed value
MSAA + IAccessible2Object Attribute:current:<value>
UIAProperty:AriaProperties.current:<value>
ATK/AT-SPIObject Attribute:current:<value>
State:STATE_ACTIVE
AX APIProperty:AXARIACurrent:<value>
Android

TBD

3.5.2.22aria-current with unrecognized value
ARIA Specificationaria-current with unrecognized value
MSAA + IAccessible2Object Attribute:current:true
UIAProperty:AriaProperties.current:true
ATK/AT-SPIObject Attribute:current:true
State:STATE_ACTIVE
AX APIProperty:AXARIACurrent:true
Android

TBD

3.5.2.23aria-current isfalse or undefined
ARIA Specificationaria-current isfalse or undefined
MSAA + IAccessible2Not mapped*
UIANot mapped*
ATK/AT-SPINot mapped*
AX APINot mapped*
Android

TBD

3.5.2.24aria-describedby
ARIA Specificationaria-describedby
MSAA + IAccessible2Property:accDescription:<value>
Relation:IA2_RELATION_DESCRIBED_BY points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:IA2_RELATION_DESCRIPTION_FOR points to element
See also:Name Computation andMapping Additional Relations
UIAProperty:FullDescription:<value>
See also:Name Computation
ATK/AT-SPIProperty:Description:<value>
Relation:RELATION_DESCRIBED_BY points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:RELATION_DESCRIPTION_FOR points to element
See also:Name Computation andMapping Additional Relations
AX APIIn the accessibilityCustomContentAPI, expose as anAXCustomContent object with{ label: "description" } and `value` set to the description string.
-See also:
Name Computation
Android

TBD

3.5.2.25aria-description
ARIA Specificationaria-description
MSAA + IAccessible2Property:accDescription:<value>
See also:Name Computation
UIAProperty:FullDescription:<value>
See also:Name Computation
ATK/AT-SPIProperty:Description:<value>
See also:Name Computation
AX APIIn the accessibilityCustomContentAPI, expose as anAXCustomContent object with{ label: "description" } and `value` set to the description string.
See also:
Name Computation
Android

TBD

3.5.2.26aria-details
ARIA Specificationaria-details
MSAA + IAccessible2Relation:IA2_RELATION_DETAILS points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:IA2_RELATION_DETAILS_FOR points to element
See also:Mapping Additional Relations
UIAProperty:DescribedBy: points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
ATK/AT-SPIRelation:RELATION_DETAILS points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:RELATION_DETAILS_FOR points to element
See also:Mapping Additional Relations
AX APINot mapped*
Android

TBD

3.5.2.27aria-disabled=true
ARIA Specificationaria-disabled=true
MSAA + IAccessible2State:STATE_SYSTEM_UNAVAILABLE
State:STATE_SYSTEM_UNAVAILABLE on all descendants withSTATE_SYSTEM_FOCUSABLE
UIAProperty:IsEnabled:false
ATK/AT-SPIState:STATE_ENABLED not exposed
AX APIProperty:AXEnabled:NO
Android

TBD

3.5.2.28aria-disabled=false
ARIA Specificationaria-disabled=false
MSAA + IAccessible2State:STATE_SYSTEM_UNAVAILABLE not exposed
UIAProperty:IsEnabled:true
ATK/AT-SPIState:STATE_ENABLED
AX APIProperty:AXEnabled:YES
Android

TBD

3.5.2.29aria-dropeffect=copy,move,link,execute, orpopup (deprecated)
ARIA Specificationaria-dropeffect=copy,move,link,execute, orpopup
MSAA + IAccessible2Object Attribute:dropeffect:<value>
UIAProperty:AriaProperties.dropeffect:<value>
ATK/AT-SPIObject Attribute:dropeffect:<value>
AX APIarray AXDropEffects
Android

TBD

3.5.2.30aria-dropeffect=none (deprecated)
ARIA Specificationaria-dropeffect=none
MSAA + IAccessible2Object Attribute:dropeffect:none if there are no other valid tokens
Not mapped* if not specified by the author
UIANot mapped*
ATK/AT-SPIObject Attribute:dropeffect:none if there are no other valid tokens
Not mapped* if not specified by the author
AX APINot mapped*
Android

TBD

3.5.2.31aria-errormessage
ARIA Specificationaria-errormessage
MSAA + IAccessible2Relation:IA2_RELATION_ERROR points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:IA2_RELATION_ERROR_FOR points to element
See also:Mapping Additional Relations
UIAProperty:ControllerFor: pointer to the target accessible object
ATK/AT-SPIRelation:RELATION_ERROR_MESSAGE points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:RELATION_ERROR_FOR points to element
See also:Mapping Additional Relations
AX APIProperty:AXErrorMessageElements: pointers to accessible nodes matching IDREFs
Android

TBD

3.5.2.32aria-expanded=true
ARIA Specificationaria-expanded=true
MSAA + IAccessible2State:STATE_SYSTEM_EXPANDED
UIAProperty:ExpandCollapse.ExpandCollapseState:Expanded
ATK/AT-SPIState:STATE_EXPANDABLE
State:STATE_EXPANDED
AX APIProperty:AXExpanded:YES
Android

TBD

3.5.2.33aria-expanded=false
ARIA Specificationaria-expanded=false
MSAA + IAccessible2State:STATE_SYSTEM_COLLAPSED
UIAProperty:ExpandCollapse.ExpandCollapseState:Collapsed
ATK/AT-SPIState:STATE_EXPANDABLE
State:STATE_EXPANDED not exposed
AX APIProperty:AXExpanded:NO
Android

TBD

3.5.2.34aria-expanded is undefined
ARIA Specificationaria-expanded is undefined
MSAA + IAccessible2Not mapped
UIANot mapped
ATK/AT-SPINot mapped
AX APINot mapped
Android

TBD

3.5.2.35aria-flowto
ARIA Specificationaria-flowto
MSAA + IAccessible2Relation:IA2_RELATION_FLOW_TO points to accessible nodes matching IDREFs
Reverse Relation:IA2_RELATION_FLOW_FROM points to element
See also:Mapping Additional Relations
UIAProperty:FlowsTo: pointers to accessible nodes matching IDREFs
ATK/AT-SPIRelation:RELATION_FLOWS_TO points to accessible nodes matching IDREFs
Reverse Relation:RELATION_FLOWS_FROM points to element
See also:Mapping Additional Relations
AX APIProperty:AXLinkedUIElements: pointers to accessible nodes matching IDREFs
Android

TBD

3.5.2.36aria-grabbed=true
ARIA Specificationaria-grabbed=true
MSAA + IAccessible2Object Attribute:grabbed:true
UIAProperty:AriaProperties.grabbed:true
ATK/AT-SPIObject Attribute:grabbed:true
AX APIProperty:AXGrabbed:YES
Android

TBD

3.5.2.37aria-grabbed=false
ARIA Specificationaria-grabbed=false
MSAA + IAccessible2Object Attribute:grabbed:false
UIAProperty:AriaProperties.grabbed:false
ATK/AT-SPIObject Attribute:grabbed:false
AX APIProperty:AXGrabbed:NO
Android

TBD

3.5.2.38aria-grabbed is undefined
ARIA Specificationaria-grabbed is undefined
MSAA + IAccessible2Not mapped
UIANot mapped
ATK/AT-SPINot mapped
AX APINot mapped
Android

TBD

3.5.2.39aria-haspopup=true
ARIA Specificationaria-haspopup=true
MSAA + IAccessible2State:STATE_SYSTEM_HASPOPUP
Object Attribute:haspopup:menu
UIAControl Pattern:ExpandCollapseSee also:aria-expanded
ATK/AT-SPIState:STATE_HAS_POPUP
Object Attribute:haspopup:menu
AX APIProperty:AXPopupValue:menu
Action:AXShowMenu
Android

TBD

3.5.2.40aria-haspopup=false
ARIA Specificationaria-haspopup=false
MSAA + IAccessible2State:STATE_SYSTEM_HASPOPUP not exposed
Object Attribute:haspopup:false
UIANot mapped*
ATK/AT-SPINot mapped*
AX APINot mapped*
Android

TBD

3.5.2.41aria-haspopup=dialog
ARIA Specificationaria-haspopup=dialog
MSAA + IAccessible2State:STATE_SYSTEM_HASPOPUP
Object Attribute:haspopup:dialog
UIAControl Pattern:ExpandCollapse
See also:aria-expanded
ATK/AT-SPIState:STATE_HAS_POPUP
Object Attribute:haspopup:dialog
AX APIProperty:AXPopupValue:dialog
Action:AXShowMenu
Android

TBD

3.5.2.42aria-haspopup=grid
ARIA Specificationaria-haspopup=grid
MSAA + IAccessible2State:STATE_SYSTEM_HASPOPUP
Object Attribute:haspopup:grid
UIAControl Pattern:ExpandCollapse
See also:aria-expanded
ATK/AT-SPIState:STATE_HAS_POPUP
Object Attribute:haspopup:grid
AX APIProperty:AXPopupValue:grid
Action:AXShowMenu
Android

TBD

3.5.2.43aria-haspopup=listbox
ARIA Specificationaria-haspopup=listbox
MSAA + IAccessible2State:STATE_SYSTEM_HASPOPUP
Object Attribute:haspopup:listbox
UIAControl Pattern:ExpandCollapse
See also:aria-expanded
ATK/AT-SPIState:STATE_HAS_POPUP
Object Attribute:haspopup:listbox
AX APIProperty:AXPopupValue:listbox
Action:AXShowMenu
Android

TBD

3.5.2.44aria-haspopup=menu
ARIA Specificationaria-haspopup=menu
MSAA + IAccessible2State:STATE_SYSTEM_HASPOPUP
Object Attribute:haspopup:menu
UIAControl Pattern:ExpandCollapse
See also:aria-expanded
ATK/AT-SPIState:STATE_HAS_POPUP
Object Attribute:haspopup:menu
AX APIProperty:AXPopupValue:menu
Action:AXShowMenu
Android

TBD

3.5.2.45aria-haspopup=tree
ARIA Specificationaria-haspopup=tree
MSAA + IAccessible2State:STATE_SYSTEM_HASPOPUP
Object Attribute:haspopup:tree
UIAControl Pattern:ExpandCollapse
See also:aria-expanded
ATK/AT-SPIState:STATE_HAS_POPUP
Object Attribute:haspopup:tree
AX APIProperty:AXPopupValue:tree
Action:AXShowMenu
Android

TBD

3.5.2.46aria-hidden=true on unfocused element
ARIA Specificationaria-hidden=true on unfocused element
MSAA + IAccessible2ElementSHOULD NOT be exposed
See also:Including Elements in the Accessibility Tree in theWAI-ARIA specification
UIAElementSHOULD NOT be exposed
See also:Including Elements in the Accessibility Tree in theWAI-ARIA specification
ATK/AT-SPIElementSHOULD NOT be exposed
See also:Including Elements in the Accessibility Tree in theWAI-ARIA specification
AX APIElementSHOULD NOT be exposed
See also:Including Elements in the Accessibility Tree in theWAI-ARIA specification
Android

TBD

3.5.2.47aria-hidden=true when element is focused or fires an accessibility event
ARIA Specificationaria-hidden=true when element is focused or fires an accessibility event
MSAA + IAccessible2Object Attribute:hidden:true
See also:Including Elements in the Accessibility Tree in theWAI-ARIA specification
UIAProperty:AriaProperties.hidden:true
See also:Including Elements in the Accessibility Tree in theWAI-ARIA specification
ATK/AT-SPIObject Attribute:hidden:true
See also:Including Elements in the Accessibility Tree in theWAI-ARIA specification
AX APINot mapped
See also:Including Elements in the Accessibility Tree in theWAI-ARIA specification
Android

TBD

3.5.2.48aria-hidden=false
ARIA Specificationaria-hidden=false
MSAA + IAccessible2Not mapped
UIANot mapped
ATK/AT-SPINot mapped
AX APINot mapped
Android

TBD

3.5.2.49aria-invalid=true
ARIA Specificationaria-invalid=true
MSAA + IAccessible2State:IA2_STATE_INVALID_ENTRY
Text Attribute:invalid:true
UIAProperty:IsDataValidForForm:false
ATK/AT-SPIState:STATE_INVALID_ENTRY
Text Attribute:invalid:true
AX APIProperty:AXInvalid:true
Android

TBD

3.5.2.50aria-invalid=false
ARIA Specificationaria-invalid=false
MSAA + IAccessible2State:IA2_STATE_INVALID_ENTRY not exposed
UIAProperty:IsDataValidForForm:true
ATK/AT-SPIState:STATE_INVALID_ENTRY not exposed
AX APIProperty:AXInvalid:false
Android

TBD

3.5.2.51aria-invalid=spelling orgrammar
ARIA Specificationaria-invalid=spelling orgrammar
MSAA + IAccessible2State:IA2_STATE_INVALID_ENTRY
Text Attribute:invalid:<value>
UIAProperty:IsDataValidForForm:<value>
ATK/AT-SPIState:STATE_INVALID_ENTRY
Text Attribute:invalid:<value>
AX APIProperty:AXInvalid:<value>
Android

TBD

3.5.2.52aria-invalid with unrecognized value
ARIA Specificationaria-invalid with unrecognized value
MSAA + IAccessible2State:IA2_STATE_INVALID_ENTRY
Text Attribute:invalid:true
UIAProperty:IsDataValidForForm:false
ATK/AT-SPIState:STATE_INVALID_ENTRY
Text Attribute:invalid:true
AX APIProperty:AXInvalid:true
Android

TBD

3.5.2.53aria-keyshortcuts
ARIA Specificationaria-keyshortcuts
MSAA + IAccessible2Property:accKeyboardShortcut:<value>
UIAProperty:AcceleratorKey:<value>
ATK/AT-SPIObject Attribute:keyshortcuts:<value>
AX APIProperty:AXKeyShortcutsValue:<value>
Android

TBD

3.5.2.54aria-label
ARIA Specificationaria-label
MSAA + IAccessible2Property:accName:<value>
See also:Name Computation
UIAProperty:Name:<value>
See also:Name Computation
ATK/AT-SPIProperty:Name:<value>
See also:Name Computation
AX APIProperty:AXTitle:<value>
See also:Name Computation
Android

TBD

3.5.2.55aria-labelledby
ARIA Specificationaria-labelledby
MSAA + IAccessible2Property:accName:<value>
Relation:IA2_RELATION_LABELLED_BY points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:IA2_RELATION_LABEL_FOR points to element
See also:Name Computation andMapping Additional Relations
UIAProperty:Name:<value>
Property:LabeledBy: points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
See also:Name Computation
ATK/AT-SPIProperty:Name:<value>
Relation:RELATION_LABELLED_BY points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:RELATION_LABEL_FOR points to element
See also:Name Computation andMapping Additional Relations
AX APIProperty:AXTitle:<value>
Property:AXTitleUIElement points to accessible node matching IDREF, if there is a single referenced element that is in the accessibility tree
See also:Name Computation
Android

TBD

3.5.2.56aria-level on non-heading
ARIA Specificationaria-level on non-heading
MSAA + IAccessible2Object Attribute:level:<value>
Method:IAccessible2::groupPosition():groupLevel=<value> on roles that supportaria-posinset andaria-setsize
See also:groupPosition()
UIAProperty:AriaProperties.level:<value>
ATK/AT-SPIObject Attribute:level:<value>
AX APIProperty:AXDisclosureLevel:<value> (zero-based), when used on an outline row (like atreeitem orgroup)
Android

TBD

3.5.2.57aria-level onheading
ARIA Specificationaria-level onheading
MSAA + IAccessible2Object Attribute:level:<value>
UIAProperty:AriaProperties.level:<value>
Property:StyleId_Heading:<value>
ATK/AT-SPIObject Attribute:level:<value>
AX APIProperty:AXValue:<value>
Android

TBD

3.5.2.58aria-live=assertive
ARIA Specificationaria-live=assertive
MSAA + IAccessible2Object Attribute:live:assertive
Object Attribute:container-live:assertive
Object Attribute:container-live:assertive on all descendants
See also:Changes to document content or node visibility
UIAProperty:LiveSetting:"assertive"
See also:Changes to document content or node visibility
ATK/AT-SPIObject Attribute:live:assertive
Object Attribute:container-live:assertive
Object Attribute:container-live:assertive on all descendants
See also:Changes to document content or node visibility
AX APIProperty:AXARIALive:"assertive"
See also:Changes to document content or node visibility
Android

TBD

3.5.2.59aria-live=polite
ARIA Specificationaria-live=polite
MSAA + IAccessible2Object Attribute:live:polite
Object Attribute:container-live:polite
Object Attribute:container-live:polite on all descendants
See also:Changes to document content or node visibility
UIAProperty:LiveSetting:"polite"
See also:Changes to document content or node visibility
ATK/AT-SPIObject Attribute:live:polite
Object Attribute:container-live:polite
Object Attribute:container-live:polite on all descendants
See also:Changes to document content or node visibility
AX APIProperty:AXARIALive:"polite"
See also:Changes to document content or node visibility
Android

TBD

3.5.2.60aria-live=off
ARIA Specificationaria-live=off
MSAA + IAccessible2Object Attribute:live:off
Object Attribute:container-live:off
Object Attribute:container-live:off on all descendants
UIAProperty:LiveSetting:"off"
ATK/AT-SPIObject Attribute:live:off
Object Attribute:container-live:off
Object Attribute:container-live:off on all descendants
AX APIProperty:AXARIALive:"off"
Android

TBD

3.5.2.61aria-modal=true
ARIA Specificationaria-modal=true
MSAA + IAccessible2State:IA2_STATE_MODAL
UIAProperty:Window.IsModal:true
ATK/AT-SPIState:STATE_MODAL
AX API Prune the accessibility tree such that the background content is no longer exposed. No specific property is set on theaccessible object that corresponds to theelement witharia-modal="true". Only the tree whose root is that modal accessible object is exposed.
Android

TBD

3.5.2.62aria-modal=false
ARIA Specificationaria-modal=false
MSAA + IAccessible2State:IA2_STATE_MODAL not exposed
UIAProperty:Window.IsModal:false
ATK/AT-SPIState:STATE_MODAL not exposed
AX API Grow the accessibility tree such that the background content is exposed. No specific property is set on theaccessible object that corresponds to theelement witharia-modal="false".
Android

TBD

3.5.2.63aria-multiline=true
ARIA Specificationaria-multiline=true
MSAA + IAccessible2State:IA2_STATE_MULTI_LINE
State:IA2_STATE_SINGLE_LINE not exposed
UIAProperty:AriaProperties.multiline:true
ATK/AT-SPIState:STATE_MULTI_LINE
State:STATE_SINGLE_LINE not exposed
AX APINot mapped
See also:textbox in the Role Mapping Tables
Android

TBD

3.5.2.64aria-multiline=false
ARIA Specificationaria-multiline=false
MSAA + IAccessible2State:IA2_STATE_SINGLE_LINE
State:IA2_STATE_MULTI_LINE not exposed
UIANot mapped
ATK/AT-SPIState:STATE_SINGLE_LINE
State:STATE_MULTI_LINE not exposed
AX APINot mapped
See also:textbox in the Role Mapping Tables
Android

TBD

3.5.2.65aria-multiselectable=true
ARIA Specificationaria-multiselectable=true
MSAA + IAccessible2State:STATE_SYSTEM_MULTISELECTABLE
State:STATE_SYSTEM_EXTSELECTABLE
See also:Selection for details on accessibility events
UIAProperty:Selection.CanSelectMultiple:true
See also:Selection for details on accessibility events
ATK/AT-SPIState:STATE_MULTISELECTABLE
See also:Selection for details on accessibility events
AX APIProperty:AXIsMultiSelectable:YES
See also:Selection for details on accessibility events
Android

TBD

3.5.2.66aria-multiselectable=false
ARIA Specificationaria-multiselectable=false
MSAA + IAccessible2State:STATE_SYSTEM_MULTISELECTABLE not exposed
State:STATE_SYSTEM_EXTSELECTABLE not exposed
See also:Selection for details on accessibility events
UIANot mapped*
ATK/AT-SPIState:STATE_MULTISELECTABLE not exposed
AX APINot mapped*
Android

TBD

3.5.2.67aria-orientation=horizontal
ARIA Specificationaria-orientation=horizontal
MSAA + IAccessible2State:IA2_STATE_HORIZONTAL
State:IA2_STATE_VERTICAL not exposed
UIAProperty:Orientation:horizontal
ATK/AT-SPIState:STATE_HORIZONTAL
State:STATE_VERTICAL not exposed
AX APIProperty:AXOrientation:AXHorizontalOrientation
Android

TBD

3.5.2.68aria-orientation=vertical
ARIA Specificationaria-orientation=vertical
MSAA + IAccessible2State:IA2_STATE_VERTICAL
State:IA2_STATE_HORIZONTAL not exposed
UIAProperty:Orientation:vertical
ATK/AT-SPIState:STATE_VERTICAL
State:STATE_HORIZONTAL not exposed
AX APIProperty:AXOrientation:AXVerticalOrientation
Android

TBD

3.5.2.69aria-orientation is undefined
ARIA Specificationaria-orientation is undefined
MSAA + IAccessible2Not mapped*
UIANot mapped*
ATK/AT-SPIState:STATE_VERTICAL not exposed
State:STATE_HORIZONTAL not exposed
AX APIProperty:AXOrientation:AXUnknownOrientation
Android

TBD

3.5.2.70aria-owns
ARIA Specificationaria-owns
MSAA + IAccessible2

User agentsMAY expose the elements that are referenced by this property as children of the current element. In which case, if multiplearia-owns relationships are found, use only the first one. If the accessibility tree is not modified, expose as:

Relation:IA2_RELATION_NODE_PARENT_OF points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:IA2_RELATION_NODE_CHILD_OF points to element
See also:Mapping Additional Relations
UIA Expose the elements that are referenced by this property as children of the current element. If multiplearia-owns relationships are found, use only the first one.
ATK/AT-SPI

User agentsMAY expose the elements that are referenced by this property as children of the current element. In which case, if multiplearia-owns relationships are found, use only the first one. If the accessibility tree is not modified, expose as:

Relation:RELATION_NODE_PARENT_OF points to accessible nodes matching IDREFs, if the referenced objects are in the accessibility tree
Reverse Relation:RELATION_NODE_CHILD_OF points to element
See also:Mapping Additional Relations
AX APIProperty:AXOwns: pointers to accessible nodes matching IDREFs
Android

TBD

3.5.2.71aria-placeholder
ARIA Specificationaria-placeholder
MSAA + IAccessible2Object Attribute:placeholder-text:<value>
UIAProperty:HelpText:<value>
ATK/AT-SPIObject Attribute:placeholder-text:<value>
AX APIProperty:AXPlaceholderValue:<value>
Android

TBD

3.5.2.72aria-posinset
ARIA Specificationaria-posinset
MSAA + IAccessible2Object Attribute:posinset:<value>
See also:Group Position
UIAProperty:AriaProperties.posinset:<value>
See also:Group Position
ATK/AT-SPIObject Attribute:posinset:<value>
See also:Group Position
AX APIProperty:AXARIAPosInSet:<value>
See also:Group Position
Android

TBD

3.5.2.73aria-pressed=true
ARIA Specificationaria-pressed=true
MSAA + IAccessible2State:STATE_SYSTEM_PRESSED
See also:button with defined value foraria-pressed
UIAProperty:Toggle.ToggleState:On (1)
ATK/AT-SPIState:STATE_PRESSED
See also:button with defined value foraria-pressed
AX APIProperty:AXValue:1
See also:button with defined value foraria-pressed
Android

TBD

3.5.2.74aria-pressed=mixed
ARIA Specificationaria-pressed=mixed
MSAA + IAccessible2State:STATE_SYSTEM_MIXED
See also:button with defined value foraria-pressed
UIAProperty:Toggle.ToggleState:Indeterminate (2)
ATK/AT-SPIState:STATE_INDETERMINATE
See also:button with defined value foraria-pressed
AX APIProperty:AXValue:2
See also:button with defined value foraria-pressed
Android

TBD

3.5.2.75aria-pressed=false
ARIA Specificationaria-pressed=false
MSAA + IAccessible2State:STATE_SYSTEM_PRESSED not exposed
See also:button with defined value foraria-pressed
UIAProperty:Toggle.ToggleState:Off (3)
ATK/AT-SPIState:STATE_PRESSED not exposed
See also:button with defined value foraria-pressed
AX APIProperty:AXValue:0
See also:button with defined value foraria-pressed
Android

TBD

3.5.2.76aria-pressed is undefined
ARIA Specificationaria-pressed is undefined
MSAA + IAccessible2Not mapped*
UIANot mapped*
ATK/AT-SPINot mapped*
AX APINot mapped*
Android

TBD

3.5.2.77aria-readonly=true
ARIA Specificationaria-readonly=true
MSAA + IAccessible2State:STATE_SYSTEM_READONLY
UIAProperty:Value.IsReadOnly:true, if the element implementsIValueProvider.
Property:RangeValue.IsReadOnly:true, if the element implementsIRangeValueProvider.
Property:AriaProperties.readonly:true
ATK/AT-SPIState:STATE_READ_ONLY
State:STATE_EDITABLE not exposed on text input roles
State:STATE_CHECKABLE not exposed on roles supportingaria-checked
State:STATE_CHECKABLE not exposed onradio descendants when used on aradiogroup
AX APIMethod:AXUIElementIsAttributeSettable(AXValue):NO
Android

TBD

3.5.2.78aria-readonly=false
ARIA Specificationaria-readonly=false
MSAA + IAccessible2State:STATE_SYSTEM_READONLY not exposed
State:IA2_STATE_EDITABLE
UIAProperty:Value.IsReadOnly:false, if the element implementsIValueProvider.
Property:RangeValue.IsReadOnly:false, if the element implementsIRangeValueProvider.
Property:AriaProperties.readonly:false
ATK/AT-SPIState:STATE_READ_ONLY not exposed
AX APIMethod:AXUIElementIsAttributeSettable(AXValue):YES
Android

TBD

3.5.2.79aria-readonly is unspecified ongridcell
ARIA Specificationaria-readonly is unspecified ongridcell
MSAA + IAccessible2 ThegridcellMUST inherit any author-provided value foraria-readonly from the containinggrid ortreegrid. Expose the inherited value on thegridcell as described foraria-readonly="true" andaria-readonly="false".
UIA ThegridcellMUST inherit any author-provided value foraria-readonly from the containinggrid ortreegrid. Expose the inherited value on thegridcell as described foraria-readonly="true" andaria-readonly="false".
ATK/AT-SPI ThegridcellMUST inherit any author-provided value foraria-readonly from the containinggrid ortreegrid. Expose the inherited value on thegridcell as described foraria-readonly="true" andaria-readonly="false".
AX API ThegridcellMUST inherit any author-provided value foraria-readonly from the containinggrid ortreegrid. Expose the inherited value on thegridcell as described foraria-readonly="true" andaria-readonly="false".
Android

TBD

3.5.2.80aria-relevant
ARIA Specificationaria-relevant
MSAA + IAccessible2Object Attribute:relevant:<value>
Object Attribute:container-relevant:<value>
Object Attribute:container-relevant:<value> on all descendants
See also:Changes to document content or node visibility
UIAProperty:AriaProperties.relevant:<value>
See also:Changes to document content or node visibility
ATK/AT-SPIObject Attribute:relevant:<value>
Object Attribute:container-relevant:<value>
Object Attribute:container-relevant:<value> on all descendants
See also:Changes to document content or node visibility
AX APIProperty:AXARIARelevant:<value>
See also:Changes to document content or node visibility
Android

TBD

3.5.2.81aria-required=true
ARIA Specificationaria-required=true
MSAA + IAccessible2State:IA2_STATE_REQUIRED
UIAProperty:IsRequiredForForm:true
ATK/AT-SPIState:STATE_REQUIRED
AX APIProperty:AXRequired:YES
Android

TBD

3.5.2.82aria-required=false
ARIA Specificationaria-required=false
MSAA + IAccessible2Not mapped*
UIANot mapped*
ATK/AT-SPINot mapped*
AX APINot mapped*
Android

TBD

3.5.2.83aria-roledescription
ARIA Specificationaria-roledescription
MSAA + IAccessible2Method:localizedExtendedRole():<value>
UIALocalized Control Type:<value>
ATK/AT-SPIObject Attribute:roledescription:<value>
AX APIProperty:AXRoleDescription:<value>
Android

TBD

3.5.2.84aria-roledescription is undefined or the empty string
ARIA Specificationaria-roledescription is undefined or the empty string
MSAA + IAccessible2Not mapped
UIALocalized Control Type is defined as that specified for the role of the element: based on the explicit role if the role attribute is provided; otherwise, based on the implicit role for the host language.
ATK/AT-SPINot mapped
AX APIAXRoleDescription is defined as that specified for the role of the element: based on the explicit role if the role attribute is provided; otherwise, based on the implicit role for the host language.
Android

TBD

3.5.2.85aria-rowcount
ARIA Specificationaria-rowcount
MSAA + IAccessible2Object Attribute:rowcount:<value>
Method:IAccessible2::groupPosition():similarItemsInGroup=<value> on rows
UIAProperty:Grid.RowCount:<value>
ATK/AT-SPIObject Attribute:rowcount should contain the author-provided value.
Method:atk_table_get_n_rows() should return the actual number of rows.
AX APIProperty:AXARIARowCount:<value>
Android

TBD

3.5.2.86aria-rowindex
ARIA Specificationaria-rowindex
MSAA + IAccessible2Object Attribute:rowindex:<value>
Method:IAccessible2::groupPosition():positionInGroup=<value> on rows
UIAProperty:GridItem.Row:<value> (zero-based)
ATK/AT-SPIObject Attribute:rowindex should contain the author-provided value.
Method:atk_table_cell_get_position() should return the actual (zero-based) row index.
AX APIProperty:AXARIARowIndex:<value>
Android

TBD

3.5.2.87aria-rowindextext
ARIA Specificationaria-rowindextext
MSAA + IAccessible2Object Attribute:rowindextext:<value>
UIAProperty:AriaProperties.rowindextext:<value>
ATK/AT-SPIObject Attribute:rowindextext:<value>
AX APIProperty:AXRowIndexDescription:<value>
Android

TBD

3.5.2.88aria-rowspan
ARIA Specificationaria-rowspan
MSAA + IAccessible2Object Attribute:rowspan:<value>
Method:IAccessibleTableCell::rowExtent():column=<value>
UIAProperty:GridItem.RowSpan:<value>
ATK/AT-SPIObject Attribute:rowspan should contain the author-provided value.
Method:atk_table_cell_get_row_column_span() should return the actual row span.
AX APIProperty:AXRowIndexRange.length:<value>
Android

TBD

3.5.2.89aria-selected=true
ARIA Specificationaria-selected=true
MSAA + IAccessible2State:STATE_SYSTEM_SELECTABLE
State:STATE_SYSTEM_SELECTED
See also:Selection for details on accessibility events
UIAProperty:SelectionItem.IsSelected:true
ATK/AT-SPIState:STATE_SELECTABLE
State:STATE_SELECTED
See also:Selection for details on accessibility events
AX APIProperty:AXSelected:YES
Android

TBD

3.5.2.90aria-selected=false
ARIA Specificationaria-selected=false
MSAA + IAccessible2State:STATE_SYSTEM_SELECTABLE
State:STATE_SYSTEM_SELECTED not exposed
See also:Selection for details on accessibility events
UIAProperty:SelectionItem.IsSelected:false
ATK/AT-SPIState:STATE_SELECTABLE
State:STATE_SELECTED not exposed
See also:Selection for details on accessibility events
AX APIProperty:AXSelected:NO
Android

TBD

3.5.2.91aria-selected is undefined
ARIA Specificationaria-selected is undefined
MSAA + IAccessible2Not mapped
UIANot mapped
ATK/AT-SPINot mapped
AX APINot mapped
Android

TBD

3.5.2.92aria-setsize
ARIA Specificationaria-setsize
MSAA + IAccessible2Object Attribute:setsize:<value>
See also:Group Position
UIAProperty:AriaProperties.setsize:<value>
See also:Group Position
ATK/AT-SPI

If the author-provided value ofaria-setsize is-1, the exposed value should be based on the number of objects in theDOM.

Object Attribute:setsize:<value>
State:STATE_INDETERMINATE if the author-provided value is-1
See also:
Group Position
AX APIProperty:AXARIASetSize:<value>
See also:Group Position
Android

TBD

3.5.2.93aria-sort=ascending
ARIA Specificationaria-sort=ascending
MSAA + IAccessible2Object Attribute:sort:ascending
UIAProperty:AriaProperties.sort:ascending
Property:ItemStatus:ascending if the element maps toHeaderItem Control Type
ATK/AT-SPIObject Attribute:sort:ascending
AX APIProperty:AXSortDirection:AXAscendingSortDirection
Android

TBD

3.5.2.94aria-sort=descending
ARIA Specificationaria-sort=descending
MSAA + IAccessible2Object Attribute:sort:descending
UIAProperty:AriaProperties.sort:descending
Property:ItemStatus:descending if the element maps toHeaderItem Control Type
ATK/AT-SPIObject Attribute:sort:descending
AX APIProperty:AXSortDirection:AXDescendingSortDirection
Android

TBD

3.5.2.95aria-sort=other
ARIA Specificationaria-sort=other
MSAA + IAccessible2Object Attribute:sort:other
UIAProperty:AriaProperties.sort:other
Property:ItemStatus:other if the element maps toHeaderItem Control Type
ATK/AT-SPIObject Attribute:sort:other
AX APIProperty:AXSortDirection:AXUnknownSortDirection
Android

TBD

3.5.2.96aria-sort=none
ARIA Specificationaria-sort=none
MSAA + IAccessible2Object Attribute:sort:none, if the value is not unspecified
UIANot mapped*
ATK/AT-SPIObject Attribute:sort:none, if the value is not unspecified
AX APINot mapped*
Android

TBD

3.5.2.97aria-valuemax
ARIA Specificationaria-valuemax
MSAA + IAccessible2Method:IAccessibleValue::maximumValue():<value>
See also:Handling Author Errors for States and Properties
UIAProperty:RangeValue.Maximum:<value>
See also:Handling Author Errors for States and Properties
ATK/AT-SPIMethod:atk_value_get_maximum_value():<value>
See also:Handling Author Errors for States and Properties
AX APIProperty:AXMaxValue:<value>
See also:Handling Author Errors for States and Properties
Android

TBD

3.5.2.98aria-valuemin
ARIA Specificationaria-valuemin
MSAA + IAccessible2Method:IAccessibleValue::minimumValue():<value>
See also:Handling Author Errors for States and Properties
UIAProperty:RangeValue.Minimum:<value>
See also:Handling Author Errors for States and Properties
ATK/AT-SPIMethod:atk_value_get_minimum_value():<value>
See also:Handling Author Errors for States and Properties
AX APIProperty:AXMinValue:<value>
See also:Handling Author Errors for States and Properties
Android

TBD

3.5.2.99aria-valuenow
ARIA Specificationaria-valuenow
MSAA + IAccessible2Method:IAccessibleValue::currentValue():<value>
Method:IAccessible::get_accValue():<value> ifaria-valuetext is not defined
See also:Handling Author Errors for States and Properties
UIAProperty:RangeValue.Value:<value>
See also:Handling Author Errors for States and Properties
ATK/AT-SPIMethod:atk_value_get_current_value():<value>
See also:Handling Author Errors for States and Properties
AX APIProperty:AXValue:<value>
See also:Handling Author Errors for States and Properties
Android

TBD

3.5.2.100aria-valuetext
ARIA Specificationaria-valuetext
MSAA + IAccessible2Method:IAccessible::get_accValue():<value>
Object Attribute:valuetext:<value>
See also:Handling Author Errors for States and Properties
UIAProperty:Value.Value:<value>
See also:Handling Author Errors for States and Properties
ATK/AT-SPIObject Attribute:valuetext:<value>
See also:Handling Author Errors for States and Properties
AX APIProperty:AXValueDescription:<value>
See also:Handling Author Errors for States and Properties
Android

TBD

3.6Special Processing Requiring Additional Computation

3.6.1Name and Description

For information on how to compute anaccessible name oraccessible description, see the section titledAccessible Name and Description Computation of theAccessible Name and Description Computation specification.

3.6.2Relations

Often in aGUI, there arerelationships between thewidgets that can be exposed programmatically toassistive technology.WAI-ARIA provides several relationshipproperties which are globally applicable to anyelement:aria-controls,aria-describedby,aria-flowto,aria-labelledby,aria-owns,aria-posinset, andaria-setsize. Therefore, it is not important to check therole before computing them.User agents can simply map these relations toaccessibilityAPIs as defined in the section titledState and Property Mapping.

3.6.2.1Reverse Relations

A reverse relation exists when an element's ID is referenced by aproperty in anotherelement. ForAPIs that support reverse relations,user agentsMUST use the mapping defined in theState and Property Mapping Tables when an element's ID is referenced by a relation property of another element and the referenced element is in the accessibility tree. AllWAI-ARIA references must point to an element that is exposed as an accessible object in the accessibility tree. When the referenced object is not exposed in the accessibility tree (e.g. because it ishidden), the reference is null.aria-labelledby andaria-describedby have an additional feature, which allows them to pull a flattened string from the referenced element to populate the name or description fields of the accessibilityAPI. This feature is described in theName and Description section.

Special case: If botharia-labelledby andHTML<label for= … > are used, the user agentMUST use theWAI-ARIA relation andMUST ignore theHTML label relation.

Note thataria-describedby may reference structured or interactive information where users would want to be able to navigate to different sections of content. User agentsMAY provide a way for the user to navigate to structured information referenced byaria-describedby andassistive technologySHOULD provide such a method.

3.6.2.2Implied reverse relations

In addition to the explicit relations defined byWAI-ARIAproperties, reverse relations are implied in two other situations:elements withrole="treeitem" where the ancestor does not have anaria-owns property and descendants of elements witharia-atomic property.

In the case ofrole="treeitem", whenaria-owns is not used,user agentsSHOULD do the following where reverse relations are supported by theAPI:

  • If the currenttreeitem usesaria-level, then walk backwards in the tree until atreeitem is found with a loweraria-level, then setRELATION_NODE_CHILD_OF to that element. If the top of the tree is reached, then setRELATION_NODE_CHILD_OF to the tree element itself.
  • If the parent of thetreeitem has arole ofgroup, then walk backwards from thegroup until an element with a role oftreeitem is found, then setRELATION_NODE_CHILD_OF to that element.

In the case ofaria-atomic, where reverse relations are supported by theAPI:

3.6.3Group Position

aria-level,aria-posinset, andaria-setsize are all 1-based. When theproperty is not present or is "0", it indicates the property is not computed or not supported. If any of these properties are specified by the author as either "0" or a negative number,user agentsSHOULD use "1" instead.

Ifaria-level is not provided or inherited for an element ofroletreeitem orcomment, user agents implementing IAccessible2 orATK/AT-SPIMUST compute it by following the explicit or computedRELATION_NODE_CHILD_OF relations.

Ifaria-posinset andaria-setsize are not provided, user agentsMUST compute them as follows:

  • forrole="treeitem" androle="comment", walk the tree backward and forward until the explicit or computed level becomes less than the current item's level. Count items only if they are at the same level as the current item.
  • Otherwise, if the role supportsaria-posinset andaria-setsize, process the parent (DOM parent or parent defined byaria-owns), counting items that have the same role.
  • Because these value are 1-based, include the current item in the computation. Foraria-posinset, include the current item and other group items if they are before the current item in theDOM. Foraria-setsize, add to that the number of items in the same group after the current item in theDOM.

If the author provides one or more ofaria-setsize andaria-posinset, it is the author's responsibility to supply them for all elements in the set.User agent correction of missing values in this case is not defined.

MSAA/IAccessible2API mappings involve an additional function,groupPosition() [IAccessible2], whenaria-level,aria-posinset, and/oraria-setsize are present on an element, or are computed by the user agent. When this occurs:

  • aria-level is exposed in thegroupLevel parameter ofgroupPosition(),
  • aria-setsize is exposed in thesimilarItemsInGroup parameter, and
  • aria-posinset is exposed in thepositionInGroup parameter.

3.7Actions

As part of mapping roles to accessible objects as defined inRole Mapping, users agents expose a default action on the object.

Note

Authors will need to create handlers for those click events that updateWAI-ARIA states and properties in theDOM accordingly, so that those updated states can be populated by the user agent in the AccessibilityAPI.

3.8Events

User agents fireevents for user actions,WAI-ARIAstate changes, changes to document content or node visibility, changes in selection and operation of menus as defined in the following sections.

3.8.1State and Property Change Events

User agentsMUST notifyassistive technology ofstate changes as defined in the table below,SHOULD notify assistive technology ofproperty changes if theaccessibilityAPI defines a changeevent for the property, andSHOULD NOT notify assistive technology of property changes if the accessibilityAPI does not define a change event for the property. For example, IAccessible2 defines an event to be used whenaria-activedescendant changes.WAI-ARIA properties that are expected to change includearia-activedescendant,aria-valuenow, andaria-valuetext.

Note

In someAPIs,AT will only be notified of events to which it has subscribed.

For simplicity and performance the user agentMAY trim out change events for state or property changes thatassistive technologies typically ignore, such as events that are happening in a window that does not currently have focus.

Note

Translators: For label text associated with the following table and its toggle buttons, see themappingTableLabels object in the<head> section of this document.

3.8.1.1aria-activedescendant
ARIA Specificationaria-activedescendant
MSAA + IAccessible2 event SeeFocus Changes.

In addition:

IA2_EVENT_ACTIVE_DESCENDANT_CHANGED

UIA event SeeFocus Changes.

In addition:

PropertyChangedEvent

Property:AriaProperties

ATK/AT-SPI eventSeeFocus Changes.
AX API Notification SeeFocus Changes.

In addition:AXSelectedChildrenChanged

Android

TBD

3.8.1.2aria-busy (state)
ARIA Specificationaria-busy (state)
MSAA + IAccessible2 eventEVENT_OBJECT_STATECHANGE
UIA eventPropertyChangedEvent

Property:AriaProperties

ATK/AT-SPI eventobject:state-changed:busy
AX API NotificationAXElementBusyChanged
Android

TBD

3.8.1.3aria-checked (state)
ARIA Specificationaria-checked (state)
MSAA + IAccessible2 eventEVENT_OBJECT_STATECHANGE
UIA eventPropertyChangedEvent

Properties:AriaProperties,ToggleState as part oftoggle pattern

ATK/AT-SPI eventobject:state-changed:checked
AX API NotificationAXValueChanged
Android

TBD

3.8.1.4aria-current (state)
ARIA Specificationaria-current (state)
MSAA + IAccessible2 eventIA2_EVENT_OBJECT_ATTRIBUTE_CHANGED
UIA eventPropertyChangedEvent

Property:AriaProperties

ATK/AT-SPI eventobject:state-changed:active
AX API NotificationAXCurrentStateChanged
Android

TBD

3.8.1.5aria-disabled (state)
ARIA Specificationaria-disabled (state)
MSAA + IAccessible2 eventEVENT_OBJECT_STATECHANGE
UIA eventPropertyChangedEvent

Properties:AriaProperties,IsEnabled

ATK/AT-SPI eventobject:state-changed:enabled andobject:state-changed:sensitive
AX API NotificationAXDisabledStateChanged
Android

TBD

3.8.1.6aria-describedby
ARIA Specificationaria-describedby
MSAA + IAccessible2 eventEVENT_OBJECT_DESCRIPTIONCHANGE
UIA eventPropertyChangedEvent

Properties:DescribedBy

ATK/AT-SPI eventobject:property-change:accessible-description
AX API NotificationAXDescribedByChanged
Android

TBD

3.8.1.7aria-dropeffect (property, deprecated)
ARIA Specificationaria-dropeffect (property, deprecated)
MSAA + IAccessible2 eventIA2_EVENT_OBJECT_ATTRIBUTE_CHANGED
UIA eventPropertyChangedEvent

Property:AriaProperties

ATK/AT-SPI eventobject:property-change
AX API NotificationAXDropEffectChanged
Android

TBD

3.8.1.8aria-expanded (state)
ARIA Specificationaria-expanded (state)
MSAA + IAccessible2 eventEVENT_OBJECT_STATECHANGE
UIA eventPropertyChangedEvent

Properties:AriaProperties,ExpandCollapseState as part of theExpandCollapse pattern

ATK/AT-SPI eventobject:state-changed:expanded
AX API NotificationAXRowExpanded,
AXRowCollapsed,
AXRowCountChanged
Android

TBD

3.8.1.9aria-grabbed (state, deprecated)
ARIA Specificationaria-grabbed (state, deprecated)
MSAA + IAccessible2 event

EVENT_OBJECT_SELECTION

IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED

UIA eventPropertyChangedEvent

Property:AriaProperties

ATK/AT-SPI eventobject:property-change
AX API NotificationAXGrabbedStateChanged
Android

TBD

3.8.1.10aria-hidden (state)
ARIA Specificationaria-hidden (state)
MSAA + IAccessible2 event IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED
UIA eventStructureChangedEvent

PropertyChangedEvent

Property:AriaProperties

ATK/AT-SPI eventobject:property-change
AX API NotificationAXUIElementDestroyed,
AXUIElementCreated
Android

TBD

3.8.1.11aria-invalid (state)
ARIA Specificationaria-invalid (state)
MSAA + IAccessible2 eventEVENT_OBJECT_STATECHANGE
UIA eventPropertyChangedEvent

Properties:AriaProperties,IsDataValidForForm

ATK/AT-SPI eventobject:state-changed:invalid_entry
AX API NotificationAXInvalidStatusChanged
Android

TBD

3.8.1.12aria-label andaria-labelledby
ARIA Specificationaria-label andaria-labelledby
MSAA + IAccessible2 eventEVENT_OBJECT_NAMECHANGE
UIA eventPropertyChangedEvent

Property foraria-label:AriaProperties

Property foraria-labelledby:LabeledBy

ATK/AT-SPI eventobject:property-change:accessible-name
AX API NotificationAXLabelCreated
Android

TBD

3.8.1.13aria-pressed (state)
ARIA Specificationaria-pressed (state)
MSAA + IAccessible2 eventEVENT_OBJECT_STATECHANGE
UIA eventPropertyChangedEvent

Properties:AriaProperties,ToggleState as part oftoggle pattern

ATK/AT-SPI eventobject:state-changed:pressed
AX API NotificationAXPressedStateChanged
Android

TBD

3.8.1.14aria-readonly
ARIA Specificationaria-readonly
MSAA + IAccessible2 eventEVENT_OBJECT_STATECHANGE
UIA eventPropertyChangedEvent

Property:AriaProperties

ATK/AT-SPI eventobject:state-changed:readonly
AX API NotificationAXReadOnlyStatusChanged
Android

TBD

3.8.1.15aria-required
ARIA Specificationaria-required
MSAA + IAccessible2 eventEVENT_OBJECT_STATECHANGE
UIA eventPropertyChangedEvent

Properties:AriaProperties,IsRequiredForForm

ATK/AT-SPI eventobject:state-changed:required
AX API NotificationAXRequiredStatusChanged
Android

TBD

3.8.1.16aria-selected (state)
ARIA Specificationaria-selected (state)
MSAA + IAccessible2 eventSee sectionSelection for details.
UIA eventSee sectionSelection for details.
ATK/AT-SPI eventSee sectionSelection for details.
AX API NotificationSee sectionSelection for details.
Android

TBD

3.8.1.17aria-valuenow
ARIA Specificationaria-valuenow
MSAA + IAccessible2 eventEVENT_OBJECT_VALUECHANGE
UIA eventPropertyChangedEvent

Properties:AriaProperties, alsoRangeValueValue if element is mapped withRangeValue Control Pattern

ATK/AT-SPI eventobject:property-change:accessible-value
AX API NotificationAXValueChanged
Android

TBD

3.8.1.18aria-valuetext
ARIA Specificationaria-valuetext
MSAA + IAccessible2 eventEVENT_OBJECT_VALUECHANGE
UIA eventPropertyChangedEvent

Property:AriaProperties

ATK/AT-SPI eventobject:property-change:accessible-value
AX API NotificationAXValueChanged
Android

TBD

3.8.2Changes to document content or node visibility

Processing document changes is important regardless ofWAI-ARIA. The events described in the table below are used by user agents to informAT of changes to theDOM via the accessibility tree. For the purposes of conformance with this standard,user agentsMUST implement the behavior described in this section wheneverWAI-ARIA attributes are applied to dynamic content on a Web page.

Table of document change scenarios and events to be fired in eachAPI
ScenarioMSAA + IAccessible2 eventUIA eventATK/AT-SPI eventAX API Notification
When text is removedIA2_EVENT_TEXT_REMOVEDEVENT_OBJECT_LIVEREGIONCHANGEDtext_changed::deleteIf in alive region,AXLiveRegionChanged.
If inaria-errormessage,AXValidationErrorChanged.
When text is insertedIA2_EVENT_TEXT_INSERTEDEVENT_OBJECT_LIVEREGIONCHANGEDtext_changed::insertIf in alive region,AXLiveRegionChanged.
If inaria-errormessage,AXValidationErrorChanged.
When text is changedIA2_EVENT_TEXT_REMOVE andIA2_EVENT_TEXT_INSERTEDEVENT_OBJECT_LIVEREGIONCHANGEDtext_changed::delete andtext_changed::insertIf in alive region,AXLiveRegionChanged.
If inaria-errormessage,AXValidationErrorChanged.

Fire the following events for node changes where the node in question is an element and has anaccessible object. Theaccessibility subtree of a node is itsaccessible object in theaccessibility tree and all of it'saccessibility descendants. It does not include objects which have relationships other than parent-child in that tree. For example, it does not include objects linked viaaria-flowto unless those objects are also descendants in theaccessibility tree.

Table of document change scenarios and events to be fired in eachAPI
ScenarioMSAAMicrosoftUIA eventATK/AT-SPI eventAX API Notification
When anaccessibility subtree ishiddenEVENT_OBJECT_HIDE
TheMSAA event calledEVENT_OBJECT_DESTROY is not used because this has a history of stability issues and assistive technology avoids it. In any case, from the user's point of view, there is no difference between something that is hidden or destroyed.
AutomationElement..::.StructureChangedEventchildren_changed::remove

AXUIElementDestroyed

If in a live region,AXLiveRegionChanged

When an accessibility subtree is removedEVENT_OBJECT_REORDER
TheMSAA event calledEVENT_OBJECT_DESTROY is not used because this has a history of stability issues and assistive technology avoids it. In any case, from the user's point of view, there is no difference between something that is hidden or destroyed.
AutomationElement..::.StructureChangedEventchildren_changed::remove

AXUIElementDestroyed

If in a live region,AXLiveRegionChanged

When an accessibility subtree is shownEVENT_OBJECT_SHOW children_changed::add

AXUIElementCreated

If in a live region,AXLiveRegionChanged

When an accessibility subtree is insertedEVENT_OBJECT_REORDER children_changed::add

AXUIElementCreated

If in a live region,AXLiveRegionChanged

When an accessibility subtree is movedTreat it as a removal from one place and insertion in anotherTreat it as a removal from one place and insertion in anotherTreat it as a removal from one place and insertion in another

AXUIElementDestroyed/AXUIElementCreated

If in a live region,AXLiveRegionChanged

When an accessibility subtree is changed (e.g. replaceNode)Treat it as a removal and insertionTreat it as a removal and insertionTreat it as a removal and insertion

AXUIElementDestroyed/AXUIElementCreated

If in a live region,AXLiveRegionChanged

In some cases, node changes may occur where the node is not an element or has no accessible object. For example, a numbered list bullet ("12.") may have a node in the accessibility tree but not in theDOM tree. For text within a paragraph marked inHTML as<strong>, the<strong> element has a node in theDOM tree but may not have one in the accessibility tree. The text itself will of course be in the accessibility tree along with the identification of the range of text that is formatted as strong. If any of the changes described in the table above occur on such a node, user agentsSHOULD compute and fire relevant text change events as described above.

User agentsSHOULD ensure that an assistive technology, running in process can receive notification of a node being removed prior to removal. This allows an assistive technology, such as a screen reader, to refer back to the correspondingDOM node being deleted. This is important forlive regions where removals are important. For example, a screen reader would want to notify a user that another user has left a chat room. The event inMSAA would be EVENT_OBJECT_HIDE. ForATK/AT-SPI this would bechildren_changed::remove. And in macOS, the event isAXLiveRegionChanged. This also requires the user agent to provide a unique ID in theaccessibilityAPI notification identifying the unique node being removed.

When firing any of the above-mentioned change events, it is very useful to provide information about whether the change was caused by user input (as opposed to a timeout initiated from the page load, etc.). This allows the assistive technology to have different rules for presenting changes from the real world as opposed to from user action. Mouse hovers are not considered explicit user input because they can occur from accidental bumps of the mouse.

To expose whether a change occurred from user input:

Exposing additional useful information about the context of the change:

AdditionalMSAA events may be necessary:

3.8.3Focus Changes

The following table defines the accessibilityAPI keyboard focus states and events.

Table ofaccessibilityAPIs for focus states andevents
 MSAAMicrosoftUIAATK/AT-SPIAX API
Focusable stateSTATE_SYSTEM_FOCUSABLE Current state reflected inIUIAutomationElement::CurrentIsKeyboardFocusable, can be retrieved withIUIAutomationElement::GetCurrentPropertyValue method usingUIA_IsKeyboardFocusablePropertyId property identifier.STATE_FOCUSABLEboolean AXFocused: theAXUIElementIsAttributeSettable method returnsYES.
Focused stateSTATE_SYSTEM_FOCUSED Current state reflected inIUIAutomationElement::CurrentHasKeyboardFocus, can be retrieved withIUIAutomationElement::GetCurrentPropertyValue method usingUIA_HasKeyboardFocusPropertyId property identifier.STATE_FOCUSEDboolean AXFocused
Focus eventEVENT_OBJECT_FOCUSClients can subscribe withIUIAutomation::AddFocusChangedEventHandler using callback interface isIUIAutomationFocusChangedEventHandlerobject:state-changed:focused and:AXFocusedUIElementChanged

3.8.4Selection

There are two cases for selection:

  • Single selection
  • Multiple selection

In the single selection case, selection follows focus (see the section "Focus States and Events Table" for information about focus events). User agentsMUST fire the following events whenaria-selected changes:

Single selection events
ScenarioMSAAMicrosoftUIAATK/AT-SPIAX API
Focus changeEVENT_OBJECT_SELECTION andEVENT_OBJECT_STATECHANGE on newly focused item.UIA_SelectionItem_ElementSelectedEventId on the newly focused element.

If on agridcell,row,option, ortab, fireUIA_SelectionItem_ElementSelectedEventId.

  • object:selection-changed on the current container,
  • object:state-changed:selected on the descendantaccessible object whose selection has changed:
    • detail1 = 1 for the descendant which just became selected.
    • detail1 = 0 for the descendant which just became unselected.
AXSelectedChildrenChanged

The multiple selection case occurs whenaria-multiselectable="true" on anelement with arole that supports thatproperty. User agentsMUST fire the following events whenaria-selected changes on a descendant, as follows:

The multiple selection case occurs whenaria-multiselectable="true" on anelement with arole that supports thatproperty. There are several important aspects:

  1. In MicrosoftUIA, theSelection andSelectionItem Control Patterns expose the selection availability, state, and methods.
  2. User agentsMUST fire the following events whenaria-selected changes on a descendant, as follows:
Multiple selection events
ScenarioMSAAMicrosoftUIAATK/AT-SPIAX API
Togglearia-selectedEVENT_OBJECT_SELECTIONADD/EVENT_OBJECT_SELECTIONREMOVE on the item.SelectionItem Control Pattern:UIA_SelectionItem_ElementAddedToSelectionEventId orUIA_SelectionItem_ElementRemovedFromSelectionEventId on the item.
  • object:selection-changed on the current container,
  • object:state-changed:selected on any descendantaccessible object whose selection has changed:
    • detail1 = 1 for any descendant which just became selected.
    • detail1 = 0 for any descendant which just became unselected.
AXSelectedChildrenChanged
Selection follows focusEVENT_OBJECT_SELECTION andEVENT_OBJECT_STATECHANGE on newly focused item.FocusChangedEvent should be fired but individual selection event may not happen, to avoid redundancy.
  • object:selection-changed on the current container,
  • object:state-changed:selected on any descendantaccessible object whose selection has changed:
AXSelectedChildrenChanged
Select or deselect many items at onceUser agentMAY fire anEVENT_OBJECT_SELECTIONWITHIN. If this event is fired the other events noted aboveMAY be trimmed out for performance. For each element selected or deselected, fireSelectionItem Control Pattern:UIA_SelectionItem_ElementAddedToSelectionEventId orUIA_SelectionItem_ElementRemovedFromSelectionEventId on the current container. User agentsMAY choose to fire the Selection Control Pattern Invalidated event, which indicates that the selection in a container has changed significantly and requires sending more addition and removal events than theInvalidateLimit constant permits.
  • the user agentMAY fire a singleobject:selection-changed event on the container, vs. multiple events, for performance,
  • object:state-changed:selected on any descendantaccessible object whose selection has changed:
AXSelectedChildrenChanged

3.8.5Special Events for Menus

SomeAPIs, provide specialevents whenever a menu is opened or closed.User agentsSHOULD provide the events as described in the table below. If provided, because menus can be made visible orhidden using a variety of techniques, auser agentMUST ensure that the events are nested and symmetrical.

Frequently, amenubar is used to organize a hierarchy of menus. In those cases, the menubarMUST be aDOM parent of the associatedmenuitems, or one defined byaria-owns. In other cases, no menubar is involved; for example, when themenu is associated with a toolbar button, or is a context menu. Nonetheless the relevant menu events are provided as described in the following table.

Menu events
ScenarioMSAAMicrosoftUIAAX API

Menubar is currently not active, and user moves focus to the menubar from elsewhere thereby activating it. As a result, a menuitem in the menubar is focused.

Activate the menubar and fireEVENT_SYSTEM_MENUSTART on the accessible object for the menubar.MenuModeStartEvent on the accessible object for the menu.AXMenuOpenedNotification

Focus a menuitem while menubar is activated, or focus a menuitem in a menu.

EVENT_OBJECT_FOCUSAutomationFocusChangedEventAXMenuItemSelectedNotification

Menu popup made visible (menu is opened).

Should only be fired once until the menu is closed and opened again.

EVENT_SYSTEM_MENUPOPUPSTARTMenuOpenedEvent, then afocus event on a menuitem.AXMenuOpenedNotification
Menu popup hidden (menu is closed).EVENT_SYSTEM_MENUPOPUPEND once only for accessible menu object and only ifEVENT_SYSTEM_MENUPOPUPSTART was fired for it.MenuClosedEventAXMenuClosedNotification
Any open menus are closed including sub-menus, and user moves focus away from the menubar; menubar is deactivated.EVENT_SYSTEM_MENUEND on the menubar and deactivate the menubar.MenuClosedEvent, thenMenuModeEndEventAXMenuClosedNotification

4.Algorithms

SomeAPIs provide methods which require specific algorithms to be followed. The following sections provide the algorithm mapping tables for these methods.

4.1ARIANotifyMixin Algorithm Mapping Tables

TheARIANotifyMixin provides a method for announcing content to assistive technologies. The following algorithm mappings specify how these announcements will be implemented across different accessibilityAPIs to ensure consistent behavior for users of assistive technologies.

4.1.1ariaNotify

Toaria notify givennode,announcement, andpriority:

ARIA Specificationaria notify
Preconditions

Ifnode isexcluded from the accessibility tree, then abort these steps.

Language

User agents and assistive technologiesMUST determine the language of the announcement by taking the first valid BCP 47 language tag from the following sources:

  1. Thenode's nearest ancestor element'slang attribute (includingnode itself).
  2. The document element'slang attribute (including when called on the document).
  3. A user agent or platform default.

Assistive technologiesMUST present the announcement using that language (for example, voice, pronunciation rules, braille table).

MSAA + IAccessible2

No implementation specified (see fallback note).

UIA
  1. Letmapped_priority beNotificationProcessing_ImportantAll ifpriority is "high", otherwiseNotificationProcessing_All.

  2. CallUiaRaiseNotificationEvent withnode,NotificationKind_ActionCompleted,mapped_priority,announcement, and the empty string.

Note

If the platform accessibility implementation determines thatnode is not represented in theUIAControl view orContent view, user agentsSHOULD instead raise the notification event on the nearest ancestor that is represented as aUIA Control. If no such ancestor exists, user agentsSHOULD raise it on the document root (which is expected to be in one of these views) to ensure assistive technologies that ignore events on elements not in the Control or Content view receive the notification.

ATK
  1. Letmapped_priority beAtk.Live.ATK_LIVE_ASSERTIVE ifpriority is "high", otherwiseAtk.Live.ATK_LIVE_POLITE.

  2. Callg_signal_emit_by_name withnode,"notification",announcement, andmapped_priority.

On older Linux accessibility stacks prior toATK 2.50.0, user agentsMAY use the fallback;see fallback note.

AT-SPI
  1. Letmapped_priority beATSPI_LIVE_ASSERTIVE ifpriority is "high", otherwiseATSPI_LIVE_POLITE.

  2. Send a DBUS signalATSPI_DBUS_INTERFACE_EVENT_OBJECT withnode,"announcement",announcement, andmapped_priority.

AX API
  1. Letmapped_priority beNSAccessibilityPriorityHigh ifpriority is "high", otherwiseNSAccessibilityPriorityMedium.

  2. LetuserInfo be aNSDictionary with the following keys:

    1. NSAccessibilityAnnouncementKey asannouncement
    2. NSAccessibilityPriorityKey asmapped_priority
  3. CallNSAccessibilityPostNotificationWithUserInfo withnode,NSAccessibilityAnnouncementRequestedNotification, anduserInfo.

Note

When no suitable platform notificationAPI is available (for example, older Linux accessibility stacks prior toATK 2.50.0 that lack the newer notification signal, or on Windows when the user agent is not able to useUIA), a user agentMAY synthesize a temporary, assistive-technology-only live region in its accessibility tree to convey anaria notify announcement. Such fallback nodes are not exposed to or detectable by web content and this behavior is not required.

5.Privacy considerations

In accordance withWeb Platform Design Principles, this specification provides no programmatic interface to determine if information is being used by Assistive Technologies. However, this specification does allow an author to present different information to users of Assistive Technologies from the information available to users who do not use Assistive Technologies. This is possible using many features of the ARIA and CORE-AAM specifications, just as this is possible using many other parts of the web technology stack. This content disparity could be abused to performactive fingerprinting of users of Assistive Technologies.

6.Security considerations

This specification introduces no new security considerations.

A.Change Log

A.1Substantive changes since the lastCandidate Recommendation Snapshot

A.2Substantive changes since theCore AccessibilityAPI Mappings 1.1 Recommendation

B.Acknowledgments

This section is non-normative.

The following people contributed to the development of this document.

B.1ARIA WG participants at the time of publication

B.2Enabling funders

This publication has been funded in part with U.S. Federal funds from the Department of Education, National Institute on Disability, Independent Living, and Rehabilitation Research (NIDILRR), initially under contract number ED-OSE-10-C-0067, then under contract number HHSP23301500054C, and now under HHS75P00120P00168. The content of this publication does not necessarily reflect the views or policies of the U.S. Department of Education, nor does mention of trade names, commercial products, or organizations imply endorsement by the U.S. Government.

C.References

C.1Normative references

[HTML-AAM]
HTML Accessibility API Mappings 1.0. Scott O'Hara; Rahim Abdi. W3C. 29 January 2026. W3C Working Draft. URL:https://www.w3.org/TR/html-aam-1.0/
[IAccessible2]
IAccessible2. Linux Foundation. URL:https://wiki.linuxfoundation.org/accessibility/iaccessible2/
[infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL:https://infra.spec.whatwg.org/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL:https://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL:https://www.rfc-editor.org/rfc/rfc8174
[wai-aria]
Accessible Rich Internet Applications (WAI-ARIA) 1.0. James Craig; Michael Cooper et al. W3C. 20 March 2014. W3C Recommendation. URL:https://www.w3.org/TR/wai-aria/
[WAI-ARIA-1.2]
Accessible Rich Internet Applications (WAI-ARIA) 1.2. Joanmarie Diggs; James Nurthen; Michael Cooper; Carolyn MacLeod. W3C. 6 June 2023. W3C Recommendation. URL:https://www.w3.org/TR/wai-aria-1.2/

C.2Informative references

[accname-1.2]
Accessible Name and Description Computation 1.2. Bryan Garaventa; Melanie Sumner. W3C. 21 January 2026. W3C Working Draft. URL:https://www.w3.org/TR/accname-1.2/
[Android-Accessibility-API]
Android Accessibility API. Google. URL:https://developer.android.com/guide/topics/ui/accessibility
[AT-SPI]
Assistive Technology Service Provider Interface. The GNOME Project. URL:https://gnome.pages.gitlab.gnome.org/at-spi2-core/libatspi/
[ATK]
ATK - Accessibility Toolkit. The GNOME Project. URL:https://developer.gnome.org/atk/stable/
[AXAPI]
The NSAccessibility Protocol for macOS. Apple, Inc. URL:https://developer.apple.com/documentation/appkit/nsaccessibility
[CORE-AAM-1.1]
Core Accessibility API Mappings 1.1. Joanmarie Diggs; Joseph Scheuhammer; Richard Schwerdtfeger; Michael Cooper; Andi Snow-Weaver; Aaron Leventhal. W3C. 14 December 2017. W3C Recommendation. URL:https://www.w3.org/TR/core-aam-1.1/
[dom]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL:https://dom.spec.whatwg.org/
[UI-AUTOMATION]
UI Automation. Microsoft Corporation. URL:https://docs.microsoft.com/en-us/windows/win32/winauto/ui-automation-specification
[UIA-EXPRESS]
The IAccessibleEx Interface. Microsoft Corporation. URL:https://docs.microsoft.com/en-us/windows/win32/winauto/iaccessibleex
[WAI-ARIA-ROADMAP]
Roadmap for Accessible Rich Internet Applications (WAI-ARIA Roadmap). Richard Schwerdtfeger. W3C. 4 February 2008. W3C Working Draft. URL:https://www.w3.org/TR/wai-aria-roadmap/


[8]ページ先頭

©2009-2026 Movatter.jp