HTML Accessibility API Mappings (HTML-AAM) defines how user agents map HTML [[HTML]] elements and attributes to platform accessibility application programming interfaces (APIs). It leverages and extends the [[[core-aam-1.2]]] and the [[[accname-1.2]]] for use with the HTML 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.

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 Applications Working Group. This document is now maintained solely by the Accessible Rich Internet Applications Working Group.

Introduction

This specification defines how HTML user agents respond to and expose [=role=], [=state=] and [=ARIA/property=] information provided for Web content. Unless indicated otherwise, an HTML element or attribute with default [[[wai-aria-1.2]]] semantics must be exposed to the platform accessibility APIs according to the relevant WAI-ARIA mappings defined in the [[[core-aam-1.2]]] specification.

In some cases, often due to features of the HTML host language or the accessibility API in question, an element or attribute's mapping differs from the corresponding ARIA mappings specified in the [[core-aam-1.2]]. Where an HTML element or attribute does not have any default WAI-ARIA semantics, the applicable mapping for each platform accessibility API is defined by this specification.

This document also adapts the [[[accname-1.2]]] specification for deriving the accessible names and accessible descriptions of [[HTML]] elements, and provides accessible implementation examples for specific HTML 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-aam-1.2]]].

Normative sections provide requirements that user agents and assistive technologies MUST 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.

Deprecated

There are currently no deprecated requirements.

Mapping HTML to Accessibility APIs

General Rules for Exposing WAI-ARIA Semantics

WAI-ARIA support was first introduced to HTML in [[HTML5]].

User Agents MUST expose HTML elements or attributes with default WAI-ARIA semantics to the platform accessibility APIs in a way that conforms to General rules for exposing WAI-ARIA semantics in the [[[core-aam-1.2]]].

Conflicts Between Native Markup Semantics and WAI-ARIA

Where the host language is [[HTML]], user agents MUST conform to Conflicts between native markup semantics and WAI-ARIA in the [[[core-aam-1.2]]].

Exposing HTML Features That Do Not Directly Map to Accessibility APIs

HTML can include 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-aam-1.2]].

Exposing HTML Features That Require a Minimum Role

A minimum role is the equivalent WAI-ARIA role an element will map to if the element does not have a more specific implicit role or platform role mappings, e.g., a non-generic role. This can help ensure that users of assistive technologies get the best possible experience for commonly-used and valid HTML markup where otherwise a role would not be exposed.

A minimum role is provided when all of the following conditions are true:

The HTML Attribute State and Property Mappings section identifies the specific global attributes which would require an element map to a minimum role.

When these conditions are met, user agents MUST expose an object using the mappings defined in CORE-AAM for the specified minimum role. If the element has multiple attributes specified which require a minimum role be returned as the computed role for the element, prioritize the more specific role in the ARIA taxonomy.

HTML Element Role Mappings

Platform API mapping requirements

`a` (represents a hyperlink)

HTML Specification `a` (represents a hyperlink)
[[wai-aria-1.2]] `link` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`a` (no `href` attribute)

HTML Specification `a` (no `href` attribute)
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`abbr`

HTML Specification `abbr`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-abbr`
MSAA + IAccessible2
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
UIA
Control Type: `Text`
[[ATK]]
Role: `ATK_ROLE_STATIC`
Object attributes: "abbr" attribute on the containing `td` if a single child, text content used as a value
AX
AXRole: `AXGroup`
AXSubrole: `(nil)`
AXRoleDescription: `"group"`
Comments

`address`

HTML Specification `address`
[[wai-aria-1.2]] `group` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`area` (represents a hyperlink)

HTML Specification `area` (represents a hyperlink)
[[wai-aria-1.2]] `link` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`area` (no `href` attribute)

HTML Specification `area` (no `href` attribute)
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments User agents MAY still expose an `a` element lacking the `href` attribute with a `link` role in the event an author specifies interactive behavior for the element. For example, if using an event handler attribute.

`article`

HTML Specification `article`
[[wai-aria-1.2]] `article` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`aside` (scoped to the `body` or `main` element)

HTML Specification `aside` (scoped to the `body` or `main` element)
[[wai-aria-1.2]] `complementary` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`aside` (scoped to a sectioning content element)

HTML Specification `aside` (scoped to a sectioning content element)
[[wai-aria-1.2]] `complementary` role if the `aside` element has an accessible name. Otherwise, `generic` role.
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`audio`

HTML Specification `audio`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-audio`
MSAA + IAccessible2
Role: `ROLE_SYSTEM_GROUPING`
UIA
Control Type: `Group`
Localized Control Type: `"audio"`
Note: If the `controls` attribute is present, UI controls (e.g., play, volume) are exposed as children of the `audio` element in the accessibility tree, and mapped as appropriate for the type of control (e.g., `button` or `slider`).
User agents MAY include the following in the accessibility tree and mark them as hidden or off-screen:
  • Loading messages or error messages
  • UI controls that are not currently displayed
[[ATK]]
Role: `ATK_ROLE_AUDIO`
AX
AXRole: `AXGroup`
AXSubrole: `AXAudio`
AXRoleDescription: `"audio playback"`
Note: If the `controls` attribute is present, UI controls (e.g., play, volume) are exposed as descendants of an accessible object with a role of `toolbar`, and mapped as appropriate for the type of control (e.g., `button` or `slider`).
Comments

autonomous custom element

HTML Specification autonomous custom element
[[wai-aria-1.2]] If the author assigned a conforming ARIA role using the `role` attribute, map to that role. Otherwise, the `generic` role.
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`b`

HTML Specification `b`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments Exposed by platform specific bold font weight text styles.

`base`

HTML Specification `base`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`bdi`

HTML Specification `bdi`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments IA2/ATK: May affect on "writing-mode" text attribute on its text container.

`bdo`

HTML Specification `bdo`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments IA2/ATK: Exposed as "writing-mode" text attribute on its text container.

`blockquote`

HTML Specification `blockquote`
[[wai-aria-1.2]] `blockquote` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`body`

HTML Specification `body`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments User agents MUST ignore the `aria-hidden` attribute if specified on the `body` element.

`br`

HTML Specification `br`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments May be exposed as '\n' character by the platform interface.

`button`

HTML Specification `button`
[[wai-aria-1.2]] `button` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments A `button`'s mapping will change if the `aria-pressed` or `aria-haspopup` attributes are specified.

`canvas`

HTML Specification `canvas`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-canvas`
MSAA + IAccessible2
Roles: `ROLE_SYSTEM_GRAPHIC`; `IA2_ROLE_CANVAS`
UIA
Control Type: `Image`
Descendants of the `canvas` element are mapped separately.
[[ATK]]
Role: `ATK_ROLE_CANVAS`
AX
AXRole: `AXGroup`
AXSubrole: `(nil)`
AXRoleDescription: `""`
Comments

`caption`

HTML Specification `caption`
[[wai-aria-1.2]] `caption` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
Relations: `IA2_RELATION_LABEL_FOR` with parent `table`
UIA
Use WAI-ARIA mapping
Other properties: The `LabeledBy` property for the parent `table` element points to the UIA element for the `caption` element.
[[ATK]]
Use WAI-ARIA mapping
Relations: `ATK_RELATION_LABEL_FOR` with parent `table`
AX
Use WAI-ARIA mapping
Relations: `ATK_RELATION_LABEL_FOR` with parent `table`
Comments

If a `caption` element is [=element/hidden=] from the accessibility tree, then it will not provide an accessible name to its parent `table` element.

`cite`

HTML Specification `cite`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-cite`
MSAA + IAccessible2
No accessible object. Styles used are mapped into text attributes on its text container.
UIA
No accessible object. Styles used are exposed by UIA text attributes of the `TextRange` Control Pattern implemented on a parent accessible object.
[[ATK]]
No accessible object. Styles used are mapped into text attributes on its text container.
AX
AXRole: `AXGroup`
AXSubrole: `(nil)`
AXRoleDescription: `"group"`
Comments

`code`

HTML Specification `code`
[[wai-aria-1.2]] `code` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`col`

HTML Specification `col`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`colgroup`

HTML Specification `colgroup`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Role: `ROLE_SYSTEM_GROUPING`
UIA
Control Type: `Group`
Localized Control Type: `"colgroup"`
[[ATK]]
Not mapped
AX
Not mapped
Comments

`data`

HTML Specification `data`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`datalist` (represents pre-defined options for `input` element)

HTML Specification `datalist` (represents pre-defined options for `input` element)
[[wai-aria-1.2]] `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
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments If `datalist` is not linked to a proper `input` element, then `datalist` element is not mapped to accessibility APIs.

`dd`

HTML Specification `dd`
[[wai-aria-1.2]] `definition` role
Computed Role
Use WAI-ARIA mapping
Editorial Note: This value may change upon resolution of ARIA #1662.
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`del`

HTML Specification `del`
[[wai-aria-1.2]] `deletion` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`details`

HTML Specification `details`
[[wai-aria-1.2]] `group` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
Localized Control Type: `"details"`
[[ATK]]
Use WAI-ARIA mapping
Relations: `"ATK_RELATION_DETAILS_FOR"`
AX
Use WAI-ARIA mapping
Comments

`dfn`

HTML Specification `dfn`
[[wai-aria-1.2]] `term` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`dialog`

HTML Specification `dialog`
[[wai-aria-1.2]] `dialog` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments See also the `dialog` element's `open` attribute.

`dir` (obsolete)

HTML Specification `dir`
[[wai-aria-1.2]] `list` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments The `dir` element is marked as obsolete in HTML, and is not to be used by authors.

`div`

HTML Specification `div`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`dl`

HTML Specification `dl`
[[wai-aria-1.2]] `list` role
Computed Role
list
Editorial Note: This value may change upon resolution of ARIA #1662.
MSAA + IAccessible2
Role: `ROLE_SYSTEM_LIST`
States: `STATE_SYSTEM_READONLY`
UIA
Control Type: `List`
[[ATK]]
Role: `ATK_ROLE_DESCRIPTION_LIST`
AX
AXRole: `AXList`
AXSubrole: `AXDefinitionList`
AXRoleDescription: `"definition list"`
Comments

`dt`

HTML Specification `dt`
[[wai-aria-1.2]] `term` role
Computed Role
Use WAI-ARIA mapping
Editorial Note: This value may change upon resolution of ARIA #1662.
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`em`

HTML Specification `em`
[[wai-aria-1.2]] `emphasis` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`embed`

HTML Specification `embed`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-embed`
MSAA + IAccessible2
Roles: `ROLE_SYSTEM_CLIENT`; `IA2_ROLE_EMBEDDED_OBJECT`
States: `STATE_SYSTEM_UNAVAILABLE` for windowless plugin
UIA
Control Type: `Pane`
[[ATK]]
Role: `ATK_ROLE_EMBEDDED`
AX Depends on format of data file
Comments

`fieldset`

HTML Specification `fieldset`
[[wai-aria-1.2]] `group` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Role: Use WAI-ARIA mapping
Relations: `IA2_RELATION_LABELLED_BY` with the first instance of a rendered child `legend` element
UIA
Role: Use WAI-ARIA mapping
[[ATK]]
Role: Use WAI-ARIA mapping
Relations: `ATK_RELATION_LABELLED_BY` with first instance of a rendered child `legend` element
AX
Role: Use WAI-ARIA mapping
AXSubrole: `AXFieldset`
AXDescription: value from the first instance of a rendered child `legend` element
Comments

If a `legend` element is [=element/hidden=] from the accessibility tree, then it will not provide an accessible name to its parent `fieldset` element.

`figcaption`

HTML Specification `figcaption`
[[wai-aria-1.2]] `caption` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Role: Use WAI-ARIA mapping
UIA
Role: Use WAI-ARIA mapping
[[ATK]]
Role: Use WAI-ARIA mapping
AX
Role: Use WAI-ARIA mapping
Comments

`figure`

HTML Specification `figure`
[[wai-aria-1.2]] `figure` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Role: Use WAI-ARIA mapping
UIA
Role: Use WAI-ARIA mapping
[[ATK]]
Role: Use WAI-ARIA mapping
AX
AXRole: Use WAI-ARIA mapping
Comments
HTML Specification `footer` (scoped to the `body` element)
[[wai-aria-1.2]] `contentinfo` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments
HTML Specification `footer` (scoped to the `main` element, or a sectioning content element)
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
Editorial Note: This value may change upon resolution of ARIA #1915.
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Control Type: `Group`
Localized Control Type: `"footer"`
[[ATK]]
Role: `ATK_ROLE_FOOTER`
AX
Use WAI-ARIA mapping
Comments If a `footer` is not scoped to the `body` element, do not expose the element as a `contentinfo` landmark.

`form`

HTML Specification `form`
[[wai-aria-1.2]] `form` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
If a `form` has no accessible name:
Role: `ATK_ROLE_FORM`
AX
Use WAI-ARIA mapping
Comments If a `form` has no accessible name, do not expose the element as a landmark.

form-associated custom element

HTML Specification form-associated custom element
[[wai-aria-1.2]] If the author assigned a conforming ARIA role using the `role` attribute, map to that role. Otherwise, the `generic` role.
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`h1`, `h2`, `h3`, `h4`, `h5`, and `h6`

HTML Specification `h1`, `h2`, `h3`, `h4`, `h5`, and `h6`
[[wai-aria-1.2]] `heading` role, with the `aria-level` property set to the number in the element's tag name.
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`head`

HTML Specification `head`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not Mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`header` (scoped to the `body` element)

HTML Specification `header` (scoped to the `body` element)
[[wai-aria-1.2]] `banner` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`header` (scoped to the `main` element, or a sectioning content element)

HTML Specification `header` (scoped to the `main` element, or a sectioning content element)
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
Editorial Note: This value may change upon resolution of ARIA #1915.
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Control Type: `Group`
Localized Control Type: `"header"`
[[ATK]]
Role: `ATK_ROLE_HEADER`
AX
Use WAI-ARIA mapping
Comments If a `header` is not scoped to the `body` element, do not expose the element as a `banner` landmark.

`hgroup`

HTML Specification `hgroup`
[[wai-aria-1.2]] `group` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments If an `hgroup` contains multiple heading elements, then the user agent MAY treat the heading element with the highest priority level as the sole heading of the `hgroup`. The user agent MAY expose all other heading elements as if they were `p` elements. See `paragraph` role on Core AAM.

`hr`

HTML Specification `hr`
[[wai-aria-1.2]] `separator` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

If an `hr` element is a descendant of a `select` element, user agents MAY expose the element with a role of `none`.

`html`

HTML Specification `html`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

User agents MUST ignore the `aria-hidden` attribute if specified on the `html` element.

The `document` role of a web page is not exposed by the `html` element, but rather from a parent `document node` created by the user agent.

`i`

HTML Specification `i`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments Exposed by platform specific italic text styles.

`iframe`

HTML Specification `iframe`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-iframe`
MSAA + IAccessible2
Role: `IA2_ROLE_INTERNAL_FRAME`
UIA
Control Type: `Pane`
[[ATK]]
Role: `ATK_ROLE_INTERNAL_FRAME`
AX
Not mapped
Comments

`img`

HTML Specification `img`
[[wai-aria-1.2]] `image` or `img` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

ARIA 1.3 adds the `image` role as the preferred synonym to the ARIA 1.0 `img` role. The expected computed role for named `img` elements is now "image".

`img` (`alt` attribute value, when trimmed of [=ascii whitespace|whitespace=], is the empty string, i.e., `alt=""`, `alt=" "`, or `alt` with no value in the markup)

HTML Specification `img` (`alt` attribute value, when trimmed of [=ascii whitespace|whitespace=], is the empty string, i.e., `alt=""`, `alt=" "`, or `alt` with no value in the markup)
[[wai-aria-1.2]]
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

If an `img` has an empty `alt`, but has been provided an accessible name via another valid naming mechanism per the naming steps of this specification, user agents will expose the element with its implicit `image` role.

`input` (`type` attribute in the Button state)

HTML Specification `input` (`type` attribute in the Button state)
[[wai-aria-1.2]] `button` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Checkbox state)

HTML Specification `input` (`type` attribute in the Checkbox state)
[[wai-aria-1.2]] `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
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Color state)

HTML Specification `input` (`type` attribute in the Color state)
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-input-color`
MSAA + IAccessible2
If implemented as a textbox:
Roles: `ROLE_SYSTEM_TEXT`
If implemented as a color picker:
Roles: `IA2_ROLE_COLOR_CHOOSER`
UIA
If implemented as a textbox:
Control Type: `Edit`
Localized Control Type: "edit"
If implemented as a color picker:
Control Type: `button`
Localized Control Type: "color picker"
[[ATK]]
If implemented as a button, use WAI-ARIA mapping for `button`.
If implemented as a textbox, use WAI-ARIA mapping for `textbox`.
AX
If implemented as a textbox:
AXRole: `AXTextField`
AXSubrole: `(nil)`
AXRoleDescription: `"text field"`
If implemented as a color picker:
AXRole: `AXColorWell`
AXSubrole: `(nil)`
AXRoleDescription: `"color well"`
Comments
If implemented as a color picker, any UI controls presented for selecting a color are exposed in the accessibility tree, associated with the `input` element, and mapped as appropriate for the type of control (e.g., button or slider).

`input` (`type` attribute in the Date state)

HTML Specification `input` (`type` attribute in the Date state)
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-input-date`
MSAA + IAccessible2
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`
UIA
Depends on UI design of implementation. The UI in Windows 10 Edge, for example, is a composite of multiple spinners.
[[ATK]]
Role: `ATK_ROLE_CALENDAR`
AX
AXRole: `AXDateField`
AXSubrole: `(nil)`
AXRoleDescription: `"date field"`
Comments

`input` (`type` attribute in the Local Date and Time state)

HTML Specification `input` (`type` attribute in the Local Date and Time state)
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-input-datetime-local`
MSAA + IAccessible2
Role: `IA2_ROLE_DATE_EDITOR`
UIA
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composite of multiple spinners.
[[ATK]]
Role: `ATK_ROLE_CALENDAR`
AX
AXRole: `AXTextField`
AXSubrole: `(nil)`
AXRoleDescription: `"text field"`
Comments

`input` (`type` attribute in the E-mail state with no suggestions source element)

HTML Specification `input` (`type` attribute in the E-mail state with no suggestions source element)
[[wai-aria-1.2]] `textbox` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
Object attributes: `text-input-type:email`
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the File Upload state)

HTML Specification `input` (`type` attribute in the File Upload state)
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-input-file`
MSAA + IAccessible2
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.
UIA
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"`
[[ATK]]
Role: `ATK_ROLE_STATIC`
Children: `ATK_ROLE_PUSH_BUTTON` when pressed `ATK_ROLE_FILE_CHOOSER` dialog shown
AX
AXRole: `AXButton`
AXSubrole: `AXFileUploadButton`
AXRoleDescription: `file upload button`
Comments

`input` (`type` attribute in the Hidden state)

HTML Specification `input` (`type` attribute in the Hidden state)
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`input` (`type` attribute in the Image Button state)

HTML Specification `input` (`type` attribute in the Image Button state)
[[wai-aria-1.2]] `button` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Month state)

HTML Specification `input` (`type` attribute in the Month state)
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-input-month`
MSAA + IAccessible2
Role: `IA2_ROLE_DATE_EDITOR`
UIA
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composite of multiple spinners.
[[ATK]]
Role: `ATK_ROLE_DATE_EDITOR`
AX
AXRole: `AXTextField`
AXSubrole: `(nil)`
AXRoleDescription: `"text field"`
Comments

`input` (`type` attribute in the Number state)

HTML Specification `input` (`type` attribute in the Number state)
[[wai-aria-1.2]] `spinbutton` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
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`
UIA
Use WAI-ARIA mapping
[[ATK]]
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`
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Password state)

HTML Specification `input` (`type` attribute in the Password state)
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-input-password`
MSAA + IAccessible2
Role: `ROLE_SYSTEM_TEXT`
States: `STATE_SYSTEM_PROTECTED`; `IA2_STATE_SINGLE_LINE`; `STATE_SYSTEM_READONLY` if readonly, otherwise `IA2_STATE_EDITABLE`
UIA
Control Type: `Edit`
Other properties: `isPassword=true`
[[ATK]]
Role: `ATK_ROLE_PASSWORD_TEXT`
States: `ATK_STATE_SINGLE_LINE`; `ATK_STATE_READ_ONLY` if readonly, otherwise `ATK_STATE_EDITABLE`
AX
AXRole: `AXTextField`
AXSubrole: `AXSecureTextField`
AXRoleDescription: `"secure text field"`
Comments

`input` (`type` attribute in the Radio Button state)

HTML Specification `input` (`type` attribute in the Radio Button state)
[[wai-aria-1.2]] `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.
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Range state)

HTML Specification `input` (`type` attribute in the Range state)
[[wai-aria-1.2]] `slider` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Reset Button state)

HTML Specification `input` (`type` attribute in the Reset Button state)
[[wai-aria-1.2]] `button` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments
HTML Specification `input` (`type` attribute in the Search state with no suggestions source element)
[[wai-aria-1.2]] `searchbox` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Submit Button state)

HTML Specification `input` (`type` attribute in the Submit Button state)
[[wai-aria-1.2]] `button` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Telephone state with no suggestions source element)

HTML Specification `input` (`type` attribute in the Telephone state with no suggestions source element)
[[wai-aria-1.2]] `textbox` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
Object attributes: `text-input-type:telephone`
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Text state with no suggestions source element)

HTML Specification `input` (`type` attribute in the Text state with no suggestions source element)
[[wai-aria-1.2]] `textbox` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element)

HTML Specification `input` (`type` attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element)
[[wai-aria-1.2]] `combobox` role, with the `aria-controls` property set to the same value as the `list` attribute
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
Object attributes: `text-input-type:``as per input type`
UIA
Use WAI-ARIA mapping
Other properties: `ControllerFor` points to the suggestions source element
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Time state)

HTML Specification `input` (`type` attribute in the Time state)
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-input-time`
MSAA + IAccessible2
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`
UIA
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composite of multiple spinners.
[[ATK]]

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.

AX
AXRole: `AXTimeField`
AXSubrole: `(nil)`
AXRoleDescription: `"time field"`
Comments

`input` (`type` attribute in the URL state with no suggestions source element)

HTML Specification `input` (`type` attribute in the URL state with no suggestions source element)
[[wai-aria-1.2]] `textbox` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
Object attributes: `text-input-type:url`
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`input` (`type` attribute in the Week state)

HTML Specification `input` (`type` attribute in the Week state)
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-input-week`
MSAA + IAccessible2
Role: `IA2_ROLE_DATE_EDITOR`
Object attributes: `text-input-type:week`
UIA
Depends on UI design of implementation. The UI in Windows 10 Edge, for Example, is a composite of multiple spinners.
[[ATK]]
Role: `ATK_ROLE_CALENDAR`
AX
AXRole: `AXTextField`
AXSubrole: `(nil)`
AXRoleDescription: `"text field"`
Comments

`ins`

HTML Specification `ins`
[[wai-aria-1.2]] `insertion` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`kbd`

HTML Specification `kbd`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-kbd`
MSAA + IAccessible2
No accessible object.
Text attributes: `font-family:monospace` on the text container
UIA
No accessible object. Styles used are exposed by UIA text attribute identifiers of the `TextRange` Control Pattern implemented on a parent accessible object.
[[ATK]]
No accessible object. Mapped into "font-family:monospace" text attribute on its text container.
AX
AXRole: `AXGroup`
AXSubrole: `(nil)`
AXRoleDescription: `"group"`
Comments

`label`

HTML Specification `label`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-label`
MSAA + IAccessible2
Roles: `ROLE_SYSTEM_STATICTEXT`; `IA2_ROLE_LABEL`
Relations: `IA2_RELATION_LABEL_FOR` with a labelable element that is child to the `label` or referred to by the `label` element's `for` attribute. The associated labelable element has `IA2_RELATION_LABELLED_BY` pointing to the `label`.
UIA
Control Type: `Group`
Relations:
When the `label` element contains a labelable element, the `LabeledBy` property for the element points to the UIA element for the `label` element.
When the `label` element has a `for` attribute referencing a labelable element, the `LabeledBy` property for the referenced element points to the UIA element for the `label` element.
[[ATK]]
Role: `ATK_ROLE_LABEL`
Relations: `ATK_RELATION_LABEL_FOR` for a child labelable element or labelable element referred by `for` attribute. Note, related labelable element provides `ATK_RELATION_LABELLED_BY` pointing to the `label`.
AX
AXRole: `AXGroup`
AXSubrole: `(nil)`
AXRoleDescription: `"group"`
Comments

If a `label` element is [=element/hidden=] from the accessibility tree, then it will not provide an accessible name to the labelable element it is associated with.

`legend`

HTML Specification `legend`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-legend`
MSAA + IAccessible2
Roles: `ROLE_SYSTEM_STATICTEXT`; `IA2_ROLE_LABEL`
Relations: `IA2_RELATION_LABEL_FOR` with the parent `fieldset`
UIA
Control Type: `Text`
Other properties: The `LabeledBy` property for the parent `fieldset` points to the UIA element for the `legend` element.
[[ATK]]
Role: `ATK_ROLE_LABEL`
Relations: `ATK_RELATION_LABEL_FOR` with parent `fieldset` element
AX
AXRole: `AXGroup`
AXSubrole: `(nil)`
AXRoleDescription: `"group"`
Comments

`li`

HTML Specification `li`
[[wai-aria-1.2]] `listitem` role with `aria-setsize` value reflecting number of `li` elements within the parent `ol`, `menu` or `ul` and `aria-posinset` value reflecting the `li` elements position within the set.
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments If `li` element is not a child of `ol` , `menu` or `ul`, or if the containing list element is no longer exposed with a `list` role, then expose the `li` element with a `generic` role.
HTML Specification `link`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`main`

HTML Specification `main`
[[wai-aria-1.2]] `main` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`map`

HTML Specification `map`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-map`
MSAA + IAccessible2
Not mapped if used as an image map. Otherwise,
Role: `IA2_ROLE_TEXT_FRAME`
UIA
Not mapped
[[ATK]]
Not mapped if used as an image map, otherwise:
Role: `ATK_ROLE_STATIC`
AX
Role: `AXImageMap` if used as an image map. Otherwise,
Role: `AXGroup` if associated with an `img` with no `alt`. Otherwise,
not mapped if not associated with an `img`.
Comments

`mark`

HTML Specification `mark`
[[wai-aria-1.2]] `mark` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`math`

HTML Specification `math`
[[wai-aria-1.2]] See comments
Computed Role
See comments
MSAA + IAccessible2 See comments
UIA See comments
[[ATK]] See comments
AX See comments
Comments Mapping for `math` is defined by MathML AAM 1.0.

`menu`

HTML Specification `menu`
[[wai-aria-1.2]] `list` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments
The `menu` element is a semantic alternative to the `ul` element. It has no implemented mappings or behavior that reflect the semantics of the ARIA `menu` role.

`meta`

HTML Specification `meta`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`meter`

HTML Specification `meter`
[[wai-aria-1.2]] `meter` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`nav`

HTML Specification `nav`
[[wai-aria-1.2]] `navigation` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`noscript`

HTML Specification `noscript`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`object`

HTML Specification `object`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-object`
MSAA + IAccessible2
Depends on format of data file. If it contains a plugin then,
Role: `IA2_ROLE_EMBEDDED_OBJECT`
States: `STATE_SYSTEM_UNAVAILABLE` for windowless plugin
UIA
Depends on format of data file.
[[ATK]]
Depends on format of data file. If contains a plugin then
Role: `ATK_ROLE_EMBEDDED`
AX Depends on format of data file.
Comments

`ol`

HTML Specification `ol`
[[wai-aria-1.2]] `list` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`optgroup`

HTML Specification `optgroup`
[[wai-aria-1.2]] `group` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`option` (in a list of options or represents a suggestion in a `datalist`)

HTML Specification `option` (in a list of options or represents a suggestion in a `datalist`)
[[wai-aria-1.2]] `option` role, with the `aria-selected` state set to "true" if the element's selectedness is true, or "false" otherwise.
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`output`

HTML Specification `output`
[[wai-aria-1.2]] `status` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
Relations: `IA2_RELATION_LABELLED_BY` with associated `label` element
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
Relations: `ATK_RELATION_LABELLED_BY` with associated `label` element
AX
Use WAI-ARIA mapping
Comments `AXDescription`: value from associated `label` element subtree.
undefined

`p`

HTML Specification `p`
[[wai-aria-1.2]] `paragraph` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`param`

HTML Specification `param`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments `param` is obsolete in HTML

`picture`

HTML Specification `picture`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`pre`

HTML Specification `pre`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`progress`

HTML Specification `progress`
[[wai-aria-1.2]] `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
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`q`

HTML Specification `q`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments `::before` and `::after` CSS pseudo content is used by platforms to render the element's quotation marks.

`rp`

HTML Specification `rp`
[[wai-aria-1.2]] No corresponding role
Computed Role
html-rp
MSAA + IAccessible2
No accessible object. No child elements are exposed if `ruby` is supported by the browser.
UIA
No accessible object.
[[ATK]]
No accessible object. No child elements are exposed if `ruby` is supported by the browser.
AX Not mapped
Comments

`rt`

HTML Specification `rt`
[[wai-aria-1.2]] No corresponding role
Computed Role
html-rt
MSAA + IAccessible2
No accessible object. No child elements are exposed if `ruby` is supported by the browser.
UIA
No accessible object.
[[ATK]]
No accessible object.
AX
AXRole: `AXGroup`
AXSubrole: `AXRubyText`
AXRoleDescription: `"group"`
Comments

`ruby`

HTML Specification `ruby`
[[wai-aria-1.2]] No corresponding role
Computed Role
html-ruby
MSAA + IAccessible2
Role: `ROLE_SYSTEM_TEXT`; `IA2_ROLE_TEXT_FRAME`
UIA
Control Type: `Text`
Localized Control Type: `"ruby"`
[[ATK]]
Role: `ATK_ROLE_STATIC`
AX
AXRole: `AXGroup`
AXSubrole: `AXRubyInline`
AXRoleDescription: `"group"`
Comments

`s`

HTML Specification `s`
[[wai-aria-1.2]] `deletion` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`samp`

HTML Specification `samp`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`script`

HTML Specification `script`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments
HTML Specification `search`
[[wai-aria-1.2]] `search` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`section`

HTML Specification `section`
[[wai-aria-1.2]] `region` role if the `section` element has an accessible name. Otherwise, the `generic` role.
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`select` (with a `multiple` attribute or `size` attribute having value greater than `1`)

HTML Specification `select` (with a `multiple` attribute or `size` attribute having value greater than `1`)
[[wai-aria-1.2]] `listbox` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`select` (with NO `multiple` attribute and NO `size` attribute having value greater than `1`)

HTML Specification `select` (with NO `multiple` attribute and NO `size` attribute having value greater than `1`)
[[wai-aria-1.2]] `combobox` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`slot`

HTML Specification `slot`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`small`

HTML Specification `small`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments Exposed by platform specific font size styles.

`source`

HTML Specification `source`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`span`

HTML Specification `span`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`strong`

HTML Specification `strong`
[[wai-aria-1.2]] `strong` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`style`

HTML Specification `style`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments
Note: There are instances where CSS properties can affect what is exposed by accessibility APIs. For instance, `display: none` or `visibility: hidden` will remove an element from the accessibility tree and hide its presence from assistive technologies.

`sub`

HTML Specification `sub`
[[wai-aria-1.2]] `subscript` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`summary`

HTML Specification `summary`
[[wai-aria-1.2]] No corresponding role
Computed Role

If the element is the first child of its type within a parent `details` element: `html-summary`

Otherwise, if it is not the first child of its type of a parent `details` element, or it is not a child of a `details` element: `generic` role

MSAA + IAccessible2
Role: `ROLE_SYSTEM_PUSHBUTTON`
States: `STATE_SYSTEM_EXPANDED` / `STATE_SYSTEM_COLLAPSED`
Actions: `expand` / `collapse`
UIA
Control Type: `Button`
Control Pattern: `ExpandCollapse`
[[ATK]]
Role: `ROLE_TOGGLE_BUTTON`
Relations: `ATK_RELATION_DETAILS`
AX
AXRole: `AXDisclosureTriangle`
AXSubrole: `(nil)`
AXRoleDescription: `"disclosure triangle"`
Comments If a `summary` element is not a child of a `details` element, or it is not the first `summary` element of a parent `details`, then user agents MUST expose the `summary` element with a `generic` role.

`sup`

HTML Specification `sup`
[[wai-aria-1.2]] `superscript` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`svg`

HTML Specification `svg`
[[wai-aria-1.2]] See comments
Computed Role
See comments
MSAA + IAccessible2 See comments
UIA See comments
[[ATK]] See comments
AX See comments
Comments Mapping for `svg` is defined by [[[svg-aam-1.0]]]. See also Graphics Accessibility API Role Mappings

`table`

HTML Specification `table`
[[wai-aria-1.2]] `table` role
Computed Role

To compute the role given table element `element`:

  1. If element is in not being rendered, return `table`.

    Tables which are not rendered are unlikely to be used for layout, but could be present to supplement otherwise inaccessible graphics.

  2. If element is editable, return `table`.

    Tables which are in an editable state need to act as data tables to allow for rich text editors to create and edit tables which otherwise might have insufficient rows or columns to be considered a table.

  3. If element has a `datatable` attribute whose value is `"0"`, return `table`

    This is a nonstandard attribute used to force tables to be as such. It should be avoided, as `role=table` should be sufficient.

  4. If element has a `summary` attribute whose value is not the empty string, return `table`.

    The `summary` attribute is deprecated, this is here for completeness & web compatibility.

  5. If element has a `rules` attribute whose value is not the empty string, return `table`.

    The `rules` attribute is deprecated, this is here for completeness & web compatibility.

  6. If element has a `aria-rowcount` attribute whose value a positive integer greater than 0, return `table`.

  7. If element has a `aria-colcount` attribute whose value a positive integer greater than 0, return `table`.

  8. Let row_count be 0.
  9. Let column_count be 0.
  10. Let cell_count be 0.
  11. Let cells_with_borders be 0.
  12. Let cells_with_top_border be 0.
  13. Let cells_with_right_border be 0.
  14. Let cells_with_bottom_border be 0.
  15. Let cells_with_left_border be 0.
  16. Let cells_with_alternate_background be 0.
  17. Let alternating_row_colors be a new list.
  18. Let alternating_row_color_count be 0.
  19. Let alternating_cell_color_count be 0.
  20. Let prev_row_background be null.
  21. Let table_background be the result of getting the computed value of the background-color property on element.
  22. For each child node table_child of element:

    1. If table_child is a `thead` element, return `table`.

    2. If table_child is a `tfoot` element, return `table`.

    3. If table_child is a `caption` element, return `table`.

    4. If table_child is a `col` element, return `table`.

    5. If table_child is a `colgroup` element, return `table`.

    6. If table_child is a `tbody` element:

      1. For each child node body_child of table_child:

        1. If body_child is a `tr` element:

          1. If row_count is equal to alternating_row_color_count:.

            1. Let row_background be the result of getting the computed value of the background-color property on element.

            2. If row_background is not null:

              1. If prev_row_background is not null, and prev_row_background is not equal to row_background, return `table`.

              2. Append row_background to the list alternating_row_colors.

              3. Increment alternating_row_color_count.

              4. Set prev_row_color to row_color

          2. Increment row_count.

          3. If body_child has a role attribute whose value does not include "row", return `html-layout-table`

          4. If row_count is greater than or equal to 20, and column_count is greater than or equal to 2, return `table`.

            This and the following condition are exclusive, while the condition after the following condition is mutually exclusive with these two. The standard should pick one or the other.

          5. If column_count is greater than or equal to 20, and row_count is greater than or equal to 2, return `table`.

            This and the prior condition are exclusive, while the following condition is mutually exclusive with these two. The standard should pick one or the other.

          6. If row_count is greater than or equal to 20, return `table`.

            This and the prior two condition are mutually exclusive. The standard should pick one or the other.

          7. For each child node row_child of body_child:

            1. If row_child is a `th` element, return `table`.

            2. If row_child is a `td` element:

              1. If cell_count is 0 and row_child is in not being rendered, return `table`.

                Tables whose first cell is not being rendered are likely to be data tables, as layout tables will typically use available cells.

              2. If row_child has a `headers` attribute whose value is not empty, return `table`.

              3. If row_child has a `scope` attribute whose value is not empty, return `table`.

              4. If row_child has a `abbr` attribute whose value is not empty, return `table`.

              5. If row_child has a `axis` attribute whose value is not empty, return `table`.

              6. If row_child has a `role` attribute whose value is "gridcell", "cell", "columnheader" or "rowheader", return `table`.

              7. If row_child has a `role` attribute whose value is NOT one of "gridcell", "cell", "columnheader" or "rowheader", return `html-layout-table`.

              8. If the result of getting the computed value of the empty-cells property is equal to `hide`, return `table`.

              9. If row_count is 1, increment column_count.

              10. If column_count is greater than 4, return `table`.

              11. Increment cell_count.

              12. Let border_top be the result of getting the computed value of the border-top property on row_child.

              13. Let border_right be the result of getting the computed value of the border-right property on row_child.

              14. Let border_bottom be the result of getting the computed value of the border-bottom property on row_child.

              15. Let border_left be the result of getting the computed value of the border-left property on row_child.

              16. If border_top is not null return `table`.

              17. If border_right is not null return `table`.

              18. If border_bottom is not null return `table`.

              19. If border_left is not null return `table`.

              20. Let has_block_borders be true if border_top and border_bottom are both not null, otherwise false.

              21. Let has_inline_borders be true if border_left and border_right are both not null, otherwise false.

              22. If either has_inline_borders or has_block_borders are true, increment cells_with_borders.

              23. If cells_with_borders is greater than 10, return `table`.

              24. If border_top is not null increment cells_with_top_border.

              25. If border_right is not null increment cells_with_right_border.

              26. If border_bottom is not null increment cells_with_bottom_border.

              27. If border_left is not null increment cells_with_left_border.

              28. Let cell_background be the result of getting the computed value of the background-color property on row_child.

              29. If cell_background is not null, and is not equal to table_background, increment alternating_cell_color_count.

              30. If alternating_cell_color_count is greater than 10, return `table`.

  23. If row_count is less than 2, return `html-layout-table`.

  24. If column_count is less than 2, return `html-layout-table`.

  25. If cell_count is less than 2, return `html-layout-table`.

  26. Let minimum_styled_borders by the result of dividing cell_count by 2.

  27. If the cells_with_borders is greater than or equal to minimum_styled_borders, return `table`.

  28. If the cells_with_top_border is greater than or equal to minimum_styled_borders, return `table`.

  29. If the cells_with_right_border is greater than or equal to minimum_styled_borders, return `table`.

  30. If the cells_with_bottom_border is greater than or equal to minimum_styled_borders, return `table`.

  31. If the cells_with_left_border is greater than or equal to minimum_styled_borders, return `table`.

  32. If the result of getting the first element that is a descendants of element, whose local name is one of `embed`, `object`, `iframe`, is not null, return `html-layout-table`.

  33. Return `html-layout-table`.

MSAA + IAccessible2
Use WAI-ARIA mapping
Relations: `IA2_RELATION_LABELLED_BY` with first instance of a rendered child `caption` element
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
Relations: `ATK_RELATION_LABELLED_BY` with first instance of a rendered child `caption` element
AX
Use WAI-ARIA mapping
AXDescription: value from the first instance of a rendered child `caption` element
Comments

`tbody`

HTML Specification `tbody`
[[wai-aria-1.2]] `rowgroup` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2 Use WAI-ARIA mapping
UIA Use WAI-ARIA mapping
[[ATK]] Use WAI-ARIA mapping
AX Use WAI-ARIA mapping
Comments

`td` (ancestor `table` element has `table` role)

HTML Specification `td` (ancestor `table` element has `table` role)
[[wai-aria-1.2]] `cell` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`td` (ancestor `table` element has `grid` or `treegrid` role)

HTML Specification `td` (ancestor `table` element has `grid` or `treegrid` role)
[[wai-aria-1.2]] `gridcell` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`template`

HTML Specification `template`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`textarea`

HTML Specification `textarea`
[[wai-aria-1.2]] `textbox` role, with the `aria-multiline` property set to "true"
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`tfoot`

HTML Specification `tfoot`
[[wai-aria-1.2]] `rowgroup` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`th` (is not a column header, row header, column group header or row group header, and ancestor `table` element has `table` role)

HTML Specification `th` (is not a column header, row header, column group header or row group header, and ancestor `table` element has `table` role)
[[wai-aria-1.2]] `cell` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`th` (is not a column header, row header, column group header or row group header, and ancestor `table` element has `grid` or `treegrid` role)

HTML Specification `th` (is not a column header, row header, column group header or row group header, and ancestor `table` element has `grid` or `treegrid` role)
[[wai-aria-1.2]] `gridcell` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`th` (is a column header or column group header)

HTML Specification `th` (is a column header or column group header)
[[wai-aria-1.2]] `columnheader` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`th` (is a row header or row group header)

HTML Specification `th` (is a row header or row group header)
[[wai-aria-1.2]] `rowheader` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`thead`

HTML Specification `thead`
[[wai-aria-1.2]] `rowgroup` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`time`

HTML Specification `time`
[[wai-aria-1.2]] `time` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`title`

HTML Specification `title`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments A `title` element provides the accessible name for its document.

`tr`

HTML Specification `tr`
[[wai-aria-1.2]] `row` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`track`

HTML Specification `track`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`u`

HTML Specification `u`
[[wai-aria-1.2]] `generic` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments Exposed by platform specific underline text styles.

`ul`

HTML Specification `ul`
[[wai-aria-1.2]] `list` role
Computed Role
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`var`

HTML Specification `var`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-var`
MSAA + IAccessible2
No accessible object. Styles used are mapped to text attributes on its text container.
UIA
No accessible object. Styles used are exposed by UIA text attribute identifiers of the `TextRange` Control Pattern implemented on a parent accessible object.
[[ATK]]
No accessible object. Styles used are mapped to text attributes on its text container.
AX
AXRole: `AXGroup`
AXSubrole: `(nil)`
AXRoleDescription: `"group"`
Comments

`video`

HTML Specification `video`
[[wai-aria-1.2]] No corresponding role
Computed Role
`html-video`
MSAA + IAccessible2
Role: `ROLE_SYSTEM_GROUPING`
UIA
Control Type: `Group`
Localized Control Type: `"group"`
Note: If the `controls` attribute is present, UI controls (e.g., play, volume) are exposed as children of the `video` element in the accessibility tree, and mapped as appropriate for the type of control (e.g., `button` or `slider`).
User agents MAY include the following in the accessibility tree and mark them as hidden or off-screen:
  • Loading messages or error messages
  • UI controls that are not currently displayed
[[ATK]]
Role: `ATK_ROLE_VIDEO`
AX
AXRole: `AXGroup`
AXSubrole: `AXVideo`
AXRoleDescription: `"video playback"`
Note: If the `controls` attribute is present, UI controls (e.g., play, volume) are exposed as descendants of an accessible object with a role of `toolbar`, and mapped as appropriate for the type of control (e.g., `button` or `slider`).
Comments

`wbr`

HTML Specification `wbr`
[[wai-aria-1.2]] No corresponding role
Computed Role
Not mapped
MSAA + IAccessible2
If a line break is added, expose it with `IAccessibleText` on the text container
UIA
Not mapped
[[ATK]]
A line break if added is exposed via Text interface on its text container
AX
AXRole: `AXGroup`
AXSubrole: `(nil)`
AXRoleDescription: `"group"`
Comments

HTML Attribute State and Property Mappings

`abbr`

HTML Specification `abbr`
Element(s) `th`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Object attributes: "abbr" until child `abbr` element is provided
UIA
Not mapped
[[ATK]]
Object attributes: "abbr" until child `abbr` element is provided
AX `AXDescription: <value>`
Comments

`accept`

HTML Specification `accept`
Element(s) `input`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`accept-charset`

HTML Specification `accept-charset`
Element(s) `form`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`accesskey`

HTML Specification `accesskey`
Element(s) `HTML elements`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
A key binding accessible by `accKeyboardShortcut` and `IAccessibleAction::keyBinding`
UIA
Properties: `AccessKey: <value>`
[[ATK]]
`atk_action_get_keybinding`
AX `AXAccessKey: <value>`
Comments

`action`

HTML Specification `action`
Element(s) `form`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`allow`

HTML Specification `allow`
Element(s) `iframe`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`allowfullscreen`

HTML Specification `allowfullscreen`
Element(s) `iframe`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`alt`

HTML Specification `alt`
Element(s) `area`; `img`; `input`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2 Used for accessible name, exposed via `accName`
UIA
Properties: `Name`
[[ATK]]
Used for accessible name, exposed via `atk_object_get_name`
AX `AXDescription: <value>`
Comments

`as`

HTML Specification `as`
Element(s) `link`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`async`

HTML Specification `async`
Element(s) `script`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`autocapitalize`

HTML Specification `autocapitalize`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`autocomplete`

HTML Specification `autocomplete`
Element(s) `form`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

Note: the `aria-autocomplete` attribute and the HTML `autocomplete` attribute have disparate features. The `aria-autocomplete` attribute is not supported on the HTML `form` element or elements with an explicit ARIA `form` role.

When used on a `form` element, the `autocomplete` attribute identifies whether form controls owned by the form will have their autofill field name set to "`on`" or "`off`" by default. See `autocomplete` for `input`, `select`, `textarea` for control mappings.

`autocomplete`

HTML Specification `autocomplete`
Element(s) `input`, `select` and `textarea`
[[WAI-ARIA-1.2]]

If specified `autocomplete=off` or the control is owned by a `form` with `autocomplete=off` - `aria-autocomplete=none`

Otherwise, `aria-autocomplete`

Note: the `aria-autocomplete` attribute and the HTML `autocomplete` attribute have disparate features, but they overlap as mechanisms for user agents to expose the control's support for autocompletion.

MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

If the form control has been specified as both `autocomplete=off` (whether due to explicit use of the attribute, or from inheriting the `off` state from a parent `form` element with `autocomplete=off`) and with an `aria-autocomplete` attribute with a valid value, user agents MUST expose only the `aria-autocomplete` attribute value.

Otherwise, if the form control has an `autocomplete` attribute specified with a valid token value, and an `aria-autocomplete` attribute, then user agents MUST expose only the `autocomplete` attribute value.

`autofocus`

HTML Specification `autofocus`
Element(s) HTML elements
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments Provides a minimum role of `group`.

`autoplay`

HTML Specification `autoplay`
Element(s) `audio` and `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`blocking`

HTML Specification `blocking`
Element(s) `link`; `script`; `style`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`charset`

HTML Specification `charset`
Element(s) `meta`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`checked` (if present)

HTML Specification `checked` (if present)
Element(s) `input` `type=checkbox` or `type=radio`
[[WAI-ARIA-1.2]] `aria-checked`="true"
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA Property: `Toggle.ToggleState: On (1)`
[[ATK]]
Use WAI-ARIA mapping
AX `AXValue: 1`
Comments If an `input` element in the `checkbox` or `radio` state 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)

HTML Specification `checked` (if absent)
Element(s) `input` `type=checkbox` or `type=radio`
[[WAI-ARIA-1.2]] `aria-checked`="false"
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA Property: `Toggle.ToggleState: Off (0)`
[[ATK]]
Use WAI-ARIA mapping
AX `AXValue: 0`
Comments An `input` element in the `checkbox` or `radio` state without a `checked` attribute has an implicit "false" state. User Agents MUST ignore an `aria-checked` attribute which conflicts with the native element's implicit checked state.

`cite`

HTML Specification `cite`
Element(s) `blockquote`; `del` and `ins`; `q`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX `AXURL: <value>`
Comments

`class`

HTML Specification `class`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Object attributes: `class: <value>`
UIA
Property: `UIA_ClassNamePropertyId`
[[ATK]]
Object attributes: `class: <value>`
AX
Property: `AXDOMClassList`
Comments

`color`

HTML Specification `color`
Element(s) `link`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`cols`

HTML Specification `cols`
Element(s) `textarea`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX `AXRangeForLine: <value>`
Comments
Not mapped

`colspan`

HTML Specification `colspan`
Element(s) `td` and `th`
[[WAI-ARIA-1.2]] `aria-colspan`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`command` (in the Toggle, Show, and Hide popover states)

HTML Specification `command`
Element(s) `button` (`command` in the Toggle popover state Show popover state and Hide popover state)
[[WAI-ARIA-1.2]]

If the associated element is displayed as a popover: `aria-expanded=true`

If the associated element is hidden: `aria-expanded=false`

If the associated element is an accessibility ancestor of the element with the `command` attribute or is not present in the DOM: `aria-expanded=undefined`

If the associated element is not a valid `popover` element: no `aria-expanded` mapping.

MSAA + IAccessible2
Use WAI-ARIA mapping
Object attributes: `details-roles:popover`
UIA
Use WAI-ARIA mapping
ATK
Use WAI-ARIA mapping
Object attributes: `details-roles:popover`
AX
Use WAI-ARIA mapping
Comments

User Agents MUST expose an `aria-details` relationship with the associated element (identified via the specified `commandfor` attribute) except under the following conditions:

  • The associated popover element is the next immediate accessibility sibling to the invoking element,
  • The element is a descendant of the `popover` it is associated with.

A button that represents a submit button or is in the reset state with a [=button/form owner=] cannot invoke a command.

`command` (in the Close and Show Modal states)

HTML Specification `command`
Element(s) `button` (`command` in the Close state) and Show Modal state)
[[WAI-ARIA-1.2]]
A `command` attribute in the `close` and `show-modal` states provide no additional accessibility mappings to the `button` element.
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
Comments

A button that represents a submit button or is in the reset state with a [=button/form owner=] cannot invoke a command.

`commandfor`

HTML Specification `commandfor`
Element(s) `button`
[[WAI-ARIA-1.2]]
See comments
MSAA + IAccessible2
See comments
UIA
See comments
ATK
See comments
AX
See comments
Comments

The `commandfor` attribute identifies the associated element for the `button` element.

The specified `command` state will determine if a relationship mapping needs to be exposed between the `button` and its programmatically associated element.

`content`

HTML Specification `content`
Element(s) `meta`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`contenteditable`

HTML Specification `contenteditable`
Element(s) HTML elements
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2

If the element is in the editable state, the following mappings apply to the element and every nested accessible object with the exception of those which have been specified in the `false` state.

States: `IA2_STATE_EDITABLE` and `IA2_STATE_MULTI_LINE`
Interfaces: `IAccessibleEditableText`

If the element is in the `false` state: not mapped.

If the element is in the `inherit` state: match the editable state of its parent element.

UIA

If the element is in the editable state, the following mappings apply to the element and every nested accessible object with the exception of those which have been specified in the `false` state.

Control Pattern: `TextEdit`
Property: `AriaProperties.multiline:true`

If the element is in the `false` state: not mapped.

If the element is in the `inherit` state: match the editable state of its parent element.

[[ATK]]

If the element is in the editable state, the following mappings apply to the element and every nested accessible object with the exception of those which have been specified in the `false` state.

States: `ATK_STATE_EDITABLE` and `ATK_STATE_MULTI_LINE`
Interfaces: `AtkEditableText`

If the element is in the `false` state: not mapped.

If the element is in the `inherit` state: match the editable state of its parent element.

AX Role: AXTextArea
Use WAI-ARIA mapping
Comments If the element is set to `contenteditable` and `aria-readonly="true"`, User Agents MUST expose only the `contenteditable` state.

`controls`

HTML Specification `controls`
Element(s) `audio` and `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX Controls exposed as `AXToolbar`
Comments

`coords`

HTML Specification `coords`
Element(s) `area`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Defines an accessible object's dimensions (`IAccessible::accLocation`)
UIA
Defines an accessible object's dimensions (`BoundingRectangle`)
[[ATK]]
Defines an accessible object's dimensions, exposed via `atk_component_get_position` and `atk_component_get_size`
AX
Defines an accessible object's dimensions, exposed via `Frame` property
Comments

`crossorigin`

HTML Specification `crossorigin`
Element(s) `audio`; `img`; `link`; `script`; `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`data`

HTML Specification `data`
Element(s) `object`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`datetime`

HTML Specification `datetime`
Element(s) `del` and `ins`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Object attributes: `datetime: <value>`
UIA
Not mapped
[[ATK]]
Object attributes: `datetime: <value>`
AX `AXDateTimeValue: <value>`
Comments

`datetime`

HTML Specification `datetime`
Element(s) `time`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Object attributes: `datetime: <value>`
UIA
Properties: `FullDescription: <value>`
[[ATK]]
Object attributes: `datetime: <value>`
AX `AXDateTimeValue: <value>`
Comments

`decoding`

HTML Specification `decoding`
Element(s) `img`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`default`

HTML Specification `default`
Element(s) `track`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`defer`

HTML Specification `defer`
Element(s) `script`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`dir`

HTML Specification `dir`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Exposed as "writing-mode" text attribute on the text container.
UIA
Exposed by `TextFlowDirections` attribute of the `TextRange` Control Pattern implemented on a parent accessible object.
[[ATK]]
Exposed as "writing-mode" text attribute on the text container.
AX
Not mapped
Comments

`dir`

HTML Specification `dir`
Element(s) `bdo`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Exposed as "writing-mode" text attribute on the text container.
UIA
Exposed by `TextFlowDirections` attribute of the `TextRange` Control Pattern implemented on a parent accessible object.
[[ATK]]
Exposed as "writing-mode" text attribute on the text container.
AX
Not mapped
Comments

`dirname`

HTML Specification `dirname`
Element(s) `input` and `textarea`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`disabled`

HTML Specification `disabled`
Element(s) `button`; `input`; `optgroup`; `option`; `select`; `textarea`; form-associated custom element
[[WAI-ARIA-1.2]] `aria-disabled="true"`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments If the element has both the `disabled` attribute and the `aria-disabled` attribute with a valid value, User Agents MUST expose only the `disabled` attribute value.

`disabled`

HTML Specification `disabled`
Element(s) `fieldset`
[[WAI-ARIA-1.2]] `aria-disabled="true"`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

Form controls within a valid [^legend^] child element of a `fieldset` with a `disabled` attribute do not become disabled.

If the element has both the `disabled` attribute and the `aria-disabled` attribute with a valid value, User Agents MUST expose only the `disabled` attribute value.

HTML Specification `disabled`
Element(s) `link`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2 Not mapped
UIA Not mapped
[[ATK]] Not mapped
AX Not mapped
Comments

`download`

HTML Specification `download`
Element(s) `a` and `area`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`draggable`

HTML Specification `draggable`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Object attributes: draggable:true
UIA
Not mapped
[[ATK]]
Object attributes: draggable:true
AX
Not mapped
Comments Provides a minimum role of `group`.

`enctype`

HTML Specification `enctype`
Element(s) `form`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`enterkeyhint`

HTML Specification `enterkeyhint`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments Modifies the action label (or icon) to present for the enter key on virtual keyboards.

`fetchpriority`

HTML Specification `fetchpriority`
Element(s) `img`; `link`; `script`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`for`

HTML Specification `for`
Element(s) `label`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Relations: `IA2_RELATION_LABEL_FOR` and `IA2_RELATION_LABEL_BY` relations between `label` and referred labelable element
UIA
When the `label` element has a `for` attribute referencing another labelable element, the `LabeledBy` property for the referenced element points to the UIA element for the `label` element.
[[ATK]]
Relations: `ATK_RELATION_LABEL_FOR` and `ATK_RELATION_LABEL_BY` relations between `label` and referred labelable element
AX
Comments

`for`

HTML Specification `for`
Element(s) `output`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Relations: `IA2_RELATION_CONTROLLED_BY` with an element pointed by the attribute. Paired element exposes `IA2_RELATION_CONTROLLER_FOR` relation.
UIA
Not mapped
[[ATK]]
Relations: `ATK_RELATION_CONTROLLED_BY` with an element pointed by the attribute. Paired element exposes `ATK_RELATION_CONTROLLER_FOR` relation.
AX
Not mapped
Comments

`form`

HTML Specification `form`
Element(s) `button`; `fieldset`; `input`; `label`; `object`; `output`; `select`; `textarea`; form-associated custom element
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`formaction`

HTML Specification `formaction`
Element(s) `button`; `input`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`formenctype`

HTML Specification `formenctype`
Element(s) `button`; `input`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`formmethod`

HTML Specification `formmethod`
Element(s) `button`; `input`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`formnovalidate`

HTML Specification `formnovalidate`
Element(s) `button`; `input`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`formtarget`

HTML Specification `formtarget`
Element(s) `button`; `input`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`headers`

HTML Specification `headers`
Element(s) `td`; `th`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Links the cell to its header cells. Exposed via `IAccessibleTableCell::rowHeaderCells` and `IAccessibleTableCell::columnHeaderCells`.
UIA
Links the cell to its header cells. Exposed via `Table.ItemColumnHeaderItems` and `Table.ItemRowHeaderItems`.
[[ATK]]
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`.
AX Expose via `AXColumnHeaderUIElements` and `AXRowHeaderUIElements`
Comments

`height`

HTML Specification `height`
Element(s) `canvas`; `embed`; `iframe`; `img`; `input`; `object`; `source` (in `picture`); `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Defines an accessible object's height (`IAccessible::accLocation`)
UIA
Defines an accessible object's height (`BoundingRectangle`)
[[ATK]]
Defines an accessible object's height (`atk_component_get_size`)
AX
Defines an accessible object's height (`AXSize` property)
Comments

`hidden`

HTML Specification `hidden`
Element(s) HTML elements
[[WAI-ARIA-1.2]] `aria-hidden="true"` if the element retains its user agent default styling of `display: none`. Otherwise, if no other method for hiding the content is used (e.g., `visibility: hidden`) then it is not mapped.
MSAA + IAccessible2 Use WAI-ARIA mapping
UIA Use WAI-ARIA mapping
[[ATK]] Use WAI-ARIA mapping
AX Use WAI-ARIA mapping
Comments

`high`

HTML Specification `high`
Element(s) `meter`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2
Not mapped
UIA `RangeValue.Maximum`
[[ATK]]
Not mapped
AX
Not mapped
Comments

`href`

HTML Specification `href`
Element(s) `a`; `area`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Creates a link accessible object. For details, refer to `a` and `area` element mappings.
UIA 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.
[[ATK]]
Creates a link accessible object. For details, refer to `a` and `area` element mappings.
AX `AXURL: <value>`
Comments
HTML Specification `href`
Element(s) `link`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`hreflang`

HTML Specification `hreflang`
Element(s) `a`; `link`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`http-equiv`

HTML Specification `http-equiv`
Element(s) `meta`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`id`

HTML Specification `id`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Object attributes: `id: <value>`
UIA
Property: `UIA_AutomationIdPropertyId`
[[ATK]]
Object attributes: `id: <value>`
AX
Property: `AXDOMIdentifier`
Comments

`inert`

HTML Specification `inert`
Element(s) HTML elements
[[WAI-ARIA-1.2]] Not Mapped
MSAA + IAccessible2 See comments
UIA See comments
[[ATK]] See comments
AX See comments
Comments

Nodes that are inert are not exposed to an accessibility API.

Note: an inert node can have descendants that are not inert. For example, a modal dialog can escape an inert subtree.

`indeterminate [IDL]`

HTML Specification `indeterminate [IDL]`
Element(s) HTML elements; `input`
[[WAI-ARIA-1.2]] `aria-checked` (state)="mixed"
MSAA + IAccessible2 Use WAI-ARIA mapping
UIA Use WAI-ARIA mapping
[[ATK]] Use WAI-ARIA mapping
AX Use WAI-ARIA mapping
Comments If the element has the `indeterminate [IDL]` set and the `aria-checked` attribute set, User Agents MUST expose only the `indeterminate [IDL]` state.

`ismap`

HTML Specification `ismap`
Element(s) `img`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`itemid`

HTML Specification `itemid`
Element(s) `img`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`itemprop`

HTML Specification `itemprop`
Element(s) `img`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`itemref`

HTML Specification `itemref`
Element(s) `img`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`itemscope`

HTML Specification `itemscope`
Element(s) `img`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`itemtype`

HTML Specification `itemtype`
Element(s) `img`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`kind`

HTML Specification `kind`
Element(s) `track`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2 Not mapped
UIA Not mapped
[[ATK]] Not mapped
AX Not mapped
Comments

`label`

HTML Specification `label`
Element(s) `optgroup`; `option`; `track`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Associates the accessible name
UIA The target element of the `label` attribute has a `LabeledBy` property pointing to the element with the `label` attribute. Participates in name computation.
[[ATK]]
Associates the accessible name
AX `AXTitle`: `<value>`
Comments See Also: Accessible Name and Description: Computation and API Mappings

`lang`

HTML Specification `lang`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Exposed as "language" text attribute on the text container
UIA
The value of the `lang` attribute is exposed as a locale identifier by `Culture` property of the UIA element representing the HTML element, and by `Culture` attribute of the `TextRange` Control Pattern implemented on a parent accessible object.
[[ATK]]
Exposed as "language" text attribute on the text container
AX `AXLanguage: <value>`
Comments

`list`

HTML Specification `list`
Element(s) `input`
[[WAI-ARIA-1.2]] `aria-controls`
MSAA + IAccessible2
`IA2_RELATION_CONTROLLER_FOR` point to the `datalist` element referred to by the IDREF value of the `list` attribute.
UIA
`ControllerFor` point to the `datalist` element referred to by the IDREF value of the `list` attribute.
[[ATK]]
`ATK_RELATION_CONTROLLER_FOR` point to the `datalist` element referred to by the IDREF value of the `list` attribute.
AX
Property: `AXLinkedUIElements`: point to the `datalist` element referred to by the IDREF value of the `list` attribute.
Comments Refer to `datalist` and `input` element mappings.

`loop`

HTML Specification `loop`
Element(s) `audio`; `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`low`

HTML Specification `low`
Element(s) `meter`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2
Not mapped
UIA
`RangeValue.Minimum`
[[ATK]]
Not mapped
AX
Not mapped
Comments

`max`

HTML Specification `max`
Element(s) `input`
[[WAI-ARIA-1.2]] `aria-valuemax`
MSAA + IAccessible2
Exposed as `IAccessibleValue::maximumValue` if the element implements the interface
UIA `RangeValue.Maximum`
[[ATK]]
Exposed as `atk_value_get_maximum_value` if the element implements the `AtkValue` interface
AX `AXMaxValue: <value>`
Comments

`max`

HTML Specification `max`
Element(s) `meter`; `progress`
[[WAI-ARIA-1.2]] `aria-valuemax`
MSAA + IAccessible2
Exposed as `IAccessibleValue::maximumValue` if the element implements the interface
UIA `RangeValue.Maximum`
[[ATK]]
Exposed as `atk_value_get_maximum_value` if the element implements the `AtkValue` interface
AX `AXMaxValue: <value>`
Comments

`maxlength`

HTML Specification `maxlength`
Element(s) `input`; `textarea`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`media`

HTML Specification `media`
Element(s) `link`; `meta`; `source` (in `picture`); `style`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`method`

HTML Specification `method`
Element(s) `form`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`min`

HTML Specification `min`
Element(s) `input`
[[WAI-ARIA-1.2]] `aria-valuemin`
MSAA + IAccessible2
Exposed as `IAccessibleValue::minimumValue` if the element implements the interface
UIA `RangeValue.Minimum`
[[ATK]]
Exposed as `atk_value_get_minimum_value` if the element implements the `AtkValue` interface
AX `AXMinValue: <value>`
Comments

`min`

HTML Specification `min`
Element(s) `meter`
[[WAI-ARIA-1.2]] `aria-valuemin`
MSAA + IAccessible2
Exposed as `IAccessibleValue::minimumValue` if the element implements the interface
UIA `RangeValue.Minimum`
[[ATK]]
Exposed as `atk_value_get_minimum_value` if the element implements the `AtkValue` interface
AX `AXMinValue: <value>`
Comments

`minlength`

HTML Specification `minlength`
Element(s) `input`; `textarea`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
States: `IA2_STATE_INVALID_ENTRY` if value doesn't meet the designated minimum length value.
UIA
States: `IsDataValidForForm` if value doesn't meet the designated minimum length value.
[[ATK]]
States: `ATK_STATE_INVALID_ENTRY` if value doesn't meet the designated minimum length value.
AX
Property: `AXInvalid`: `true` if value doesn't meet the designated minimum length value.
Comments

`multiple`

HTML Specification `multiple`
Element(s) `input`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`multiple`

HTML Specification `multiple`
Element(s) `select`
[[WAI-ARIA-1.2]] `aria-multiselectable="true"`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`muted`

HTML Specification `muted`
Element(s) `audio`; `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`name`

HTML Specification `name`
Element(s) `button`; `fieldset`; `input`; `output`; `select`; `textarea`; form-associated custom element
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`name`

HTML Specification `name`
Element(s) `form`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`name`

HTML Specification `name`
Element(s) `iframe`; `object`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`name`

HTML Specification `name`
Element(s) `map`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`name`

HTML Specification `name`
Element(s) `meta`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`name`

HTML Specification `name`
Element(s) `slot`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`nomodule`

HTML Specification `nomodule`
Element(s) `script`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`nonce`

HTML Specification `nonce`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`novalidate`

HTML Specification `novalidate`
Element(s) `form`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`open`

HTML Specification `open`
Element(s) `details`
[[WAI-ARIA-1.2]] `aria-expanded`="true | false"
MSAA + IAccessible2 `STATE_SYSTEM_EXPANDED`
`STATE_SYSTEM_COLLAPSED`
UIA `ExpandCollapsePattern`
[[ATK]]
States: `ATK_STATE_COLLAPSED` or `ATK_STATE_EXPANDED` depending on the attribute value
AX `AXExpanded: YES|NO`
Comments Set properties on the `summary` element.

`open`

HTML Specification `open`
Element(s) `dialog`
[[WAI-ARIA-1.2]]
If the `open` attribute is set via the `showModal()` method then `aria-modal="true"` and `aria-hidden="false"`.
Otherwise, if the `open` attribute is set via the `show()` method, or explicitly specified by an author, then `aria-modal="false"` and `aria-hidden="false"`.
MSAA + IAccessible2 Use WAI-ARIA mapping
UIA Use WAI-ARIA mapping
[[ATK]] Use WAI-ARIA mapping
AX Use WAI-ARIA mapping
Comments

The `open` attribute's value is irrelevant. When the `open` attribute is not specified the default user agent styling for a `dialog` is `display: none`.

Authors can reveal a `dialog` through the style layer by modifying its `display` property. If revealed this way then the `dialog` is `aria-modal="false"` and `aria-hidden="false"`.

`optimum`

HTML Specification `optimum`
Element(s) `meter`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`pattern`

HTML Specification `pattern`
Element(s) `input`
[[WAI-ARIA-1.2]]
If the value doesn't match the pattern: `aria-invalid="true"`; Otherwise, `aria-invalid="false"`
MSAA + IAccessible2 Use WAI-ARIA mapping
UIA Use WAI-ARIA mapping
[[ATK]] Use WAI-ARIA mapping
AX Use WAI-ARIA mapping
Comments

`ping`

HTML Specification `ping`
Element(s) `a` and `area`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`placeholder`

HTML Specification `placeholder`
Element(s) `input`; `textarea`
[[WAI-ARIA-1.2]] `aria-placeholder`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments
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.

`playsinline`

HTML Specification `playsinline`
Element(s) `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`popover`

HTML Specification `popover`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2 Relations: `IA2_RELATION_DETAILS_FOR` points to invoking element. See Comments.
Object attributes: ispopup: <value> where <value> reflects the popover type.
UIA A details relation is made with the invoking element, if an invoking element exists which meets the conditions for necessitating a details relationship. See Comments.
[[ATK]]

Relations: `RELATION_DETAILS_FOR` points to invoking element. See Comments.

Object attributes: ispopup: <value> where <value> reflects the popover type.
AX TBD
Comments

User agents MUST NOT expose a details relation between a `popover` and its invoking element under the following conditions:

  • when the `popover` is the next immediate accessibility sibling to the invoking element,
  • when the element has a `popovertargetaction=hide` attribute value,
  • or when the element is a descendant of the `popover` and its `popovertarget` is the "`auto`" state.

If specified on an element with an implicit role of `generic`, then the element's role instead maps to `group` for all `popover` states.

There are no unique mappings for the different `popover` states. Any accessibility mapping changes for the popover element would be the responsibility of the author. e.g., using different base HTML elements, attributes, or ARIA attributes to make such changes.

`popovertarget`

HTML Specification `popovertarget`
Element(s) `button`; `input type=button, image, reset, submit`
[[WAI-ARIA-1.2]]

If the associated element is displayed as a popover: `aria-expanded=true`

If the associated element is hidden: `aria-expanded=false`

If the associated element is an accessibility ancestor of the element with the `command` attribute or is not present in the DOM: `aria-expanded=undefined`

If the associated element is not a valid `popover` element: no `aria-expanded` mapping.

MSAA + IAccessible2
Use WAI-ARIA mapping
Object attributes: `details-roles:popover`
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
Object attributes: `details-roles:popover`
AX
Use WAI-ARIA mapping
Comments

User Agents MUST expose an `aria-details` relation with the associated popover element except under the following conditions:

  • The element's `popovertargetaction` attribute value is "`hide`"
  • The associated popover element is the next immediate accessibility sibling to the invoking element,
  • The element's implicit or explicit `popovertargetaction` is the "`auto`" state and the element is a descendant of the `popover` it is associated with.

A button that represents a submit button with a [=button/form owner=] cannot invoke a popover.

`popovertargetaction`

HTML Specification `popovertargetaction`
Element(s) `button`; `input type=button, image, reset, submit`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments The value of this attribute can impact the mappings of its related `popovertarget` attribute.

`poster`

HTML Specification `poster`
Element(s) `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`preload`

HTML Specification `preload`
Element(s) `audio` and `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`readonly`

HTML Specification `readonly`
Element(s) `input`; `textarea`; form-associated custom elements
[[WAI-ARIA-1.2]] `aria-readonly="true"`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments If the element includes both the `readonly` attribute and the `aria-readonly` attribute with a valid value, User Agents MUST expose only the `readonly` attribute value.

`referrerpolicy`

HTML Specification `referrerpolicy`
Element(s) `a`; `area`; `iframe`; `img`; `link`; `script`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`rel`

HTML Specification `rel`
Element(s) `a`; `area`; `link`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`required`

HTML Specification `required`
Element(s) `input`; `select`; `textarea`
[[WAI-ARIA-1.2]] `aria-required`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

If the element includes both the `required` attribute and the `aria-required` attribute with a valid value, User Agents MUST expose only the `required` attribute value.

If an element is required, user agents MUST NOT expose the element with an intitial invalid state (`aria-invalid="true"`). The user agent SHOULD expose the invalid state only after 1) a user has purposefully interacted with a required element, or attempted to submit a form and 2) the element, or elements, do not meet constraint validation.

Until these conditions are met, user agents MUST expose the elements as (`aria-invalid="false"`).

`reversed`

HTML Specification `reversed`
Element(s) `ol`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Reverses the numerical or alphabetical order of the child list item markers.
UIA
Reverses the numerical or alphabetical order of the child list item markers.
[[ATK]]
Reverses the numerical or alphabetical order of the child list item markers.
AX
Reverses the numerical or alphabetical order of the child list item markers.
Comments

`rows`

HTML Specification `rows`
Element(s) `textarea`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`rowspan`

HTML Specification `rowspan`
Element(s) `td`; `th`
[[WAI-ARIA-1.2]] `aria-rowspan`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`sandbox`

HTML Specification `sandbox`
Element(s) `iframe`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`scope`

HTML Specification `scope`
Element(s) `th`
[[WAI-ARIA-1.2]]
If `scope="row"` then map `th` to `rowheader`
If `scope="col"` then map `th` to `columnheader`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`selected`

HTML Specification `selected`
Element(s) `option`
[[WAI-ARIA-1.2]] `aria-selected="true"`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments If the element includes both the `selected` attribute and the `aria-selected` attribute with a valid value, User Agents MUST expose only the `selected` attribute value.

`shape`

HTML Specification `shape`
Element(s) `area`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`size`

HTML Specification `size`
Element(s) `input`; `select`
[[WAI-ARIA-1.2]]
Not mapped for `input` elements.
If greater than 1, then creates a listbox accessible object. Refer to `select` element for details.
MSAA + IAccessible2
Not mapped for `input` elements.
For `select` element use WAI-ARIA mapping.
UIA
Not mapped for `input` elements.
For `select` element use WAI-ARIA mapping.
[[ATK]]
Not mapped for `input` elements.
For `select` element use WAI-ARIA mapping.
AX
Not mapped for `input` elements.
For `select` element use WAI-ARIA mapping.
Comments For `input` elements that allow the `size` attribute, the attribute will modify their default width. A width provided by CSS will negate the effects of the `size` attribute on these `input` elements.

`sizes`

HTML Specification `sizes`
Element(s) `link`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`sizes`

HTML Specification `sizes`
Element(s) `img`; `source`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`slot`

HTML Specification `slot`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`span`

HTML Specification `span`
Element(s) `col`; `colgroup`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2
Exposed as `IAccessibleTableCell::columnExtent` on all cells at the column
UIA
Exposed as `GridItem.ColumnSpan` on all cells at the column
[[ATK]]
Exposed via `atk_table_get_column_extent_at`
AX
`AXColumnIndexRange.length: <value>`
Comments

`spellcheck`

HTML Specification `spellcheck`
Element(s) HTML elements
[[WAI-ARIA-1.2]] `aria-invalid="spelling"` or `grammar`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`src`

HTML Specification `src`
Element(s) `audio`; `embed`; `iframe`; `img`; `input`; `script`; `source` (in `audio` or `video`); `track`; `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Object attributes: `src` on `img` only
UIA
Not mapped
[[ATK]]
Object attributes: `src` on `img` only
AX `AXURL: <value>` on `img` and `input type="image"`
Comments

`srcdoc`

HTML Specification `srcdoc`
Element(s) `iframe`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`srclang`

HTML Specification `srclang`
Element(s) `track`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`srcset`

HTML Specification `srcset`
Element(s) `img`; `source`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not Mapped
Comments

`start`

HTML Specification `start`
Element(s) `ol`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Changes the first number of the child list item accessible objects to match the `start` attribute's value.
UIA
Changes the first number of the child list item accessible objects to match the `start` attribute's value.
[[ATK]]
Changes the first number of the child list item accessible objects to match the `start` attribute's value.
AX
Changes the first number of the child list item accessible objects to match the `start` attribute's value.
Comments

`step`

HTML Specification `step`
Element(s) `input`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA If the `input` is in the `Range` state, set both `RangeValue.SmallChange` and `RangeValue.LargeChange` to the value of `step`.
[[ATK]]
Exposed as `atk_value_get_minimum_increment` if the element implements the `AtkValue` interface.
AX Not mapped
Comments

`style`

HTML Specification `style`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`tabindex`

HTML Specification `tabindex`
Element(s) HTML elements
[[WAI-ARIA-1.2]] See Focus States and Events Table
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`target`

HTML Specification `target`
Element(s) `a`; `area`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`target`

HTML Specification `target`
Element(s) `base`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`target`

HTML Specification `target`
Element(s) `form`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`title`

HTML Specification `title`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Either the accessible name, or the accessible description, or Not mapped (see Comments).
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments
The Accessible Name and Description Computation section specifies if the `title` attribute will be mapped and, if so, through what [[WAI-ARIA]] property.

`title`

HTML Specification `title`
Element(s) `abbr`; `dfn`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Associates the accessible name
UIA
Associates the accessible name
[[ATK]]
Associates the accessible name
AX `AXExpandedTextValue: <value>`
Comments
HTML Specification `title`
Element(s) `link`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2 Not mapped
UIA Not mapped
[[ATK]] Not mapped
AX Not mapped
Comments

`title`

HTML Specification `title`
Element(s) `link`; `style`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments Provides the name for the CSS style sheet.

`translate`

HTML Specification `translate`
Element(s) HTML elements
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments
HTML Specification `type`
Element(s) `a`; `link`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`type`

HTML Specification `type`
Element(s) `button`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2
`submit` type may be a default button in the form.
UIA
`submit` type may be a default button in the form.
[[ATK]]
`submit` type may be a default button in the form.
AX
`submit` type may be a default button in the form.
Comments

`type`

HTML Specification `type`
Element(s) `embed`; `object`; `script`; `source`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`type`

HTML Specification `type`
Element(s) `input`
[[WAI-ARIA-1.2]] Refer to WAI-ARIA mappings for input types with defined ARIA roles.
MSAA + IAccessible2
Defines the accessible role, states and other properties, refer to type="text", type="password", type="`button`", etc.
UIA
Defines the accessible role, states and other properties, refer to type="text", type="password", type="`button`", etc.
[[ATK]]
Defines the accessible role, states and other properties, refer to type="text", type="password", type="`button`", etc.
AX
Defines the accessible role, states and other properties, refer to type="text", type="password", type="`button`", etc.
Comments

`type`

HTML Specification `type`
Element(s) `ol`
[[WAI-ARIA-1.2]] Not mapped
MSAA + IAccessible2
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`
UIA
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`
[[ATK]]
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`
AX
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"`
Comments
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, or never 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.

`usemap`

HTML Specification `usemap`
Element(s) `img`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Responsible for image map creation.
UIA
Responsible for image map creation.
[[ATK]]
Responsible for image map creation.
AX
Responsible for image map creation.
Comments Refer to `img` element.

`value`

HTML Specification `value`
Element(s) `button`; `option`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`value`

HTML Specification `value`
Element(s) `data`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

`value`

HTML Specification `value`
Element(s) `input`; `input type=date`; `input type=datetime-local`; `input type=email`; `input type=month`; `input type=number`; `input type=password`; `input type=range` `input type=search`; `input type=tel`; `input type=text`; `input type=url`; `input type=week`;
[[WAI-ARIA-1.2]] `aria-valuenow`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`value`

HTML Specification `value`
Element(s) `input type=button`; `input type=reset`; `input type=submit`
[[WAI-ARIA-1.2]] Contributes to the accessible name of the `input`
MSAA + IAccessible2
See comments
UIA
See comments
ATK
See comments
AX
See comments
Comments If specified, the value of the attribute will be the host language label used in the accessible name computation for `input` elements in the `button`, `reset` and `submit` states.

`value`

HTML Specification `value`
Element(s) `input type=checkbox`; `input type=hidden`; `input type=radio`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
Comments

The `value` attribute of these `input` states is not directly communicated to users.

`value`

HTML Specification `value`
Element(s) `input type=color`
[[WAI-ARIA-1.2]] `aria-valuenow` & `aria-valuetext`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments User agents MAY use the exact text value of the `value` attribute, or a localized variation of the specified text to present a human friendly representation of the color value.

`value`

HTML Specification `value`
Element(s) `input type=image`
[[WAI-ARIA-1.2]] Contributes to the accessible name of the `input`
MSAA + IAccessible2
See comments
UIA
See comments
ATK
See comments
AX
See comments
Comments If specified, and the `input` in the `image` state has no `alt` attribute specified, then the value of the attribute will be the host language label used in the accessible name computation, and will render as text if the image source is broken. Otherwise, the attribute is ignored.

`value`

HTML Specification `value`
Element(s) `li`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Exposed as first text node of `li`'s accessible object.
UIA
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 integer, set the UIA `PositionInSet` property to the integer value.
[[ATK]]
Exposed as first text node of `li`'s accessible object.
AX
Exposed as `AXValue: <value>` with accessible object:
AXRole: `AXListMarker`
AXSubrole: `(nil)`
AXRoleDescription: `list marker`
Comments

`value`

HTML Specification `value`
Element(s) `meter`; `progress`
[[WAI-ARIA-1.2]] `aria-valuenow`
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
[[ATK]]
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
Comments

`width`

HTML Specification `width`
Element(s) `canvas`; `embed`; `iframe`; `img`; `input`; `object`; `source` (in `picture`); `video`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Defines an accessible object's width (`IAccessible::accLocation`)
UIA
Defines an accessible object's width (`BoundingRectangle`)
[[ATK]]
Defines an accessible object's width (`atk_component_get_size`)
AX AXSize: w=n
Comments

`wrap`

HTML Specification `wrap`
Element(s) `textarea`
[[WAI-ARIA-1.2]]
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
[[ATK]]
Not mapped
AX
Not mapped
Comments

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.

User Agents notify assistive technology when relevant accessibility information changes, sometimes by destroying and recreating the accessibility object, or sometimes by notifying of changes to the object per the specified name change event mappings and description change event mappings.

Accessible Name Computations By HTML Element

`input type="text"`, `input type="password"`, `input type="number"`, `input type="search"`,` input type="tel"`, `input type="email"`, `input type="url"` and `textarea` 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.
  2. If the accessible name is still empty: use the text equivalent computation of the associated `label` element's subtree - if more than one `label` is associated; concatenate their subtrees by DOM order, delimited by spaces.

    If the control is encapsulated by its `label` element, exclude the control's author specified or user-entered value from its computed accessible name.

  3. If the accessible name is still empty: use the value of the control's `title` attribute.
  4. If the accessible name is still empty: use the value of the control's placeholder attribute.
  5. Otherwise, use the value of the element's `aria-placeholder` 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"` 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.
  2. If the accessible name is still empty: use the text equivalent computation of the associated `label` element's subtree - if more than one `label` is associated; concatenate their subtrees by DOM order, delimited by spaces.

    If the control is encapsulated by its `label` element, and the control has an author specified `value` or the lack of a `value` has produced an implementation defined string to render, then exclude either from the control's computed accessible name.

  3. If the accessible name is still empty: use the value of the control's `value` attribute.
  4. For `input type=submit` and `type=reset`: if the accessible name is still empty, and the `value` attribute is unspecified, use the implementation defined string respective to the input type. For instance, a localized string of the word "submit" or "reset" respective to the type of `input`.
  5. Otherwise: use the value of the control's `title` attribute.
  6. If none of the above yield a usable text string there is no accessible name.

`input type="image"` 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.
  2. If the accessible name is still empty: use the text equivalent computation of the associated `label` element's subtree - if more than one `label` is associated; concatenate their subtrees by DOM order, delimited by spaces.

    If the control is encapsulated by its `label` element, and the control has an `alt` attribute, then exclude the attribute's value from the control's computed accessible name.

  3. If the accessible name is still empty: use the value of the control's `alt` attribute if present and its value, when trimmed of [=ascii whitespace|whitespace=], is not the empty string.
  4. If the accessible name is still empty: use the value of the control's `title` attribute if present and its value is not the empty string.
  5. Otherwise, if the previous steps do not yield a usable text string: use the implementation defined string respective to the input type (an `input` in the `image` state represents a submit button). For instance, a localized string of the word "submit" or the words "Submit Query".
  6. If none of the above yield a usable text string there is no accessible name.

`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.
  2. If the accessible name is still empty: use the text equivalent computation of the associated `label` element's subtree - if more than one `label` is associated; concatenate their subtrees by DOM order, delimited by spaces.

    If the `button` element is encapsulated by its `label` element, ignore the `button` element's subtree from its computed accessible name.

  3. If the accessible name is still empty: use the text equivalent computation of the element's subtree.
  4. Otherwise: use the value of the element's `title` attribute.
  5. If none of the above yield a usable text string there is no accessible name.

`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.
  2. If the accessible name is still empty, then: if the `fieldset` element has a child that is a legend element, then use the subtree of the first such element.
  3. If the accessible name is still empty, then:, if the `fieldset` element has a `title` attribute, then use that attribute.
  4. Otherwise, there is no accessible name.

`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.
  2. Otherwise use the associated `label` element or elements accessible name(s) - if more than one `label` is associated; concatenate by DOM order, delimited by spaces.
  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 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.
  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.

`summary` Element Accessible Name Computation

  1. If the first `summary` element, which is a direct child of the `details` 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.
  2. Otherwise use `summary` element subtree.
  3. Otherwise use `title` attribute.
  4. If there is no `summary` element as a direct child of the `details` element, the user agent SHOULD provide one with a subtree containing a localized string of the word "details".
  5. If there is a `summary` element as a direct child of the `details` element, but none of the above yield a usable text string, there is no accessible name.

`figure` Element Accessible Name Computation

A `figcaption` provides additional information related to its parent `figure` element. A `figcaption` does not take part in the accessible name or accessible description computation, unless explicitly referenced by an author.

  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.
  2. Otherwise, use the `title` attribute.
  3. If none of the above yield a usable text string there is no accessible name.

`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.
  2. If the accessible name is still empty: use `alt` attribute, even if its value, when trimmed of [=ascii whitespace|whitespace=], is the empty string.
    An `img` with an `alt` attribute whose value, when trimmed of [=ascii whitespace|whitespace=], is the empty string is mapped to the `presentation` role. It has no accessible name.
  3. If the accessible name is still empty and there is no `alt` attribute, use the `title` attribute.
  4. If the accessible name is still empty and there are no `alt` or `title` attributes, and the `img` is a descendant of a `figure` element with a child `figcaption` but no other non-whitespace flow content descendants, then use the text equivalent computation of the `figcaption` element's subtree.
  5. Otherwise there is no accessible name.

`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.
  2. If the accessible name is still empty, then: if the `table` element has a child that is a caption element, then use the subtree of the first such element.
  3. If the accessible name is still empty, then: if the `table` element has a `title` attribute, then use that attribute.
  4. Otherwise, there is no accessible name.

`tr`, `td`, `th` Elements 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.
  2. Otherwise use the `title` attribute.
  3. If none of the above yield a usable text string there is no accessible name.

`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.
  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.

`area` Element Accessible Name Computation

  1. If the `area` 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.
  2. Otherwise use `area` element's `alt` attribute.
  3. Otherwise use the `title` attribute.
  4. If none of the above yield a usable text string there is no accessible name.

`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.
  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.

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.
  2. Otherwise use the `title` attribute.
  3. If none of the above yield a usable text string there is no accessible name.

Text-level Element Accessible Name Computation

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

  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.
  2. Otherwise use the `title` attribute.
  3. If none of the above yield a usable text string there is no accessible name.

Accessible Description Computation

Authors MAY provide an accessible description for any HTML element that is a valid child of the `body` element. The following list represents the order of precedence for user agents to compute the accessible description of an element. As defined by Accessible Name and Description Computation: Description Computation , user agents MUST use the first applicable description source, even if its use results in an empty description.

  1. If the element has an `aria-describedby` or `aria-description` attribute refer to the computation conditions defined in Accessible Name and Description: Computation and API Mappings.
  2. Otherwise, if the accessible description is still empty, and the element is:
  3. Otherwise, use the flat string of the `title` attribute if it was not used as the accessible name for the element.
  4. If none of the above are applicable, there is no accessible description.

Privacy considerations

In accordance with Web 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 perform active fingerprinting of users of Assistive Technologies.

Security considerations

This specification introduces no new security considerations.

Appendices

Change Log

Review the commit history of this document on GitHub.

Substantive changes since moving to the Accessible Rich Internet Applications Working Group (03-Nov-2019)

  • 2-April-2025: Add `command` and `commandfor` attribute mappings. See GitHub ARIA PR 2354.
  • 11-July-2024: User Agents ignore `aria-hidden=true` on `body` and `html` elements. See GitHub PR 516.
  • 06-June-2024: Add concept of Minimum Role. See GitHub PR 454.
  • 06-June-2024: Add `popover`, `popovertarget` and `popovertargetaction` mappings. See GitHub PR 481.
  • 09-Oct-2023: Acknowledge use of `hr` element within `select` element. See GitHub PR 504.
  • 03-Oct-2023: Update image mappings to reference the primary synonym roles (`image` and `none`). See GitHub PR 498.
  • 03-Oct-2023: Clarify when to expose required field as invalid. See GitHub PR 429.
  • 06-Jun-2023: Add computed roles for all HTML elements. See GitHub PR 465.
  • 28-Mar-2023: Add `inert` attribute mapping. See GitHub PR 410.
  • 24-Mar-2023: Add `search` element and its mappings. See GitHub PR 355.
  • 08-Mar-2023: Update `hgroup` element to be mapped to `role=group`. See GitHub PR 398.
  • 08-Mar-2023: Clarify naming algorithm for `output` element. See GitHub PR 402.
  • 12-Dec-2022: Revise mapping for `s` element to be `role=deletion`. See GitHub PR 442.
  • 28-Nov-2022: Simplify accessible description computation section. See GitHub PR 444.
  • 19-Jul-2022: Update `address` element to be mapped to `role=group`. See GitHub PR 420.
  • 03-Apr-2022: Update `aside` mappings based on its nesting context. See GitHub PR 350.
  • 06-Mar-2022: Update the following elements to map to the `generic` role: `a no href`, `footer` not scoped to `body`, `header` not scoped to `body`, `samp`, `span`. See GitHub PR 364.
  • 06-Feb-2022: Update `mark` to point to Core AAM mapping for the role. See GitHub Issue 316.
  • 02-Nov-2021: Updating `blockquote`, `caption`, `code`, `del`, `em`, `ins`, `meter`, `paragraph`, `strong`, `sub`, `sup` and `time` to ARIA 1.2 mappings in Core AAM. Fix `body` mapping to `generic`, and `html` mapping to `document`. Fix `hgroup` mapping to `generic`. Update `details` to map to `group` with additional information specific to ATK, UIA. See GitHub issue #348
  • 12-May-2021: Add FACES references to attributes table - `readonly`, `name`, `form`, `disabled`. See Issue 257.
  • 12-Dec-2019: Adds `hgroup`, `slot`, autonomous custom element and form associated custom element. See GitHub issue #189.
  • 26-Nov-2019: Updates mappings for `disabled`, `scope`, `spellcheck`, `tabindex` to point to WAI-ARIA. Adds AX `pattern`, `reversed`, `rows`, `size`, `span`, `src`, `start`, `step`, `type` attribute mappings. Adds `min-length`, `ping`, `playsinline`, `referrerpolicy`, `sizes`, `srcset`, `data[value]` attribute mappings. See GitHub pull request #245.

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

  • 30-Sept-2019: Remove mappings for `rb` and `rtc` elements as they are marked as obsolete in HTML. See GitHub issue #115 and pull request #253.
  • 23-Sept-2019: Update attribute mappings for `high`, `low`, `max`, `min`, and `meter` and `progress`'s `value` attribute. See GitHub pull request #244.
  • 18-Sept-2019: Update `mark` element's UIA `LocalizedControlType` and AX `AXRoleDescription`. See GitHub issue #236.
  • 18-Sept-2019: Update ATK mappings for `summary` and `details` elements. See GitHub issue #142 and GitHub issue #147.
  • 18-Sept-2019: Update MSAA mappings for `sub` and `sup`. See GitHub pull request #252.
  • 11-Sept-2019: Update mapping for [^menu^] to match HTML Living Standard. Remove element and attribute mappings that are not applicable to `menu` and `menuitem`. Update mapping of `menu` to `role="list"`. See GitHub issue #188.
  • 10-July-2019: Further updated mappings for `ins` and `del` elements. See GitHub pull request #219.
  • 13-June-2019: Update mappings for `ins` and `del` elements. See GitHub issue #141.
  • 10-June-2019: Update ATK mappings for `header` and `footer` when not scoped to the `body`. See GitHub issue #129.
  • 21-May-2019: Update AXAPI mappings for `map` element. Add accessible name and description computation for `area`. See GitHub issue #176.
  • 11-Apr-2019: Update UIA mappings for `sub` and `sup` elements. See Pull request #177.
  • 20-Mar-2019: Updated IA2 mappings for `sup` and `sub` elements. See GitHub issue #174.
  • 26-Feb-2019: Updated mappings for the `address` element. See GitHub issue #170.
  • 19-Feb-2019: Added `placeholder` attribute to accessible name computation for various `input` elements. See GitHub issue #167.
  • 07-Feb-2018: Added entries for the `rb` and `rtc` elements, and updated AXAPI mappings for the `rb`, `rt` and `ruby` elements. See GitHub issue #115.
  • 07-Feb-2018: Updated mappings for the `svg` element. See GitHub issue #43.
  • 07-Feb-2018: Updated AXAPI mappings for the `del` and `ins` elements, and the `datetime` attribute.
  • 07-Feb-2018: Aligned mappings with CORE-AAM as appropriate for `header` and `footer` when scoped to `body`, `aside`, and `output`. See GitHub issue #119.
  • 07-Feb-2018: Updated ATK and AX mappings for the `multiple` attribute on `input` element. See GitHub issue #96.
  • 07-Feb-2018: Updated ATK mappings for the `sub` and `sup` elements. See GitHub issue #121.
  • 07-Feb-2018: Updated mappings for the `body` element. See GitHub issue #117.
  • 01-Feb-2018: Updated IA2 mapping for the `meter` element. See GitHub issue #2.
  • 29-Jan-2018: Updated heading mapping to reflect implementations. See GitHub issue #116.
  • 23-Jan-2018: Added note regarding effect of some CSS properties. See GitHub issue #234.
  • 23-Jan-2018: Updated mappings for the `address` element. See GitHub issue #33.
  • 23-Jan-2018: Updated mappings for the `dt` element. See GitHub issue #78.
  • 23-Jan-2018: Updated AXAPI mappings for the `mark` element.
  • 08-Jan-2018: Updated mappings for the `input` element with the `type` attribute in the Color state. See GitHub issue #48.
  • 06-Jan-2018: Updated IA2 mappings for the `pre`, `q`, and `ruby` elements, and the `multiple` attribute for the `input` element. See GitHub issue #94.
  • 18-Dec-2017: Rewrote first paragraph in Introduction to better reflect the relationship between the HTML-AAM and CORE-AAM specifications. See GitHub issue #66.
  • 18-Dec-2017: Updated `readonly` attribute to use `aria-readonly="true"` WAI-ARIA mappings. See GitHub issue #93.
  • 08-Dec-2017: Changed AXAPI mapping for the `canvas` element from `AXImage` to `AXGroup`.
  • 01-Dec-2017: Updated mappings for the `dfn` element. See GitHub issue #6.
  • 30-Nov-2017: Updated mappings for the `meter` element. See GitHub issue #2.
  • 24-Nov-2017: Updated mappings for the `audio` and `video` elements. See GitHub issue #80.
  • 23-Nov-2017: Updated `figure` element mappings to reflect the WAI-ARIA `figure` role mappings.
  • 23-Nov-2017: Updated mappings for the `form` element based on presence of accessible name. See GitHub issue #106.
  • 23-Nov-2017: Removed the accessible name computation requirement to ignore an `img` element's `title` attribute when the element's `alt` attribute is empty. See GitHub issue #99.
  • 23-Nov-2017: Added note to not expose `aria-roledescription` unless element also a conforming `role` attribute value. See GitHub issue #98.
  • 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.

ARIA WG participants at the time of publication