HTML Accessibility API Mappings (HTML-AAM) defines how user agents map HTML 5.1 [[!HTML51]] elements and attributes to platform accessibility application programming interfaces (APIs). It leverages and extends the Core Accessibility API Mappings 1.1 [[!CORE-AAM]] and the Accessible Name and Description: Computation and API Mappings 1.1 [[!ACCNAME-AAM]] for use with the HTML 5.1 host language. Documenting these mappings promotes interoperable exposure of roles, states, properties, and events implemented by accessibility APIs and helps to ensure that this information appears in a manner consistent with author intent.

The HTML-AAM is part of the WAI-ARIA suite described in the WAI-ARIA Overview.

This document is subject to change without notice.

You can file a bug on this specification

This document was Initially developed by and with the approval of the HTML Accessibility Taskforce, a joint task force of the Protocols and Formats Working Group and the HTML Working Group. Work continued with the successor groups Accessible Rich Internet Applications Working Group and the Web Platform Working Group. The document is now maintained solely by the Web Platform WG.

Introduction

Like the Core Accessibility API Mappings specification, this document defines how HTML user agents must respond to keyboard focus, as well as role, state and property information provided for Web content. Where an HTML element or attribute has default Accessible Rich Internet Applications (WAI-ARIA) 1.1 [[!WAI-ARIA]] semantics, it must be exposed to the platform accessibility APIs according to the relevant WAI-ARIA mappings defined in the Core Accessibility API Mappings specification. Where an HTML element or attribute does not have default WAI-ARIA semantics, the applicable mapping for each platform accessibility API is defined by this specification.

This document also adapts the Accessible Name and Description: Computation and API Mappings [[!ACCNAME-AAM]] for deriving the accessible names and accessible descriptions of HTML 5.1 [[!HTML51]] elements, and provides accessible implementation examples for specific HTML 5.1 elements and features.

Users often access HTML content using assistive technologies that rely on platform accessibility API to obtain and interact with information from the page. This document is part of the following suite of accessibility API mapping specifications for content rendered by user agents:

Accessibility APIs

Accessibility APIs covered by this document are:

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

For more information regarding accessibility APIs, refer to section 1.1 Accessibility APIs of the Core Accessibility API Mappings [[!CORE-AAM]].

These RFC2119 key words are formatted in uppercase and contained in a strong element with class="rfc2119". When these key words are used, but do not share this format, they do not convey any formal conformance requirements in the RFC2119 sense, and are merely explanatory, i.e., informative. As much as possible, such usage is avoided in this specification.

The classification of a section as normative or non-normative applies to the entire section and all sub-sections of that section.

Normative sections provide requirements that authors, user agents, and assistive technologies MUST follow for an implementation to conform to this specification.

Non-normative 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.

Important Terms

Mapping HTML to Accessibility APIs

General Rules for Exposing WAI-ARIA Semantics

WAI-ARIA support was first introduced to HTML in HTML5 [[!HTML5]]. Where an HTML element or attribute has default WAI-ARIA semantics, it MUST be exposed to the platform accessibility APIs in a way that conforms to General rules for exposing WAI-ARIA semantics in the Core Accessibility API Mappings [[!CORE-AAM]].

Conflicts Between Native Markup Semantics and WAI-ARIA

Where the host language is HTML 5.1 [[!HTML51]], user agents MUST conform to Conflicts between native markup semantics and WAI-ARIA in the Core Accessibility API Mappings [[!CORE-AAM]].

Exposing HTML Features That Do Not Directly Map to Accessibility APIs

HTML may have features that are not supported by accessibility APIs at the time of publication. There is not a one to one relationship between all features and platform accessibility APIs. When HTML roles, states and properties do not directly map to an accessibility API, and there is a method in the API to expose a text string, user agents MUST expose the undefined role, states and properties via that method.

For HTML elements or attributes with default WAI-ARIA semantics, user agents MUST conform to Exposing attributes that do not directly map to accessibility API properties in the Core Accessibility API Mappings [[!CORE-AAM]].

Other Accessibility Implementations

Use of MSAA VARIANT by Some User Agents

In MSAA, the value of an accessible object's Role property is retrieved with the IAccessible::get_accRole method. This method returns a VARIANT that is limited to a finite number of integer role constants insufficient for describing the role of every HTML element, especially new elements introduced by HTML5. To address this limitation, some user agents, e.g., Firefox and Chrome in cooperation with some screen readers, have elected to expose certain roles by returning a string value (BSTR) in that VARIANT in a way that is not described by the MSAA specification.

For example, Firefox returns the element's tag name as a BSTR for the following: abbr, address, aside, blockquote, canvas, caption, dd, div, figcaption, footer, form, h1h6, header, iframe, input type="file", main, menu, nav, output, p, pre, q, section, time.

Similarly, Chrome returns the element's tag name for: blockquote, div, dl, figcaption, form, h1-h6, menu, meter, p, pre.

Use of the DOM by Some Assistive Technologies

to do

HTML Element Role Mappings

Notes:

Mappings of HTML elements to platform accessibility APIs: ARIA, MSAA + UIA Express, MSAA + IAccessible2, UIA, ATK, and AX
Element WAI-ARIA MSAA + IAccessible2 UIA ATK AX Comments
a (represents a hyperlink) link role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
a (represents a hyperlink and parent is a menu) menuitem role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
a (no href attribute) No corresponding role
Roles: ROLE_SYSTEM_TEXT; IA2_ROLE_TEXT_FRAME
Interfaces: IAccessibleHyperlink; IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Role: ATK_ROLE_STATIC
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
abbr No corresponding role
Roles: ROLE_SYSTEM_TEXT; IA2_ROLE_TEXT_FRAME
Object attributes: "abbr" attribute on the containing td if a single child, text content used as a value
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Role: ATK_ROLE_STATIC
Object attributes: "abbr" attribute on the containing td if a single child, text content used as a value
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
address No corresponding role
Roles: ROLE_SYSTEM_TEXT; IA2_ROLE_TEXT_FRAME
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXLandmarkContentInfo
AXRoleDescription: "content information"
Note: recommend AXRoleDescription of "address" to disambiguate from "contentinfo" landmark role. Refer to WebKit bug 83989
area (represents a hyperlink) link role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
area (no href attribute) No corresponding role
Roles: ROLE_SYSTEM_TEXT; IA2_ROLE_SHAPE
Control Type: Text
Role: ATK_ROLE_STATIC
Not mapped
article article role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
aside complementary role
Use WAI-ARIA mapping
Control Type: Group
Localized Control Type: "aside"
Landmark Type: Custom
Localized Landmark Type: "complementary"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
audio No corresponding role
Role: ROLE_SYSTEM_GROUPING
Control Type: Group
Localized Control Type: "audio"
If the controls attribute is present, each control is a child in the UIA tree, and mapped as button, slider, etc. as appropriate for the type of control.
Loading and error text objects, along with any control not currently displayed, MAY be present in the UIA and marked as hidden or off-screen.
Role: ATK_ROLE_AUDIO
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the audio element exposed as AXToolbar.
b No corresponding role
No accessible object. Exposed as "font-weight" text attribute on the text container. The value depends on the platform.
No accessible object. Exposed by the FontWeight attribute of the TextRange Control Pattern implemented on a parent accessible object.
No accessible object. Exposed as "font-weight" text attribute on the text container. The value depends on the platform.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
base No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
bdi No corresponding role
No accessible object. May affect on "writing-mode" text attribute on its text container.
Control Type: Text
No accessible object. May affect on "writing-mode" text attribute on its text container.
bdo No corresponding role
Role: ROLE_SYSTEM_TEXT
Text attributes: writing-mode on the text container
Control Type: Text
No accessible object. Exposed as "writing-mode" text attribute on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
blockquote No corresponding role
Roles: ROLE_SYSTEM_GROUPING; IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Group
Localized Control Type: "blockquote"
Role: ATK_ROLE_BLOCK_QUOTE
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
body document role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
br No corresponding role
Role: ROLE_SYSTEM_WHITESPACE
Not mapped
No accessible object. Exposed as '\n' character via AtkText interface on the text container.
Not mapped
button button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
canvas No corresponding role
Roles: ROLE_SYSTEM_GRAPHIC; IA2_ROLE_CANVAS
Control Type: Image
Descendants of the canvas element are mapped separately.
Role: ATK_ROLE_CANVAS
AXRole: AXImage
AXSubrole: (nil)
AXRoleDescription: "image"
caption No corresponding role
Roles: ROLE_SYSTEM_TEXT; IA2_ROLE_CAPTION
States: STATE_SYSTEM_READONLY
Relations: IA2_RELATION_LABEL_FOR with parent table
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Other properties: The LabeledBy property for the parent table element points to the UIA element for the caption element
Role: ATK_ROLE_CAPTION
Relations: ATK_RELATION_LABEL_FOR with parent table
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
cite No corresponding role
No accessible object. Styles used are mapped into text attributes on its text container.
No accessible object. Styles used are exposed by UIA text attributes of the TextRange Control Pattern implemented on a parent accessible object.
No accessible object. Styles used are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
code No corresponding role
No accessible object. Styles used are mapped into text attributes on its text container.
No accessible object. Styles used are exposed by UIA text attributes of the TextRange Control Pattern implemented on a parent accessible object.
No accessible object. Styles used are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
col No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
colgroup No corresponding role
Role: ROLE_SYSTEM_GROUPING
Control Type: Group
Localized Control Type: "colgroup"
Not mapped
Not mapped
data
Not mapped
Not mapped
Not mapped
Not mapped
datalist (represents pre-defined options for input element) listbox role, with the aria-multiselectable property set to "true" if the datalist's selection model allows multiple option elements to be selected at a time, and "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
If datalist is not linked to a proper input element, then datalist element is not mapped to accessibility APIs.
dd definition role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
del No corresponding role
No accessible object. Styles used are mapped into text attributes on its text container.
No accessible object. Styles used are exposed by UIA text attributes of the TextRange Control Pattern implemented on a parent accessible object.
No accessible object. Styles used are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
details None
Role: ROLE_SYSTEM_GROUPING
Control Type: Group
Localized Control Type: "details"
Role: ATK_ROLE_PANEL
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dfn No corresponding role
No accessible object. Styles used are exposed by text attributes on its text container.
Control Type: Group
Localized Control Type: "definition"
No accessible object. Styles used are exposed by UIA text attributes of the TextRange Control Pattern implemented on a parent accessible object.
No accessible object. Styles used are exposed by text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dialog dialog role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
div No corresponding role
May not have an accessible object if has no semantic meaning. Otherwise,
Roles: ROLE_SYSTEM_GROUPING; IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Group
May not have an accessible object if has no semantic meaning. Otherwise
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dl No corresponding role
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY
Control Type: List
Role: ATK_ROLE_DESCRIPTION_LIST
AXRole: AXList
AXSubrole: AXDefinitionList
AXRoleDescription: "definition list"
dt No corresponding role
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_READONLY
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: ListItem
Role: ATK_ROLE_DESCRIPTION_TERM
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXTerm
AXRoleDescription: "term"
em No corresponding role
No accessible object. Styles used are mapped into text attributes on its text container.
No accessible object. Styles used are exposed by UIA text attributes of the TextRange Control Pattern implemented on a parent accessible object.
No accessible object. Styles used are mapped into text attributes on its text container
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
embed No corresponding role
Roles: ROLE_SYSTEM_CLIENT; IA2_ROLE_EMBEDDED_OBJECT
States: STATE_SYSTEM_UNAVAILABLE for windowless plugin
Control Type: Pane
Role: ATK_ROLE_EMBEDDED
Depends on format of data file
fieldset No corresponding role
Role: ROLE_SYSTEM_GROUPING
Relations:IA2_RELATION_LABELLED_BY with child legend element
Control Type: Group
Role: ATK_ROLE_PANEL
Relations: ATK_RELATION_LABELLED_BY with child legend element
AXRole: AXGroup
AXSubrole: AXFieldset
AXRoleDescription: "group"
AXDescription: value from child legend subtree
figcaption No corresponding role
Roles: ROLE_SYSTEM_TEXT; IA2_ROLE_CAPTION
Relations: IA2_RELATION_LABEL_FOR with parent figure element
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Role: ATK_ROLE_CAPTION
Relations: ATK_RELATION_LABEL_FOR with parent figure element
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
figure No corresponding role
Role: ROLE_SYSTEM_GROUPING
Object attributes: xml-roles:figure
Relations: IA2_RELATION_LABELLED_BY with child figcaption element
Control Type: Group
Localized Control Type: "figure"
Accessible name derived from figcaption according to the figure Element Accessible Name Computation
Role: ATK_ROLE_PANEL
Object attributes: xml-roles:figure
Name: related figcaption content
Relations: ATK_RELATION_LABELLED_BY with child figcaption element
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "figure"
form form role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
h1, h2, h3, h4, h5, h6 heading role, with the aria-level property set to the element's outline depth
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
head No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
header (scoped to the body element) banner role
Role: ROLE_SYSTEM_GROUPING; IA2_ROLE_HEADER
Object attributes: xml-roles:banner
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Group
Localized Control Type: "header"
Landmark Type: Custom
Localized Landmark Type: "banner"
Role: ATK_ROLE_HEADER
Object attributes: xml-roles:banner
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXLandmarkBanner
AXRoleDescription: "banner"
header (scoped to the main element, a sectioning content element, or a sectioning root element other than body) No corresponding role
Role: ROLE_SYSTEM_GROUPING; IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Group
Localized Control Type: "header"
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
hr separator role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
html No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
i No corresponding role
No accessible object.
Text attributes: font-style:italic on the text container
No accessible object. Exposed by the IsItalic attribute of the TextRange Control Pattern implemented on a parent accessible object.
No accessible object. Exposed as "font-style:italic" text attribute on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
iframe No corresponding role
Role: IA2_ROLE_INTERNAL_FRAME
Child: ROLE_SYSTEM_DOCUMENT with STATE_SYSTEM_READONLY
Control Type: Pane
Role: ATK_ROLE_INTERNAL_FRAME
Child: ATK_ROLE_DOCUMENT_FRAME
AXRole: AXWebArea
AXSubrole: (nil)
AXRoleDescription: "html content"
img img role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
img (alt attribute is empty)
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Button state) button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Button state and parent is a menu) menuitem role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Color state) No corresponding role
Roles: ROLE_SYSTEM_TEXT if implemented as a textbox; IA2_ROLE_COLOR_CHOOSER if implemented as a color picker
If implemented as a textbox:
Control Type: Edit
If implemented as a color picker:
Localized Control Type: "color picker"
Control Pattern: Selection for the container and SelectionItem for each color choice
Role: ATK_ROLE_COLOR_CHOOSER
If implemented as a textbox:
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "textfield"
If implemented as a color picker:
AXRole: AXColorWell
AXSubrole: (nil)
AXRoleDescription: "color chooser"
input (type attribute in the Checkbox state) checkbox role, with the aria-checked state set to "mixed" if the element's indeterminate IDL attribute is true, or "true" if the element's checkedness is true, or "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Checkbox state and parent is a menu) menuitemcheckbox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Date state) No corresponding role
If implemented as a textbox:
Role: ROLE_SYSTEM_TEXT
Object attributes: text-input-type:date
If implemented as a date picker:
Role: IA2_ROLE_DATE_EDITOR
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composit of multiple spinners.
Role: ATK_ROLE_CALENDAR
AXRole: AXDateField
AXSubrole: (nil)
AXRoleDescription: "date field"
input (type attribute in the E-mail state with no suggestions source element) textbox role
Use WAI-ARIA mapping
Object attributes: text-input-type:email
Control Type: Edit
Localized Control Type: "email"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the File Upload state) No corresponding role
Implementation dependent. If represented by a container with a button a text label inside then:
Roles: IA2_ROLE_TEXT_FRAME
Children: ROLE_SYSTEM_PUSHBUTTON and IA2_ROLE_LABEL for a button and a text label elements.
Can be rendered as a single button control, or as a button control with a text input field.
Button control:
Control Type: Button
Text input field:
Control Type: Edit
Localized Control Type: "file"
Role: ATK_ROLE_STATIC
Children: ATK_ROLE_PUSH_BUTTON when pressed ATK_ROLE_FILE_CHOOSER dialog shown
AXRole: AXButton
AXSubrole: AXFileUploadButton
AXRoleDescription: file upload button
input (type attribute in the Hidden state) No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
input (type attribute in the Image Button state) button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Image Button state and parent is a menu) menuitem role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Local Date and Time state) No corresponding role
Role: IA2_ROLE_DATE_EDITOR
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composit of multiple spinners.
Role: ATK_ROLE_CALENDAR
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Month state) No corresponding role
Role: IA2_ROLE_DATE_EDITOR
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composit of multiple spinners.
Role: ATK_ROLE_DATE_EDITOR
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Number state) spinbutton role
If implemented as a spin button, use WAI-ARIA mapping for spinbutton.
If implemented as a text input, use WAI-ARIA mapping for textbox.
Object attributes: text-input-type:number
If implemented as a spin button, use WAI-ARIA mapping for spinbutton.
If implemented as a text input:
Control Type: Edit
Localized Control Type: "number"
If implemented as a spin button, use WAI-ARIA mapping for spinbutton.
If implemented as a text input, use WAI-ARIA mapping for textbox.
Object attributes: text-input-type:number
Use WAI-ARIA mapping
input (type attribute in the Password state) No corresponding role
Role: ROLE_SYSTEM_TEXT
States: STATE_SYSTEM_PROTECTED; IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Control Type: Edit
Localized Control Type: "password"
Other properties: Set isPassword to true
Role: ATK_ROLE_PASSWORD_TEXT
States: ATK_STATE_SINGLE_LINE; ATK_STATE_READ_ONLY if readonly, otherwise ATK_STATE_EDITABLE
AXRole: AXTextField
AXSubrole: AXSecureTextField
AXRoleDescription: "secure text field"
input (type attribute in the Radio Button state) radio role, with the aria-checked state set to "true" if the element's checkedness is true, or "false" otherwise. With aria-setsize value reflecting number of type=radio input elements within the radio button group and aria-posinset value reflecting the elements position within the radio button group.
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Radio Button state and parent is a menu) menuitemradio role, with the aria-checked state set to "true" if the element's checkedness is true, or "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Range state) slider role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Reset Button state) button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Submit Button state) button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Telephone state with no suggestions source element) textbox role
Use WAI-ARIA mapping

+

Object attributes: text-input-type:telephone
Control Type: Edit
Localized Control Type: "telephone"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Text state with no suggestions source element) textbox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element) combobox role, with the aria-owns property set to the same value as the list attribute
Use WAI-ARIA mapping

+

Object attributes: text-input-type:as per input type
Use WAI-ARIA mapping
Other properties: ControllerFor points to the suggestions source element
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Time state) No corresponding role
Role: ROLE_SYSTEM_SPINBUTTON if implemented as a simple widget; ROLE_SYSTEM_GROUPING with child controls mapped as appropriate if implemented as a complex widget
Object attributes: text-input-type:time
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composit of multiple spinners.

Role: ATK_ROLE_SPINBUTTON if implemented as a simple widget.
If implemented as a complex widget use:
Role: ROLE_PANEL and map child controls as appropriate.

AXRole: AXTimeField
AXSubrole: (nil)
AXRoleDescription: "time field"
input (type attribute in the URL state with no suggestions source element) textbox role
Use WAI-ARIA mapping
Object attributes: text-input-type:url
Control Type: Edit
Localized Control Type: "url"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Week state) No corresponding role
Role: IA2_ROLE_DATE_EDITOR
Object attributes: text-input-type:week
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composit of multiple spinners.
Role: ATK_ROLE_CALENDAR
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
ins No corresponding role
No accessible object. Styles used are mapped into text attributes on its text container.
No accessible object. Styles used are exposed by UIA text attributes of the TextRange Control Pattern implemented on a parent accessible object.
No accessible object. Styles used are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
kbd No corresponding role
No accessible object.
Text attributes: font-family:monospace on the text container
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
No accessible object. Mapped into "font-family:monospace" text attribute on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
keygen listbox role, with the aria-multiselectable property set to "false"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
label No corresponding role
Roles: ROLE_SYSTEM_STATICTEXT; IA2_ROLE_LABEL
Relations: IA2_RELATION_LABEL_FOR with a form control that is child to the label or referred to by the label element's for attribute. The associated form element has IA2_RELATION_LABELLED_BY pointing to the label.
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text
Other properties: When the label element contains an input element, the LabeledBy property for the input element points to the UIA element for the label element.

When the label element has a for attribute referencing another element, the LabeledBy property for the referenced element points to the UIA element for the label element.

Role: ATK_ROLE_LABEL
Relations: ATK_RELATION_LABEL_FOR for a child form element or form element referred by for attribute. Note, related form element provides ATK_RELATION_LABELLED_BY pointing to the label.
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
legend No corresponding role
Roles: ROLE_SYSTEM_STATICTEXT; IA2_ROLE_LABEL
Relations: IA2_RELATION_LABEL_FOR with the parent fieldset
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text
Other properties: The LabeledBy property for the parent fieldset points to the UIA element for the legend element.
Role : ATK_ROLE_LABEL
Relations: ATK_RELATION_LABEL_FOR with parent fieldset element
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
li (parent is an ol or ul) listitem role with aria-setsize value reflecting number of li elements within the parent ol or ul and aria-posinset value reflecting the li elements position within the set.
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
li (parent is a menu) listitem role with aria-setsize value reflecting number of li elements within the parent menu and aria-posinset value reflecting the li elements position within the set.
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
main main role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
map No corresponding role
Not mapped if used as an image map. Otherwise,
Role: IA2_ROLE_TEXT_FRAME
Not mapped
Not mapped if used as an image map, otherwise:
Role: ATK_ROLE_STATIC
Not mapped
mark No corresponding role
Role: IA2_ROLE_TEXT_FRAME

Object attributes: xml-roles:mark

Styles used are mapped to text attributes on the accessible object.

Interfaces: IAccessibleText2; IAccessibleHypertext2;

Control Type: Text
Localized Control Type: "mark"

Role: ATK_ROLE_STATIC

Object attributes: xml-roles:mark

Styles used are mapped to text attributes on the accessible object.

Interfaces: AtkText; AtkHypertext

AXRole: AXGroup
AXSubrole: ?
AXRoleDescription: "highlighted content"
math math role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
menu (type attribute in the popup menu state) menu role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
menuitem (type attribute in the Checkbox state) menuitemcheckbox role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
menuitem (type attribute in the Command state) menuitem role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
menuitem (type attribute in the Radio state) menuitemradio role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
meta No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
meter No corresponding role
Role: ROLE_SYSTEM_PROGRESSBAR
Interfaces: IAccessibleValue
Control Type: Progressbar
Localized Control Type: meter
Control Pattern: RangeValue
Properties: RangeValue.IsReadOnly = True
Control Pattern: Value
Properties: Value.Value is the result of optimal calculation, expressed as a localized string denoting relative levels of goodness. For example, Edge uses "Good" when the meter would be colored green, "Fair" when it would be colored yellow, and "Poor" when it would be colored red.
Role: ATK_ROLE_LEVEL_BAR
Interfaces: AtkValue
Properties: AtkRange
AXRole: AXProgressIndicator
AXSubrole: (nil)
AXRoleDescription: "Progress Indicator"
nav navigation role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
noscript No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
object No corresponding role
Depends on format of data file. If it contains a plugin then,
Role: IA2_ROLE_EMBEDDED_OBJECT
States: STATE_SYSTEM_UNAVAILABLE for windowless plugin
Depends on format of data file.
Depends on format of data file. If contains a plugin then
Role: ATK_ROLE_EMBEDDED
Depends on format of data file.
ol list role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
optgroup group role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
option (in a list of options or represents a suggestion in a datalist) option role, with the aria-selected state set to "true" if the element's selectedness is true, or "false" otherwise.
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
output status role
Use WAI-ARIA mapping
Control Type: Group
Control Type: "output"
LiveSetting: Polite
ControllerFor: points to elements referenced by the for attribute
Use WAI-ARIA mapping
Use WAI-ARIA mapping
p No corresponding role
Roles: ROLE_SYSTEM_TEXT; IA2_ROLE_PARAGRAPH
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text
Role: ATK_ROLE_PARAGRAPH
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
param No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
picture No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
pre No corresponding role
Roles: ROLE_SYSTEM_TEXT (??group??); IA2_ROLE_TEXT_FRAME
Styles used are mapped to text attributes on the parent accessible object.
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text
Localized Control Type: "pre"
Role: ATK_ROLE_SECTION
Styles used are mapped to text attributes on the accessible object.
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
progress progressbar role, with, if the progress bar is determinate, the aria-valuemax property set to the maximum value of the progress bar, the aria-valuemin property set to zero, and the aria-valuenow property set to the current value of the progress bar
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
q No corresponding role
Roles: ROLE_SYSTEM_TEXT (??group??); IA2_ROLE_TEXT_FRAME
Children: ROLE_SYSTEM_TEXT wrapped by quote marks using ROLE_SYSTEM_STATICTEXT
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text
Localized Control Type: "q"
Role: ATK_ROLE_STATIC
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
rp No corresponding role
No accessible object. No child elements are exposed if ruby is supported by the browser.
No accessible object.
No accessible object. No child elements are exposed if ruby is supported by the browser.
?
rt No corresponding role
No accessible object. No child elements are exposed if ruby is supported by the browser.
No accessible object.
No accessible object.
?
ruby No corresponding role
Role: ROLE_SYSTEM_TEXT (??group??); IA2_ROLE_TEXT_FRAME
Control Type: Text
Localized Control Type: "ruby"
Role: ATK_ROLE_STATIC
?
s No corresponding role
No accessible object.
Text attributes: text-line-through-style:solid on the text container
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
No accessible object. Exposed as "text-line-through-style:solid" text attribute on the text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
samp No corresponding role
No accessible object. Styles are mapped into text attributes on its text container.
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
No accessible object. Styles are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
script No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
section region role if the section element has an accessible name. Otherwise, no corresponding role.
If the section element has an accessible name, use WAI-ARIA mapping. Otherwise:
Roles: ROLE_SYSTEM_GROUPING; IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
If the section element has an accessible name:
Control Type: Group
Localized Control Type: "section" (all lower-case)
Landmark Type: Custom
Localized Landmark Type: "region" (all lower-case)
Otherwise:
Control Type: Group
If the section element has an accessible name, use WAI-ARIA mapping. Otherwise:
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
If the section element has an accessible name, use WAI-ARIA mapping. Otherwise:
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
select (with a multiple attribute or size attribute having value greater than 1) listbox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
select (with NO multiple attribute and NO size attribute having value greater than 1) combobox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
small No corresponding role
No accessible object.
Text attributes: font-size on the text container
No accessible object. Exposed by UIA_FontSizeAttributeId of the TextRange control pattern implemented on a parent accessible object.
No accessible object. Exposed as "font-size" text attribute on the text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
source No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
span No corresponding role
Not mapped
Control Type: Group
Not mapped
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
strong No corresponding role
No accessible object. Styles used are mapped into text attributes on its text container.
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
No accessible object. Styles used are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
style No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
sub No corresponding role
No accessible object.
Text attributes: text-position:sub on the text container
No accessible object. Exposed by UIA_IsSubscriptAttributeId of the TextRange control pattern implemented on a parent accessible object.
No accessible object. Exposed as "text-position:sub" text attribute on its text container.
AXRole: AXGroup
AXSubrole: AXSubscriptStyleGroup
AXRoleDescription: "group"
summary No corresponding role
Role: ROLE_SYSTEM_PUSHBUTTON
States: STATE_SYSTEM_EXPANDED / STATE_SYSTEM_COLLAPSED
Actions: expand / collapse
Control Type: Button
Control Pattern: ExpandCollapse
Role: ATK_ROLE_PUSHBUTTON
AXRole: AXDisclosureTriangle
AXSubrole: (nil)
AXRoleDescription: "disclosure triangle"
sup No corresponding role
No accessible object.
Text attributes: text-position:super on the text container
No accessible object. Exposed by UIA_IsSuperscriptAttributeId of the TextRange control pattern implemented on a parent accessible object.
No accessible object. Exposed as "text-position:super" text attribute on its text container.
AXRole: AXGroup
AXSubrole: AXSuperscriptStyleGroup
AXRoleDescription: "group"
svg No corresponding role
Role: ROLE_SYSTEM_GRAPHIC
Control Type: Image
Role: ATK_ROLE_IMAGE
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
table table role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
tbody rowgroup role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
td (ancestor table element has table role) cell role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
td (ancestor table element has grid role) gridcell role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
template No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
textarea textbox role, with the aria-multiline property set to "true"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
tfoot rowgroup role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
th (is neither column header nor row header, and ancestor table element has table role) cell role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
th (is neither column header nor row header, and ancestor table element has grid role) gridcell role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
th (is a column header) columnheader role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
th (is a row header) rowheader role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
thead rowgroup role
Use WAI-ARIA mapping
Control Type: Header
Use WAI-ARIA mapping
Use WAI-ARIA mapping
time No corresponding role
Role: IA2_ROLE_TEXT_FRAME
Object attributes: xml-roles:time; datetime:value of the time element's datetime attribute
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text
Localized Control Type: "time"
Other properties: Set FullDescription to the value of the time element's datetime attribute.
Note: create a separate UIA Control of type Text. This is different from most UIA text mappings, which only create ranges in the page text pattern.

Role: ATK_ROLE_STATIC

Object attributes: xml-roles:time; datetime:value of the time element's datetime attribute
Interfaces: AtkText; AtkHypertext

AXRole: AXGroup
AXSubrole: AXTimeGroup
AXRoleDescription: "group"
title No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
tr row role
Use WAI-ARIA mapping
Generally not mapped. If the element must be included per Core-AAM Section 5.1.2, map as Group.
Use WAI-ARIA mapping
Use WAI-ARIA mapping
track No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
u No corresponding role
No accessible object. Exposed as "text-underline-style:solid" text attribute on its text container.
No accessible object. Exposed by UIA_UnderlineStyleAttributeId of the TextRange control pattern implemented on a parent accessible object.
No accessible object. Exposed as "text-underline-style:solid" text attribute on its text container.
?
ul list role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
var No corresponding role
No accessible object. Styles used are mapped to text attributes on its text container.
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
No accessible object. Styles used are mapped to text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
video No corresponding role
Role: ROLE_SYSTEM_GROUPING
Control Type: Group
If the controls attribute is present, each control is a child in the UIA tree, and mapped as button, slider, etc. as appropriate for the type of control.
Loading and error text objects, along with any control not currently displayed, MAY be present in the UIA and marked as hidden or off-screen.
Role: ATK_ROLE_VIDEO
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the video element exposed as AXToolbar.
wbr No corresponding role
If a line break is added, expose it with IAccessibleText on the text container
Not mapped
A line break if added is exposed via Text interface on its text container
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"

HTML Attribute State and Property Mappings

Notes:

Mappings of HTML attributes (excluding event handler content attributes) to platform accessibility APIs: ARIA, MSAA + UIA Express, MSAA + IAccessible2, UIA, ATK, and AX
Attribute Element(s) WAI-ARIA MSAA + IAccessible2 UIA ATK AX Comments
abbr th
Not mapped
Object attributes: "abbr" until child abbr element is provided
Not mapped
Object attributes: "abbr" until child abbr element is provided
AXDescription: <value>
accept input
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
accept-charset form
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
accesskey HTML elements
Not mapped
a key binding accessible by accKeyboardShortcut and IAccessibleAction::keyBinding
If the value of the accesskey attribute is a single character, AccessKey.
atk_action_get_keybinding
AXAccessKey: <value>
action form
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
allowfullscreen iframe
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
alt area; img; input
Not mapped
Used for accessible name, exposed via accName
Properties: Name
Used for accessible name, exposed via atk_object_get_name
AXDescription: <value>
async script
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
autocomplete "on|off" form

aria-autocomplete

Note: the ARIA attribute and the HTML attribute have disparate features.

States: STATE_SUPPORTS_AUTOCOMPLETION on text form controls unitl the value is overriden by control
Not mapped
States: ATK_STATE_SUPPORTS_AUTOCOMPLETION on text form controls unitl the value is overriden by control
Not mapped
If the element includes both autocomplete and aria-autocomplete attributes with valid values, User Agents MUST expose only the autocomplete attribute value.
autocomplete input; select; textarea

aria-autocomplete

Note: the ARIA attribute and the HTML attribute have disparate features.

States: STATE_SUPPORTS_AUTOCOMPLETION
Not mapped
States: ATK_STATE_SUPPORTS_AUTOCOMPLETION
Not mapped
If the element includes both autocomplete and aria-autocomplete attributes with valid values, User Agents MUST expose only the autocomplete attribute value.
autofocus button; input; keygen; select; textarea Not mapped - aria-flowto?
Not mapped
Not mapped
Not mapped
Not mapped
autoplay audio; video
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
challenge keygen
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
charset meta
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
charset script
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
checked (if present) menuitem; input aria-checked (state)="true"
States: STATE_SYSTEM_CHECKED
Expose as ToggleState property in Toggle control pattern
States: ATK_STATE_CHECKED
AXValue: 1 If the element includes both the checked attribute and the aria-checked attribute with a valid value, User Agents MUST expose only the checked attribute value.
checked (if absent) menuitem; input aria-checked (state)="false"
Not mapped
Expose as ToggleState property in Toggle control pattern.
Not mapped
AXValue: 0
cite blockquote; del; ins; q
Not mapped
Not mapped
Not mapped
Not mapped
AXURL: <value>
class HTML elements
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
cols textarea
Not mapped
Not mapped
Not mapped
Not mapped
AXRangeForLine: <value>
Not mapped
colspan td; th aria-colspan
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
content meta
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
contenteditable HTML elements ?
States: IA2_STATE_EDITABLE on this and every nested text accessible object
Interfaces: IAccessibleEditableText on this and every nested text accessible object
Control Pattern: TextEdit
States: ATK_STATE_EDITABLE on this and every nested text accessible object
Interfaces: AtkEditableText on this and every nested text accessible object
? If the element has the contenteditable attribute and aria-readonly="true", User Agents MUST expose only the contenteditable state.
contextmenu HTML elements aria-haspopup="true"
Linked menu is available in browser's context menu on the element
Expose state of the pop-up activities in the ExpandCollapseState property in the ExpandCollapse control pattern.
Linked menu is available in browser's context menu on the element
Actions: AXShowMenu; AXPress
controls audio; video
Not mapped
Not mapped
Not mapped
Not mapped
Controls exposed as AXToolbar
coords area
Not mapped
Defines an accessible object's dimensions (IAccessible::accLocation)
Defines an accessible object's dimensions (BoundingRectangle)
Defines an accessible object's dimensions, exposed via atk_component_get_position and atk_component_get_size
?
crossorigin audio; img; link; script; video
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
data object
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
datetime del; ins
Not mapped
Object attributes: datetime: text content used as a value
Not mapped
Object attributes: datetime: text content used as a value
?
datetime time
Not mapped
Object attributes: datetime: text content used as a value
Not mapped
Object attributes: datetime: text content used as a value
?
default track
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
defer script
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
dir HTML elements
Not mapped
Exposed as "writing-mode" text attribute on the text container.
Exposed by UIA_TextFlowDirectionsAttributeId of the TextRange control pattern implemented on a parent accessible object.
Exposed as "writing-mode" text attribute on the text container.
?
dirname input; textarea
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
disabled button; fieldset; input; keygen; menuitem; optgroup; option; select; textarea aria-disabled="true"
States: STATE_SYSTEM_UNAVAILABLE
States: No interactive states like ATK_STATE_FOCUSABLE
AXEnabled: NO If the element includes both the disabled attribute and the aria-disabled attribute with a valid value, User Agents MUST expose only the disabled attribute value.
download a; area
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
draggable HTML elements ?
Object attributes: draggable:true
Not mapped
Object attributes: draggable:true
?
dropzone HTML elements ?
Not mapped
Not mapped
Not mapped
?
enctype form
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
for label
Not mapped
Used for accessible name
Relations: IA2_RELATION_LABEL_FOR and IA2_RELATION_LABEL_BY relations between label and referred element
Not mapped
Used for accessible name
Relations: ATK_RELATION_LABEL_FOR and ATK_RELATION_LABEL_BY relations between label and referred element
Not mapped
for output
Not mapped
Relations: IA2_RELATION_CONTROLLED_BY with an element pointed by the attribute. Paired element exposes IA2_RELATION_CONTROLLER_FOR relation.
Not mapped
Relations: ATK_RELATION_CONTROLLED_BY with an element pointed by the attribute. Paired element exposes ATK_RELATION_CONTROLLER_FOR relation.
Not mapped
form button; fieldset; input; keygen; label; object; output; select; textarea
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
formaction button; input
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
formenctype button; input
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
formmethod button; input
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
formnovalidate button; input
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
formtarget button; input
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
headers td; th ?
Links the cell to its header cells. Exposed via IAccessibleTableCell::rowHeaderCells and IAccessibleTableCell::columnHeaderCells.
Links the cell to its header cells. Exposed via Table.ItemColumnHeaderItems and Table.ItemRowHeaderItems.
Links the cell to its row and column header cells (note, only one row and one column header cells can be exposed because of API restrictions). See atk_table_get_row_header and atk_table_get_column_header.
Expose via AXColumnHeaderUIElements and AXRowHeaderUIElements
height canvas; embed; iframe; img; input; object; video
Not mapped
Defines an accessible object's height (IAccessible::accLocation)
Defines an accessible object's height (BoundingRectangle)
Defines an accessible object's height (atk_component_get_size)
?
hidden HTML elements aria-hidden="true"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
high meter ?
Not mapped
RangeValue.Maximum
Not mapped
?
href a; area
Not mapped
Creates a link accessible object. For details, refer to a and area element mappings.
Creates a link accessible object. For details, refer to a and area element mappings. The value of the href attribute is stored in the Value.Value UIA property.
Creates a link accessible object. For details, refer to a and area element mappings.
AXURL: <value>
hreflang a; area; link
Not mapped
Not mapped
Not mapped
Not mapped
?
http-equiv meta
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
icon menuitem
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
id HTML elements
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
indeterminate [IDL] HTML elements; menuitem; input aria-checked (state)="mixed"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
If the element has the indeterminate [IDL] set and the aria-checked attribute set, User Agents MUST expose only theindeterminate [IDL]state.
ismap img
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
keytype keygen
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
kind track
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
label menuitem; menu; optgroup; option; track ?
Associates the accessible name
The target element of the label attribute has a LabeledBy property pointing to the element with the label atrribute. Participates in name computation
Associates the accessible name
? See Also: Accessible Name and Description: Computation and API Mappings 1.1
lang HTML elements
Not mapped
Exposed as "language" text attribute on the text container
The value of the lang attribute is exposed as a locale identifier by UIA_CulturePropertyID of the UIA element representing the HTML element, and by UIA_CultureAttributeId of the TextRange control pattern implemented on a parent accessible object.
Exposed as "language" text attribute on the text container
AXLanguage: <value>

chrome OSX lang bug

IE lang bug

list input aria-controls
IA2_RELATION_CONTROLLER_FOR pointing to a datalist element referred by the list attribute.
ControllerFor pointing to a datalist element referred by the list attribute.
ATK_RELATION_CONTROLLER_FOR pointing to a datalist element referred by the list attribute.
Refer to datalist and input elements mapping.
longdesc img, frame, iframe
Not mapped
Actions: showlongdesc (exposed on img only)
Not mapped
Actions: showlongdesc (exposed on img only)
Not mapped
IE 8+ populates the accdescription with the value of the longdesc attribute. This is brittle as it is overwritten when aria-describedby is used.
loop audio; video
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
low meter ?
Not mapped
RangeValue.Minimum
Not mapped
?
max input ?
Exposed as IAccessibleValue::maximumValue if the element implements the interface
RangeValue.Maximum
Exposed as atk_value_get_maximum_value if the element implements the AtkValue interface
AXMaxValue: <value>
max meter; progress ?
Exposed as IAccessibleValue::maximumValue if the element implements the interface
RangeValue.Maximum
Exposed as atk_value_get_maximum_value if the element implements the AtkValue interface
AXMaxValue: <value>
maxlength input; textarea ?
Not mapped
Not mapped
Not mapped
?
media link; source; style
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
method form
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
min input ?
Exposed as IAccessibleValue::minimumValue if the element implements the interface
RangeValue.Minimum
Exposed as atk_value_get_minimum_value if the element implements the AtkValue interface
AXMinValue: <value>
min meter ?
Exposed as IAccessibleValue::minimumValue if the element implements the interface
RangeValue.Minimum
Exposed as atk_value_get_minimum_value if the element implements the AtkValue interface
AXMinValue: <value>
multiple input
Not mapped
?
Not mapped
? ?
multiple select aria-multiselectable="true"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
muted audio; video
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
name button; fieldset; input; keygen; output; select; textarea
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
name form
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
name iframe; object
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
name map
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
name meta
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
name param
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
novalidate form
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
open details aria-expanded="true | false" STATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
ExpandCollapsePattern
States: ATK_STATE_COLLAPSED or ATK_STATE_EXPANDED depending on the attribute value
AXExpanded: YES|NO Set properties on the summary element.
open dialog aria-expanded="true | false" STATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
ExpandCollapsePattern
States: ATK_STATE_COLLAPSED or ATK_STATE_EXPANDED depending on the attribute value
AXExpanded: YES|NO
optimum meter
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
pattern input
Not mapped
States: IA2_STATE_INVALID_ENTRY if value doesn't meet the pattern
States: IsDataValidForForm if value doesn't meet the pattern
States: ATK_STATE_INVALID_ENTRY if value doesn't meet the pattern
?
placeholder input; textarea aria-placeholder
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
When the placeholder and aria-placeholder attributes are both present, and the placeholder attribute's value is non-empty, user agents MUST expose the value of the placeholder attribute, and ignore aria-placeholder. If the placeholder attribute's value is empty, then user agents MUST expose the value of the aria-placeholder attribute.
poster video
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
preload audio; video
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
radiogroup menuitem
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
readonly input; textarea ?
Adds STATE_SYSTEM_READONLY bit to input and textarea elements
Adds Value.IsReadOnly bit to input and textarea elements
Removes ATK_STATE_EDITABLE bit bit from input and textarea elements
AXEnabled: NO
rel a; area; link
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
required input; select; textarea aria-required
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
reversed ol
Not mapped
Reverses the numbering of the child list item accessible objects.
Reverses the order of the child list items in the accessibility tree and reverses the numbering of the child list items.
Reverses the numbering of the child list item accessible objects.
?
rows textarea ?
Not mapped
Not mapped
Not mapped
?
rowspan td; th aria-rowspan
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
sandbox iframe
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
scope th ?
Defines whether the element is a row or column header (refer to th element)
Defines whether the element is a row or column header (refer to th element)
Defines whether the element is a row or column header (refer to th element)
?
selected option aria-selected="true"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
shape area
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
size input; select ?
If greater than 1, then creates a listbox accessible object. Refer to select element for details.
If greater than 1, then creates a List accessible object. Refer to select element for details.
If greater than 1, then creates a listbox accessible object. Refer to select element for details.
?
sizes link
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
span col; colgroup ?
exposed as IAccessibleTableCell::columnExtent on all cells at the column
Exposed as GridItem.ColumnSpan on all cells at the column
Exposed via atk_table_get_column_extent_at
?
spellcheck HTML elements
Not mapped
Mapped to "invalid" text attribute on the text container
Mapped to SpellingError AnnotationTypes text attribute on the text range
Mapped to "invalid" text attribute on the text container
?
src audio; embed; iframe; img; input; script; source; track; video
Not mapped
Object attributes: src on img only
Object attributes: src on img only
Object attributes: src on img only
?
srcdoc iframe
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
srclang track
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
start ol
Not mapped
Changes the first number of the child list item accessible objects to match the start attribute's value.
Changes the first number of the child list item accessible objects to match the start attribute's value.
Changes the first number of the child list item accessible objects to match the start attribute's value.
?
step input
Not mapped
Not mapped
If the input is in the Range state, set both RangeValue.SmallChange and RangeValue.LargeChange to the value of step
Exposed as atk_value_get_minimum_increment if the element implements the AtkValue interface
?
style HTML elements
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
tabindex HTML elements
Not mapped
States: STATE_SYSTEM_FOCUSABLE; also set STATE_SYSTEM_FOCUSED when the element has DOM focus
States: IsKeyboardFocusable; also set HasKeyboardFocus when the element has DOM focus
States: ATK_STATE_FOCUSABLE; also set ATK_STATE_FOCUSED when the element has DOM focus
?
target a; area
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
target base
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
target form
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
title HTML elements ?
Associates the accessible name or if it was provided otherwise then accessible description
Associates the accessible name or if it was provided otherwise then accessible description
Associates the accessible name or if it was provided otherwise then accessible description
AXHelp: <value>
title abbr; dfn
Not mapped
Associates the accessible name
Associates the accessible name
Associates the accessible name
AXExpandedTextValue: <value>
title menuitem ?
Associates the accessible name or if it was provided otherwise then accessible description
Associates the accessible name or if it was provided otherwise then accessible description
Associates the accessible name or if it was provided otherwise then accessible description
AXHelp: <value>
title link; style
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
translate HTML elements
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
type button ?
submit type may be a default button in the form
submit type may be a default button in the form
submit type may be a default button in the form
?
type embed; object; script; source; style
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
type input ?
Defines the accessible role, states and other properties, refer to type="text", type="password", type="button", etc
Defines the accessible role, states and other properties, refer to type="text", type="password", type="button", etc
Defines the accessible role, states and other properties, refer to type="text", type="password", type="button", etc
?
type menu ?
Not mapped
Not mapped
Not mapped
?
type menuitem ?
Defines the accessible role and states, refer to type="command"
Defines the accessible role and states, refer to type="command"
Defines the accessible role and states: type="command"
?
type ol None
Defines the list item marker, which has no accessible object, but is exposed as content in the accessible text of the associated list item.
Interfaces: IAccessibleText2
Defines the list item marker, which has no accessible object, but is exposed as content in the accessible text of the associated list item.
Control Pattern: Text
Defines the list item marker, which has no accessible object, but is exposed as content in the accessible text of the associated list item.
Interfaces: ATKText
Defines the list item marker, which is exposed as content in AXValue, and rendered as an accessible object:
AXRole: AXListMarker
AXSubrole: (nil)
AXRoleDescription: list marker
Some platforms (IAccessible2, ATK, UIA) do not expose an accessible object for the list item marker, whether it was created and then pruned from the accessibility tree after the fact, or not created in the first place. Instead, they expose the list item marker as part of the associated list item's accessible text. In these cases, implementors need to consider such things as adjusting the offsets (e.g. for caret-moved events, text-selection events, etc.) for the updated list item text that now also contains the list item marker as content, rather than just taking the offsets unmodified from the list item renderer.
typemustmatch object
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
usemap img
Not mapped
Responsible for image map creation, refer to img element
Responsible for image map creation, refer to img element
Responsible for image map creation, refer to img element
?
value button; option
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
value input ?
Associates the accessible value for entry type input elements and accessible name for button type input elements
Associates the accessible value for entry type input elements and accessible name for button type input elements
Associates the accessible value for entry type input elements and accessible name for button type input elements
AXValue: <value>
value li
Not mapped
Exposed as first text node of li's accessible object.
Expose the value of the value attribute as the first text node in the list item. If the value of the value attribute is an iteger, set the UIA PositionInSet property to the integer value.
Exposed as first text node of li's accessible object.
Exposed as AXValue: <value> with accessible object:
AXRole: AXLlistMarker
AXSubrole: (nil)
AXRoleDescription: list marker
value meter; progress ?
Exposed as IAccessibleValue::currentValue
Exposed as Value.Value
Exposed as atk_value_get_current_value
AXValue: <value>
value param
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
width canvas; embed; iframe; img; input; object; video
Not mapped
Defines an accessible object's width (IAccessible::accLocation)
Defines an accessible object's width (BoundingRectangle)
Defines an accessible object's width (atk_component_get_size)
AXSize: w=n
wrap textarea
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped

Accessible Name and Description Computation

The terms accessible name and accessible description are properties provided in all accessibility APIs. The name of the properties may differ across APIs but they serve the same function: as a container for a short (name) or longer (description) string of text.

The text alternative computation is used to generate both the accessible name and accessible description. There are different rules provided for several different types of elements, nodes, and combinations of markup.

input type="text", input type="password", input type="search", input type="tel", input type="url" and textarea Element

input type="text", input type="password", input type="search", input type="tel", input type="email", input type="url" and textarea Element Accessible Name Computation

  1. If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the associated label element(s) accessible name(s) - if more than one label is associated; concatenate by DOM order, delimited by spaces.
  3. Otherwise use the title attribute
  4. If none of the above yield a usable text string there is no accessible name

input type="text", input type="password", input type="search", input type="tel", input type="email", input type="url" and textarea Element Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name.
  3. If none of the above yield a usable text string there is no accessible description

input type="button", input type="submit" and input type="reset"

input type="button" , input type="submit" and input type="reset" Accessible Name Computation

  1. If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the value attribute
  3. For input type=submit: If steps 1 to 2 do not yield a usable text string, the accessible name is a localized string of the word "submit"
  4. For input type=reset: If steps 1 to 2 do not yield a usable text string, the accessible name is a localized string of the word "reset"
  5. Otherwise use title attribute
  6. If none of the above yield a usable text string there is no accessible name

input type="button" , input type="submit" and input type="reset" Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the value attribute if it wasn't used as the accessible name
  3. Otherwise use the title attribute if it wasn't used as the accessible name
  4. If none of the above yield a usable text string there is no accessible description

input type="image"

input type="image" Accessible Name Computation

  1. If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use alt attribute
  3. Otherwise use value attribute
  4. Otherwise the user agent may provide an accessible name via a localized string of the phrase "Submit Query"
  5. Otherwise use title attribute
  6. If none of the above yield a usable text string there is no accessible name

input type="image" Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name.
  3. If none of the above yield a usable text string there is no accessible description

button Element

button Element Accessible Name Computation

  1. If the button element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the button element subtree
  3. Otherwise use title attribute
  4. If none of the above yield a usable text string there is no accessible name

button Element Accessible Description Computation

  1. use aria-describedby
  2. Otherwise use the title attribute if it wasn't used as the accessible name.

fieldset and legend Elements

fieldset Element Accessible Name Computation

  1. If the fieldset element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use legend subtree
  3. Otherwise use title attribute
  4. If none of the above yield a usable text string there is no accessible name

fieldset Element Accessible Description Computation

  1. If the fieldset element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name
  3. If none of the above yield a usable text string there is no accessible description

output Element

output Element Accessible Name Computation

  1. If the output element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the output element subtree
  3. Otherwise use title attribute
  4. If none of the above yield a usable text string there is no accessible name

output Element Accessible Description Computation

  1. use aria-describedby
  2. Otherwise use the title attribute if it wasn't used as the accessible name.
  3. If none of the above yield a usable text string there is no accessible description

Other Form Elements

Other Form Elements Accessible Name Computation

  1. If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use label element
  3. Otherwise use title attribute
  4. If none of the above yield a usable text string there is no accessible name

Other Form Elements Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name.
  3. If none of the above yield a usable text string there is no accessible description

summary Element

summary Element Accessible Name Computation

  1. If the summary element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use summary element subtree
  3. Otherwise use title attribute
  4. If none of the above yield a usable text string the user agent should provide its own text string (e.g. "Details")

summary Element Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use summary element subtree if not used as the accessible name
  3. Otherwise use the title attribute if it wasn't used as the accessible name
  4. If none of the above yield a usable text string there is no accessible description

figure and figcaption Elements

figure Element Accessible Name Computation

  1. If the figure element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use figcaption subtree
  3. Otherwise use title attribute
  4. If none of the above yield a usable text string there is no accessible name

figure Element Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name
  3. If none of the above yield a usable text string there is no accessible description

img Element

img Element Accessible Name Computation

  1. If the img element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use alt attribute
  3. Otherwise use title attribute
  4. If none of the above yield a usable text string there is no accessible name

If the img element is exposed in the accessibility tree and the computed text alternative is empty, then check for the presence of role="presentation" or any labeling attribute that specifies an empty label, specifically aria-label, aria-labelledby, alt or title. The presence of any of these indicates the author's intention to indicate that the img is decorative or redundant. In this case, the user agent must set the name to an empty string. If none of these attributes are present, this indicates the author simply did not provide an accessible label for the image, and the implementation must return an accessible name of NULL instead of an empty string if the accessibility API supports it. This hints to the assistive technology to do its own heuristic processing to repair the missing accessible name.

img Element Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name
  3. If none of the above yield a usable text string there is no accessible description

table Element

table Element Accessible Name Computation

  1. If the table element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use caption element
  3. Otherwise use the title attribute
  4. If none of the above yield a usable text string there is no accessible name

table Element Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the caption element if it wasn't used as the accessible name
  3. Otherwise use the title attribute if it wasn't used as the accessible name
  4. If none of the above yield a usable text string there is no accessible description

a Element

a Element Accessible Name Computation

  1. If the a element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use a element subtree
  3. Otherwise use the title attribute
  4. If none of the above yield a usable text string there is no accessible name

a Element Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name
  3. If none of the above yield a usable text string there is no accessible description

iframe Element

iframe Element Accessible Name Computation

  1. If the element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute
  3. If none of the above yield a usable text string there is no accessible name

The document referenced by the src of the iframe element gets its name from that document's title element, like any other document. If there is no title provided, there is no accessible name.

iframe Element Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name
  3. If none of the above yield a usable text string there is no accessible description

Section Elements and Grouping Content Elements Not listed Elsewhere

Section and Grouping Element Accessible Name Computation

  1. If the element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute
  3. If none of the above yield a usable text string there is no accessible name

Section and Grouping Element Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name
  3. If none of the above yield a usable text string there is no accessible description

Text Level Elements Not listed Elsewhere

em, strong, small, s, cite, q, dfn, abbr, time, code, var, samp, kbd, sub and sup, i, b, u, mark, ruby, rt, rp, bdi, bdo, br, wbr

Text Level Element Accessible Name Computation

  1. If the element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the text element's subtree
  3. Otherwise use the title attribute
  4. If none of the above yield a usable text string there is no accessible name

Text Level Element Accessible Description Computation

  1. If the element has an aria-describedby attribute the accessible description is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.
  2. Otherwise use the title attribute if it wasn't used as the accessible name
  3. If none of the above yield a usable text string there is no accessible description

Accessible Feature Implementation Examples

summary and details Elements

Focus and Keyboard Interaction

The summary element should be focusable by default.

The details element should not focusable by default.

Pressing the spacebar or enter key when the summary element has focus will show the details element content if the content is hidden. If the details element content is showing and the summary element has focus, pressing the spacebar or enter key will hide the details element content.

Role, Name, State and Property Mapping

The summary element should be mapped to a disclosure triangle role in accessibility APIs that have such a role. For example the Mac accessibility API includes the AXDisclosureTriangle role. In accessibility APIs that do not have such a fine grained role, the summary element should be mapped to a button role. The role mapping table contains recommended mappings for the summary element.

The default accessible name for the summary element is the text content of the summary element.

When the details element content is hidden, the state of the content should be reflected by an accessible state or property.

Example 1: In the Mac accessibility API on the summary element (AXDisclosureTriangle), set AXExpanded property to NO. When the details element content is shown, on the summary element (AXDisclosureTriangle), set theAXExpanded property to YES. The hidden and shown states of the details element content is reflected by the absence or presence of the open attribute.

Example 2: In the IA2 accessibility API on the summary element (ROLE_SYSTEM_PUSHBUTTON), set STATE_SYSTEM_COLLAPSED. When the details element content is shown, on the summary element (ROLE_SYSTEM_PUSHBUTTON), set STATE_SYSTEM_EXPANDED. The hidden and shown states of the details element content is reflected by the absence or presence of the open attribute.

The figure and figcaption Elements

to do

Appendices

Change Log

Substantive changes since moving entirely to the Web Platform Working Group (01-Oct-2016)

  • 09-Aug-2017: Updated mappings for the type attribute on the ol element. See GitHub issue #91.
  • 25-July-2017: Updated UIA mappings for multiple elements and attributes. See GitHub issue #95 and GitHub pull request #101.
  • 02-June-2017: Updated AXAPI mappings for title attribute on abbr element, and abbr attribute on th element. See GitHub issue #16.
  • 31-May-2017: Updated mappings for hidden attribute. See GitHub issue #38.
  • 24-May-2017: Updated mappings for selected attribute. See GitHub issue #92.
  • 01-May-2017: Updated AXAPI mapping for time element. See GitHub issue #88.
  • 27-Apr-2017: Updated UIA mappings for lang and dir attributes. See GitHub issue #19.
  • 19-Apr-2017: Updated mapping for colspan and rowspan attributes. See GitHub issue #56 and issue #57.
  • 03-Apr-2017: Updated mapping for section element. See GitHub issue #79.
  • 23-Dec-2016: No mapping for datalist element if not linked with input element. See GitHub issue #26.
  • 23-Dec-2016: Updated IA2 mapping for list attribute. See GitHub issue #21.
  • 22-Dec-2016: Sync mappings for footer and header elements. See GitHub issue #59.
  • 22-Dec-2016: Updated IA2 mapping for input@type='date' attribute. See GitHub issue #61.
  • 22-Dec-2016: Updated IA2 mapping for input@type='file' element. See GitHub issue #62.
  • 22-Dec-2016: Updated IA2 mapping for summary element. See GitHub issue #64.
  • 14-Dec-2016: Updated wording distinguishing when header and footer elements are or are not ARIA landmarks. See GitHub issue #65.
  • 07-Dec-2016: Modified aria-multiselectable mapping for datalist to reflect listbox selection model. See GitHub issue #71.
  • 07-Dec-2016: Mappings for the multiple attribute on input and select elements. See GitHub issue #72.
  • 27-Nov-2016: Added implementation rules for the checked, contenteditable, disabled, and indeterminate attributes.
  • 21-Nov-2016: Removed placeholder attribute from accessible description computation for various input elements.

Acknowledgments

The following people contributed to the development of this document.

Participants active in the HTML Accessibility Task Force active at the time of publication

  • @@

Enabling 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 and currently under contract number HHSP23301500054C. 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.