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

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

This document is subject to change without notice.

You can file a bug on this specification

This document was 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.

Introduction

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

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

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

Accessibility APIs

Accessibility APIs covered by this document are:

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

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

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

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

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

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

Important Terms

Mapping HTML to Accessibility APIs

General Rules for Exposing WAI-ARIA Semantics

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

Conflicts Between Native Markup Semantics and WAI-ARIA

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

Exposing HTML Features That Do Not Directly Map to Accessibility APIs

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

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

Other Accessibility Implementations

Use of MSAA VARIANT by Some User Agents

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

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

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

Use of the DOM by Some Assistive Technologies

to do

HTML Element Role Mappings

Notes:

  • HTML elements with default WAI-ARIA role semantics must be mapped to platform accessibility APIs according to those WAI-ARIA roles' mappings as defined in the Core Accessibility API Mappings [[!CORE-AAM]] specification.
  • A '?' in a cell indicates the data has yet to be provided.
  • "Not mapped" (Not Applicable) means the element does not need to be exposed via an accessibility API. This is usually because the element is not displayed as part of the user interface.
  • User agents should return a user-presentable, localized string value for the Mac Accessibility AXRoleDescription.
  • All elements having an accessible object in IAccessible2 mapping are supposed to implement IAccessible, IAccessible2 and IAccessible2_2 interfaces.
a (represents a hyperlink)
WAI-ARIAlink role
MSAA + UIA Express
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
a (represents a hyperlink and parent is a menu)
WAI-ARIAmenuitem role
MSAA + UIA Express
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
a (no href attribute)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME
Interfaces: IAccessibleHyperlink; IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Text
ATK
Role: ATK_ROLE_STATIC
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
abbr
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME
Object attributes: "abbr" attribute on the containing td if a single child, text content used as a value
Interfaces: IAccessibleText2; IAccessibleHypertext2;
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
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
address
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Text
ATK
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXLandmarkContentInfo
AXRoleDescription: "content information"
Note: recommend AXRoleDescription of "address" to disambiguate from "contentinfo" landmark role. Refer to WebKit bug 83989
area (represents a hyperlink)
WAI-ARIAlink role
MSAA + UIA Express
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
area (no href attribute)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_SHAPE
UIA
Control Type: Text
ATK
Role: ATK_ROLE_STATIC
AX
Not mapped
article
WAI-ARIAarticle role
MSAA + UIA Express
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
aside
WAI-ARIAcomplementary role
MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Control Type: Group
Localized Control Type: "aside" (all lower-case)
Landmark Type: Custom
Localized Landmark Type: "complementary" (all lower-case)
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
audio
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: ROLE_SYSTEM_GROUPING
UIA
Control Type: Group
Localized Control Type: "audio"
If the controls attribute is present, each control is a child in the UIA tree, and mapped as button, slider, etc. as appropriate for the type of control.
ATK
Role: ATK_ROLE_AUDIO
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the audio element exposed as AXToolbar.
b
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Exposed by UIA_FontWeightAttributeId of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Exposed as "font-weight" text attribute on the text container. The value depends on the platform.
UIA
No accessible object. Exposed by UIA_FontWeightAttributeId of the TextRange control pattern implemented on a parent accessible object.
ATK
No accessible object. Exposed as "font-weight" text attribute on the text container. The value depends on the platform.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
base
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
bdi
WAI-ARIANo corresponding role
MSAA + UIA Express?
MSAA + IAccessible2
No accessible object. May affect on "writing-mode" text attribute on its text container.
UIA?
ATK
No accessible object. May affect on "writing-mode" text attribute on its text container.
AX
bdo
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
No accessible object. Exposed as "writing-mode" text attribute on its text container.
UIA
Control Type: Text
ATK
No accessible object. Exposed as "writing-mode" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
blockquote
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Group
Localized Control Type: "blockquote"
ATK
Role: ATK_ROLE_BLOCK_QUOTE
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
body
WAI-ARIAdocument role
MSAA + UIA Express
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
br
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_WHITESPACE
MSAA + IAccessible2
Role: ROLE_SYSTEM_WHITESPACE
UIA
Not mapped
ATK
No accessible object. Exposed as '\n' character via AtkText interface on the text container.
AX
Not mapped
button
WAI-ARIAbutton role
MSAA + UIA Express
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
canvas
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GRAPHIC
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_CANVAS
UIA
Control Type: Image
NOTE: subdom elements will be mapped separately.
ATK
Role: ATK_ROLE_CANVAS
AX
AXRole: AXImage
AXSubrole: (nil)
AXRoleDescription: "image"
caption
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_CAPTION
Relations: IA2_RELATION_LABEL_FOR with parent table
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Text
Properties: UIA_LabeledByPropertyId on the parent table pointing to the UIA element for the caption element
ATK
Role: ATK_ROLE_CAPTION
Relations: ATK_RELATION_LABEL_FOR with parent table
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
cite
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
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 attribute identifiers 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"
code
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
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 attribute identifiers 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"
col
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
colgroup
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
TODO:  look in more detail at UIA table implemenation
MSAA + IAccessible2
Not mapped
UIA
?TODO:  look in more detail at UIA table implementation
ATK
Not mapped
AX
Not mapped
Command: an element that defines a command, whose Type facet is "checkbox", and that is a descendant of a menu element whose type attribute is in the toolbar state
WAI-ARIAmenuitemcheckbox role, with the aria-checked state set to "true" if the command's Checked State facet is true, and "false" otherwise
MSAA + UIA Express
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
Command: an element that defines a command, whose Type facet is "command", and that is a descendant of a menu element whose type attribute is in the toolbar state
WAI-ARIAmenuitem role
MSAA + UIA Express
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
Command: an element that defines a command, whose Type facet is "radio", and that is a descendant of a menu element whose type attribute is in the toolbar state
WAI-ARIAmenuitemradio role, with the aria-checked state set to "true" if the command's Checked State facet is true, and "false" otherwise
MSAA + UIA Express
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
data
WAI-ARIA
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
datalist
WAI-ARIAlistbox role, with the aria-multiselectable property set to "false"
MSAA + UIA Express
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
dd
WAI-ARIAdefinition role
MSAA + UIA Express
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
del
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
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 attribute identifiers 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"
details
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: ROLE_SYSTEM_GROUPING
UIA
Control Type: Group ??window??
ATK
Role: ATK_ROLE_PANEL
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dfn
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Styles used are exposed by text attributes on its text container.
UIA
Control Type: Group
Localized Control Type: "definition"
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 exposed by text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dialog
WAI-ARIAdialog role
MSAA + UIA Express
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
div
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
May not have an accessible object if has no semantic meaning. Otherwise
Role: IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Group
ATK
May not have an accessible object if has no semantic meaning. Otherwise
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dl
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
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"
dt
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_READONLY
MSAA + IAccessible2
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_READONLY
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: ListItem
ATK
Role: ATK_ROLE_DESCRIPTION_TERM
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXTerm
AXRoleDescription: "term"
em
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
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 attribute identifiers 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"
embed
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_CLIENT
MSAA + IAccessible2
Role: IA2_ROLE_EMBEDDED_OBJECT
States: STATE_SYSTEM_UNAVAILABLE for windowless plugin
UIA
Control Type: ?Pane? Window?
ATK
Role: ATK_ROLE_EMBEDDED
AXDepends on format of data file
fieldset
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_GROUPING
Relations: IA2_RELATION_LABELLED_BY with child legend element
UIA
Control Type: Group
ATK
Role: ATK_ROLE_PANEL
Relations: ATK_RELATION_LABELLED_BY with child legend element
AX
AXRole: AXGroup
AXSubrole: AXFieldset
AXRoleDescription: "group"
AXDescription: value from child legend subtree
figcaption
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_CAPTION
Relations: IA2_RELATION_LABEL_FOR with parent figure element
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Text
ATK
Role: ATK_ROLE_CAPTION
Relations: ATK_RELATION_LABEL_FOR with parent figure element
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
figure
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_GROUPING
Object attributes: xml-roles:figure
Name: related figcaption content
Relations: IA2_RELATION_LABELLED_BY with child figcaption element
UIA
Control Type: Group
Localized Control Type: Figure
ATK
Role: ATK_ROLE_PANEL
Object attributes: xml-roles:figure
Name: related figcaption content
Relations: ATK_RELATION_LABELLED_BY with child figcaption element
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "figure"
footer (nearest ancestor sectioning content or sectioning root element is not body)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Group
ATK
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
footer (nearest ancestor sectioning content or sectioning root element is body)
WAI-ARIAcontentinfo role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Expose "contentinfo" as text string in AriaRole
MSAA + IAccessible2
Role: IA2_ROLE_FOOTER
Object attributes: xml-roles:contentinfo
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Group
Localized Control Type: "footer"
Landmark Type: Custom
Localized Landmark Type: "content information"
ATK
Role: ATK_ROLE_FOOTER
Object attributes: xml-roles:contentinfo
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXLandmarkContentInfo
AXRoleDescription: "footer"
form
WAI-ARIAform role
MSAA + UIA Express
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
h1, h2, h3, h4, h5, h6
WAI-ARIAheading role, with the aria-level property set to the element's outline depth
MSAA + UIA Express
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
head
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
header (nearest ancestor sectioning content or sectioning root element is not body)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Group
ATK
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
header (nearest ancestor sectioning content or sectioning root element is body)
WAI-ARIAbanner role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Expose "banner" as text string in AriaRole
MSAA + IAccessible2
Role: IA2_ROLE_HEADER
Object attributes: xml-roles:banner
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Group
Localized Control Type: "header"
Landmark Type: Custom
Localized Landmark Type: "banner"
ATK
Role: ATK_ROLE_HEADER
Object attributes: xml-roles:banner
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXLandmarkBanner
AXRoleDescription: "banner"
hr
WAI-ARIAseparator role
MSAA + UIA Express
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
html
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
i
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Exposed by UIA_IsItalicAttributeId of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Exposed as "font-style:italic" text attribute on its text container.
UIA
No accessible object. Exposed by UIA_IsItalicAttributeId of the TextRange control pattern implemented on a parent accessible object.
ATK
No accessible object. Exposed as "font-style:italic" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
iframe
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_DOCUMENT ??pane??
States: STATE_SYSTEM_READONLY
MSAA + IAccessible2
Role: IA2_ROLE_INTERNAL_FRAME
Child: ROLE_SYSTEM_DOCUMENT having STATE_SYSTEM_READONLY
UIA
Control Type: Pane
ATK
Role: ATK_ROLE_INTERNAL_FRAME
Child: ATK_ROLE_DOCUMENT_FRAME
AX
AXRole: AXWebArea
AXSubrole: (nil)
AXRoleDescription: "html content"
img
WAI-ARIAimg role
MSAA + UIA Express
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
img (alt attribute is empty)
WAI-ARIApresentation role
MSAA + UIA Express
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
input (type attribute in the Button state)
WAI-ARIAbutton role
MSAA + UIA Express
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
input (type attribute in the Button state and parent is a menu)
WAI-ARIAmenuitem role
MSAA + UIA Express
Role: ROLE_SYSTEM_MENUITEM
MSAA + IAccessible2
Role: ROLE_SYSTEM_MENUITEM
UIA
Control Type: MenuItem
ATK
Role: ATK_ROLE_MENU_ITEM
AXIf the option's parent has a group role, then maps to AXMenuButton

If the option's parent has a menu role, then maps to AXMenuItem

AXRole: AXMenuItem
AXSubrole: <nil>
AXRoleDescription: 'menu item'

input (type attribute in the Color state)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: If implemented as a textbox, ROLE_SYSTEM_TEXT
Use UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_COLOR_CHOOSER
UIA
Control Type: If implemented as a textbox, Edit.
Properties: If implemented as a color picker, set LocalizedControlType string to "Color Picker".
Control Pattern: If implemented as a color picker, implement IUIAutomationSelectionPattern for the container and IUIAutomationSelectionItemPattern for each color choice
ATK
Role: ATK_ROLE_COLOR_CHOOSER
AX
If implemented as a textbox:
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "textfield"
If implemented as a color picker:
AXRole: AXColorWell
AXSubrole: (nil)
AXRoleDescription: "color chooser"
input (type attribute in the Checkbox state)
WAI-ARIAcheckbox 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
MSAA + UIA Express
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
input (type attribute in the Checkbox state and parent is a menu)
WAI-ARIAmenuitemcheckbox role
MSAA + UIA Express
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
input (type attribute in the Date state)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_DROPLIST
UIA Calendar
MSAA + IAccessible2
Role: IA2_ROLE_DATE_EDITOR
UIA
Control Type: Calendar
ATK
Role: ATK_ROLE_CALENDAR
AX
AXRole: AXDateField
AXSubrole: (nil)
AXRoleDescription: "date field"
input (type attribute in the Date and Time state)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_DROPLIST
UIA Calendar
MSAA + IAccessible2
Role: IA2_ROLE_DATE_EDITOR
UIA
Control Type: Calendar
ATK
Role: ATK_ROLE_CALENDAR
AX
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the E-mail state with no suggestions source element)
WAI-ARIAtextbox role
MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
+
Object attributes: text-input-type:email
UIA
Control Type: edit
localized control type: email
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
input (type attribute in the File Upload state)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_PUSHBUTTON
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME
Children: A button and label (implementation specific)
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
input (type attribute in the Hidden state)
WAI-ARIANo corresponding role
MSAA + UIA Express
Do not expose this object
MSAA + IAccessible2
Not mapped
UIA
Do not expose this object
ATK
Not mapped
AXDo not expose this object
input (type attribute in the Image Button state)
WAI-ARIAbutton role
MSAA + UIA Express
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
input (type attribute in the Image Button state and parent is a menu)
WAI-ARIAmenuitem role
MSAA + UIA Express
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
input (type attribute in the Month state)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_DROPLIST
UIA Calendar
MSAA + IAccessible2
Role: IA2_ROLE_DATE_EDITOR
UIA
Control Type: Calendar
ATK
Role: ATK_ROLE_DATE_EDITOR
AX
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Number state)
WAI-ARIAspinbutton role
MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
If implemented as a spin control, use wai-aria mapping.
If implemented as a textbox, use mapping below:
Control Type: Edit
Localized Control Type: number
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
input (type attribute in the Password state)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
States:STATE_SYSTEM_PROTECTED
Use UIA guidance
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
Localized Control Type: "password"
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"
input (type attribute in the Radio Button state)
WAI-ARIAradio 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.
MSAA + UIA Express
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
input (type attribute in the Radio Button state and parent is a menu)
WAI-ARIAmenuitemradio role, with the aria-checked state set to "true" if the element's checkedness is true, or "false" otherwise
MSAA + UIA Express
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
input (type attribute in the Range state)
WAI-ARIAslider role
MSAA + UIA Express
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
input (type attribute in the Reset Button state)
WAI-ARIAbutton role
MSAA + UIA Express
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
input (type attribute in the Search state with no suggestions source element)
WAI-ARIAtextbox role
MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping

+

Object attributes: text-input-type:search
UIA
Control Type: Edit
Localized Control Type: search
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
input (type attribute in the Submit Button state)
WAI-ARIAbutton role
MSAA + UIA Express
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
input (type attribute in the Telephone state with no suggestions source element)
WAI-ARIAtextbox role
MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping

+

Object attributes: text-input-type:telephone
UIA
Control Type: edit
localized control type: telephone
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
input (type attribute in the Text state with no suggestions source element)
WAI-ARIAtextbox role
MSAA + UIA Express
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
input (type attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element)
WAI-ARIAcombobox role, with the aria-owns property set to the same value as the list attribute
MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping

+

Object attributes: text-input-type:as per input type
UIA
Use WAI-ARIA mapping
Relationships: ControllerFor pointing to the suggestions source.
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
input (type attribute in the Time state)
WAI-ARIANo corresponding role
MSAA + UIA Express

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

MSAA + IAccessible2

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

+

Object attributes: text-input-type:time
UIA
Control Type: Spinner
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"
input (type attribute in the URL state with no suggestions source element)
WAI-ARIAtextbox role
MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping

+

Object attributes: text-input-type:url
UIA
Control Type: edit
localized control type: url
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
input (type attribute in the Week state)
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_DROPLIST
UIA Calendar
MSAA + IAccessible2
Role: IA2_ROLE_DATE_EDITOR

+

Object attributes: text-input-type:week
UIA
Control Type: Calendar
ATK
Role: ATK_ROLE_CALENDAR
AX
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
ins
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
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 attribute identifiers 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"
kbd
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Mapped into "font-family:monospace" text attribute 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. Mapped into "font-family:monospace" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
keygen
WAI-ARIAlistbox role, with the aria-multiselectable property set to "false"
MSAA + UIA Express
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
label
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_STATICTEXT and IA2_ROLE_LABEL
Relations: IA2_RELATION_LABEL_FOR for a child form element or form element referred by for attribute. Note, related form element provides IA2_RELATION_LABELLED_BY pointing to the label.
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Text
Properties: ??The parent input has a UIA_LabeledByPropertyId pointing to the UIA element for the legend element.?? When the label element has a for attribute pointing to a valid IDREF, the referenced element has a UIA_LabeledByPropertyId pointing to the UIA element for the label element.
ATK
Role: ATK_ROLE_LABEL
Relations: ATK_RELATION_LABEL_FOR for a child form element or form element referred by for attribute. Note, related form element provides ATK_RELATION_LABELLED_BY pointing to the label.
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
legend
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
SHOULD use UIA_LabeledByPropertyId (see UIA column)
MSAA + IAccessible2
Role : ROLE_SYSTEM_STATICTEXT and IA2_ROLE_LABEL
Relations: IA2_RELATION_LABEL_FOR with parent fieldset element
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Text
Properties: The parent fieldset has a UIA_LabeledByPropertyId pointing to the UIA element for the legend element.
ATK
Role : ATK_ROLE_LABEL
Relations: ATK_RELATION_LABEL_FOR with parent fieldset element
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
li (parent is an ol or ul)
WAI-ARIAlistitem role with aria-setsize value reflecting number of li elements within the parent ol or ul and aria-posinset value reflecting the li elements position within the set.
MSAA + UIA Express
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
li (parent is a menu)
WAI-ARIAlistitem role with aria-setsize value reflecting number of li elements within the parent menu and aria-posinset value reflecting the li elements position within the set.
MSAA + UIA Express
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
link
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
main
WAI-ARIAmain role
MSAA + UIA Express
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
map
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
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
Not mapped
mark
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME

Object attributes: xml-roles:mark

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

Interfaces: IAccessibleText2; IAccessibleHypertext2;

UIA
Control Type: Text
ATK

Role: ATK_ROLE_STATIC

Object attributes: xml-roles:mark

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

Interfaces: AtkText; AtkHypertext

 

AX
AXRole: AXGroup
AXSubrole: ?
AXRoleDescription: "highlighted content"
math
WAI-ARIAmath role
MSAA + UIA Express
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
menu (type attribute in the popup menu state)
WAI-ARIAmenu role
MSAA + UIA Express
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
menu (type attribute in the toolbar state)
WAI-ARIAtoolbar role
MSAA + UIA Express
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
menuitem (type attribute in the Checkbox state)
WAI-ARIAmenuitemcheckbox role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
MSAA + UIA Express
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
menuitem (type attribute in the Command state)
WAI-ARIAmenuitem role
MSAA + UIA Express
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
menuitem (type attribute in the Radio state)
WAI-ARIAmenuitemradio role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
MSAA + UIA Express
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
meta
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
meter
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
?? not sure this is right.  maybe a number or value or something?
Use UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_PROGRESSBAR
Interfaces: IAccessibleValue
UIA
Control Pattern: RangeValue
Properties: Set the control pattern's IsReadOnly property to true. Set LocalizedControlType to "Meter".
ATK
Role: ATK_ROLE_LEVEL_BAR
Interfaces: AtkValue
Properties: AtkRange
AX
AXRole: AXProgressIndicator
AXSubrole: (nil)
AXRoleDescription: "Progress Indicator"
nav
WAI-ARIAnavigation role
MSAA + UIA Express
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
noscript
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
object
WAI-ARIANo corresponding role
MSAA + UIA Express?? would pane or window work??

depends on format of data file. examples include document, client, graphic and unknown.

Use MSAA or UIA guidance
MSAA + IAccessible2
Depends on format of data file. If 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
AXDepends on format of data file.
ol
WAI-ARIAlist role
MSAA + UIA Express
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
optgroup
WAI-ARIAgroup role
MSAA + UIA Express
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
option (in a list of options or represents a suggestion in a datalist)
WAI-ARIAoption role, with the aria-selected state set to "true" if the element's selectedness is true, or "false" otherwise.
MSAA + UIA Express
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
output
WAI-ARIAstatus role
MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Control Type: Group
LiveSetting: Polite

If the output element has a for attribute, the element referenced (via the id attribute value) will have a ControllerFor property pointing to the output.

ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
p
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_PARAGRAPH
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Text
ATK
Role: ATK_ROLE_PARAGRAPH
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
param
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
picture
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
pre
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT ??group?
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME
Styles used are mapped to text attributes on the accessible object.
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Text ??Group??
ATK
Role: ATK_ROLE_SECTION
Styles used are mapped to text attributes on the accessible object.
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
progress
WAI-ARIAprogressbar 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
MSAA + UIA Express
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
q
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT ??group??
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME
Children: ROLE_SYSTEM_TEXT wrapped by ROLE_SYSTEM_STATICTEXT created for quote marks
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Text ??Group??
ATK
Role: ATK_ROLE_STATIC
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
rp
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT ??group??
Use MSAA or UIA guidance
MSAA + IAccessible2
No accessible object. No child elements are exposed if ruby is supported by the browser.
UIA
Control Type: Text ??Group??
ATK
No accessible object. No child elements are exposed if ruby is supported by the browser.
AX?
rt
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
No accessible object.
UIA
Control Type: Text
ATK
No accessible object.
AX?
ruby
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT ??group??
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME
UIA
Control Type: Text ??Group??
ATK
Role: ATK_ROLE_STATIC
AX?
s
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Exposed as "text-line-through-style:solid" text attribute 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. Exposed as "text-line-through-style:solid" text attribute on the text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
samp
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Styles are mapped into 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 are mapped into text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
script
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
section
WAI-ARIA

region role

Note:It is strongly recommended that user agents such as screen readers only convey the presence of, and provide navigation for section elements, when the section element has an accessible name.

MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Control Type: Group
Localized Control Type: "section" (all lower-case)
Landmark Type: Custom
Localized Landmark Type: "region" (all lower-case)
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
select (with a multiple attribute or size attribute having value greater than 1)
WAI-ARIAlistbox role
MSAA + UIA Express
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
select (with NO multiple attribute and NO size attribute having value greater than 1)
WAI-ARIAcombobox role
MSAA + UIA Express
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
small
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Exposed by UIA_FontSizeAttributeId of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Exposed as "font-size" text attribute on the text container.
UIA
No accessible object. Exposed by UIA_FontSizeAttributeId of the TextRange control pattern implemented on a parent accessible object.
ATK
No accessible object. Exposed as "font-size" text attribute on the text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
source
WAI-ARIANo corresponding role
MSAA + UIA Express
Do not expose this object
MSAA + IAccessible2
Not mapped
UIA
Do not expose this object
ATK
Not mapped
AX
Do not expose this object
span
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Not mapped
UIA
Control Type: Group
ATK
Not mapped
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
strong
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
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 attribute identifiers 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"
style
WAI-ARIANo corresponding role
MSAA + UIA Express
Do not expose this object
MSAA + IAccessible2
Not mapped
UIA
Do not expose this object
ATK
Not mapped
AX
Do not expose this object
sub
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Exposed by UIA_IsSubscriptAttributeId of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Exposed as "text-position:sub" text attribute on its text container.
UIA
No accessible object. Exposed by UIA_IsSubscriptAttributeId of the TextRange control pattern implemented on a parent accessible object.
ATK
No accessible object. Exposed as "text-position:sub" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
summary
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_PUSHBUTTON
States: ??has popup??
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_PUSHBUTTON
UIA
Control Type: Button
Control Pattern: ExpandCollapse
ATK
Role: ATK_ROLE_PUSHBUTTON
AX
AXRole: AXDisclosureTriangle
AXSubrole: (nil)
AXRoleDescription: "disclosure triangle"
sup
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Exposed by UIA_IsSuperscriptAttributeId of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Exposed as "text-position:super" text attribute on its text container.
UIA
No accessible object. Exposed by UIA_IsSuperscriptAttributeId of the TextRange control pattern implemented on a parent accessible object.
ATK
No accessible object. Exposed as "text-position:super" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
svg
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GRAPHIC
MSAA + IAccessible2
Role: ROLE_SYSTEM_GRAPHIC
UIA
Control Type: Image
ATK
Role: ATK_ROLE_IMAGE
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
table
WAI-ARIAtable role
MSAA + UIA Express
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
tbody
WAI-ARIArowgroup role
MSAA + UIA Express
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
td (ancestor table element has table role)
WAI-ARIAcell role
MSAA + UIA Express
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
td (ancestor table element has grid role)
WAI-ARIAgridcell role
MSAA + UIA Express
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
template
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
textarea
WAI-ARIAtextbox role, with the aria-multiline property set to "true"
MSAA + UIA Express
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
tfoot
WAI-ARIArowgroup role
MSAA + UIA Express
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
th (is neither column header nor row header, and ancestor table element has table role)
WAI-ARIAcell role
MSAA + UIA Express
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
th (is neither column header nor row header, and ancestor table element has grid role)
WAI-ARIAgridcell role
MSAA + UIA Express
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
th (is a column header)
WAI-ARIAcolumnheader role
MSAA + UIA Express
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
th (is a row header)
WAI-ARIArowheader role
MSAA + UIA Express
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
thead
WAI-ARIArowgroup role
MSAA + UIA Express
Use WAI-ARIA mapping
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Control Type: Header
ATK
Use WAI-ARIA mapping
AX
Use WAI-ARIA mapping
time
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME

Object attributes: xml-roles:time

"datetime" attribute on the containing time, text content used as a value

Interfaces: IAccessibleText2; IAccessibleHypertext2;

UIA?
ATK

Role: ATK_ROLE_STATIC

Object attributes: xml-roles:time

"datetime" attribute on the containing time, text content used as a value

Interfaces: AtkText; AtkHypertext

 

AX
AXRole: AXGroup
AXSubrole: ?
AXRoleDescription: ?
title
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
tr
WAI-ARIArow role
MSAA + UIA Express
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
track
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
u
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Exposed by UIA_UnderlineStyleAttributeId of the TextRange control pattern implemented on a parent accessible object.
MSAA + IAccessible2
No accessible object. Exposed as "text-underline-style:solid" text attribute on its text container.
UIA
No accessible object. Exposed by UIA_UnderlineStyleAttributeId of the TextRange control pattern implemented on a parent accessible object.
ATK
No accessible object. Exposed as "text-underline-style:solid" text attribute on its text container.
AX?
ul
WAI-ARIAlist role
MSAA + UIA Express
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
var
WAI-ARIANo corresponding role
MSAA + UIA Express
No accessible object. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible object.
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"
video
WAI-ARIANo corresponding role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: ROLE_SYSTEM_GROUPING
UIA
Control Type: Group
ATK
Role: ATK_ROLE_VIDEO
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the video element exposed as AXToolbar.
wbr
WAI-ARIANo corresponding role
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
A line break if added is exposed via IAccessibleText on its text container
UIANot mapped
ATK
A line break if added is exposed via Text interface on its text container
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"

HTML Attribute State and Property Mappings

Notes:

abbr [th]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Object attributes: "abbr" until child abbr element is provided
UIA 
ATK
Object attributes: "abbr" until child abbr element is provided
AX 
Comments 
accept [input]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
accept-charset [form]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
accesskey [HTML elements]
WAI-ARIANot mapped
MSAA + UIA ExpressaccKeyboardShortcut
MSAA + IAccessible2
a key binding accessible by accKeyboardShortcut and IAccessibleAction::keyBinding
UIA
Properties: AcceleratorKey
ATK
atk_action_get_keybinding
AXAXAccessKey: <value>
Comments 
action [form]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
allowfullscreen [iframe]
WAI-ARIA
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
alt [area; img; input]
WAI-ARIANot mapped
MSAA + UIA ExpressaccName
MSAA + IAccessible2 Used for accessible name, exposed via accName
UIA
Properties: Name
ATK
Used for accessible name, exposed via atk_object_get_name
AXAXDescription: <value>
Comments 
async [script]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
autocomplete "on|off" [form]
WAI-ARIA

aria-autocomplete

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

MSAA + UIA ExpressNot mapped
MSAA + IAccessible2
States: STATE_SUPPORTS_AUTOCOMPLETION on text form controls unitl the value is overriden by control
UIANot mapped
ATK
States: ATK_STATE_SUPPORTS_AUTOCOMPLETION on text form controls unitl the value is overriden by control
AXNot mapped
CommentsIf the element includes both autocomplete and aria-autocomplete attributes with valid values, User Agents MUST expose only the autocomplete attribute value.
autocomplete [input; select; textarea]
WAI-ARIA

aria-autocomplete

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

MSAA + UIA ExpressNot mapped
MSAA + IAccessible2
States: STATE_SUPPORTS_AUTOCOMPLETION
UIANot mapped
ATK
States: ATK_STATE_SUPPORTS_AUTOCOMPLETION
AXNot mapped
Comments If the element includes both autocomplete and aria-autocomplete attributes with valid values, User Agents MUST expose only the autocomplete attribute value.
autofocus [button; input; keygen; select; textarea]
WAI-ARIANot mapped - aria-flowto?
MSAA + UIA ExpressN/A
MSAA + IAccessible2
Not mapped
UIAN/A
ATK
Not mapped
AXN/A
Comments 
autoplay [audio; video]
WAI-ARIANot mapped
MSAA + UIA ExpressN/A
MSAA + IAccessible2
Not mapped
UIAN/A
ATK
Not mapped
AXN/A
Comments 
border [table]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
challenge [keygen]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
charset [meta]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
charset [script]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
checked (if present) [menuitem; input]
WAI-ARIAaria-checked (state)="true"
MSAA + UIA ExpressSet the STATE_SYSTEM_CHECKED state
MSAA + IAccessible2
States: STATE_SYSTEM_CHECKED
UIAExpose as ToggleState property in Toggle control pattern
ATK
States: ATK_STATE_CHECKED
AXAXValue: 1
Comments 
checked (if absent) [menuitem; input]
WAI-ARIAaria-checked (state)="false"
MSAA + UIA ExpressClear the STATE_SYSTEM_CHECKED state
MSAA + IAccessible2
Not mapped
UIAExpose as ToggleState property in Toggle control pattern.
ATK
Not mapped
AXAXValue: 0
Comments 
cite [blockquote; del; ins; q]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AXAXURL: <value>
Comments 
class [HTML elements]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
cols [textarea]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AXAXRangeForLine: <value>
Comments 
colspan [td; th]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
exposed via IAccessibleTableCell::columnExtent
UIA 
ATK
exposed via atk_table_get_column_extent_at
AXAXColumnIndexRange:
loc=<column index>
len=<colspan value>
Comments 
command [menuitem]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
content [meta]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
contenteditable [HTML elements]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
States: IA2_STATE_EDITABLE on this and every nested text accessible object
Interfaces: IAccessibleEditableText on this and every nested text accessible object
UIA 
ATK
States: ATK_STATE_EDITABLE on this and every nested text accessible object
Interfaces: AtkEditableText on this and every nested text accessible object
AX?
Comments 
contextmenu [HTML elements]
WAI-ARIAaria-haspopup="true"
MSAA + UIA ExpressExpose as STATE_SYSTEM_HASPOPUP. If on a push button, change the role to ROLE_SYSTEM_BUTTONMENU.
MSAA + IAccessible2
Linked menu is available in browser's context menu on the element
UIAExpose state of the pop-up activities in the ExpandCollapseState property in the ExpandCollapse control pattern.
ATK
Linked menu is available in browser's context menu on the element
AX
Actions: AXShowMenu; AXPress
Comments 
controls [audio; video]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AXControls exposed as AXToolbar
Comments 
coords [area]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Defines an accessible object's dimensions (IAccessible::accLocation)
UIA 
ATK
Defines an accessible object's dimensions, exposed via atk_component_get_position and atk_component_get_size
AX 
Comments 
crossorigin [audio; img; link; script; video]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
data [object]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
datetime [del; ins]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Object attributes: datetime: text content used as a value
UIA 
ATK
Object attributes: datetime: text content used as a value
AX?
Comments 
datetime [time]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Object attributes: datetime: text content used as a value
UIA 
ATK
Object attributes: datetime: text content used as a value
AX?
Comments 
default [track]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
defer [script]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
dir [HTML elements]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Exposed as "writing-mode" text attribute on the text container.
UIA 
ATK
Exposed as "writing-mode" text attribute on the text container.
AX?
Comments 
dirname [input; textarea]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX?
Comments 
disabled [button; menuitem; fieldset; input; keygen; optgroup; option; select; textarea]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
States: STATE_SYSTEM_UNAVAILABLE
UIA 
ATK
States: No interactive states like ATK_STATE_FOCUSABLE
AXAXEnabled: NO
Comments 
download [a; area]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX?
Comments 
draggable [HTML elements]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Object attributes: draggable:true
UIA 
ATK
Object attributes: draggable:true
AX?
Comments 
dropzone [HTML elements]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX?
Comments 
enctype [form]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
for [label]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Used for accessible name
Relations: IA2_RELATION_LABEL_FOR and IA2_RELATION_LABEL_BY relations between label and referred element
UIA 
ATK
Used for accessible name
Relations: ATK_RELATION_LABEL_FOR and ATK_RELATION_LABEL_BY relations between label and referred element
AX 
Comments 
for [output]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Relations: IA2_RELATION_CONTROLLED_BY with an element pointed by the attribute. Paired element exposes IA2_RELATION_CONTROLLER_FOR relation.
UIA 
ATK
Relations: ATK_RELATION_CONTROLLED_BY with an element pointed by the attribute. Paired element exposes ATK_RELATION_CONTROLLER_FOR relation.
AX 
Comments 
form [button; fieldset; input; keygen; label; object; output; select; textarea]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formaction [button; input]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formenctype [button; input]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formmethod [button; input]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formnovalidate [button; input]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formtarget [button; input]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
headers [td; th]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Links the cell to its header cells. Exposed via IAccessibleTableCell::rowHeaderCells and IAccessibleTableCell::columnHeaderCells.
UIA 
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.
AXExpose via AXColumnHeaderUIElements and AXRowHeaderUIElements
Comments 
height [canvas; embed; iframe; img; input; object; video]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Defines an accessible object's height (IAccessible::accLocation)
UIA 
ATK
Defines an accessible object's height (atk_component_get_size)
AX 
Comments 
hidden [HTML elements]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Excludes the element from being exposed in the accessibility tree.
UIA 
ATK
Excludes the element from being exposed in the accessibility tree.
AXNot exposed in AX API
Comments 
high [meter]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX?
Comments 
href [a; area]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Creates a link accessible object. For details, refer to a and area element mappings.
UIA 
ATK
Creates a link accessible object. For details, refer to a and area element mappings.
AXAXURL: <value>
Comments 
href [link]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
hreflang [a; area; link]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
http-equiv [meta]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
icon [menuitem]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
id [HTML elements]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
indeterminate [IDL] [HTML elements; menuitem; input]
WAI-ARIAaria-checked (state)="mixed"
MSAA + UIA Express
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 
ismap [img]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
keytype [keygen]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
kind [track]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
label [menuitem; menu; optgroup; option; track]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Associates the accessible name
UIA 
ATK
Associates the accessible name
AX 
Comments 
lang [HTML elements]
WAI-ARIA 
MSAA + UIA ExpressUnknown
MSAA + IAccessible2
Exposed as "language" text attribute on the text container
UIAUnknown
ATK
Exposed as "language" text attribute on the text container
AX AXLanguage: <value>
Comments

chrome OSX lang bug

IE lang bug

list [input]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Associates the autocomplete list with the control. Refer to input elements mapping.
UIA 
ATK
Associates the autocomplete list with the control. Refer to input elements mapping.
AX 
Comments 
longdesc [img, frame, iframe]
WAI-ARIANo
MSAA + UIA Expressaccdescription (Internet Explorer only)
MSAA + IAccessible2
Actions: showlongdesc (exposed on img only)
UIA
Not mapped
ATK
Actions: showlongdesc (exposed on img only)
AX
Not mapped
CommentsIE 8+ populates the accdescription with the value of the longdesc attribute. This is brittle as it is overwritten when aria-describedby is used.
loop [audio; video]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
low [meter]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
manifest [html]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
max [input]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Exposed as IAccessibleValue::maximumValue if the element implements the interface
UIA 
ATK
Exposed as atk_value_get_maximum_value if the element implements the AtkValue interface
AXAXMaxValue: <value>
Comments 
max [meter; progress]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Exposed as IAccessibleValue::maximumValue if the element implements the interface
UIA 
ATK
Exposed as atk_value_get_maximum_value if the element implements the AtkValue interface
AXAXMaxValue: <value>
Comments 
maxlength [input; textarea]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
media [link; source; style]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
mediagroup [audio; video ]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
method [form]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
min [input]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Exposed as IAccessibleValue::minimumValue if the element implements the interface
UIA 
ATK
Exposed as atk_value_get_minimum_value if the element implements the AtkValue interface
AXAXMinValue: <value>
Comments 
min [meter]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Exposed as IAccessibleValue::minimumValue if the element implements the interface
UIA 
ATK
Exposed as atk_value_get_minimum_value if the element implements the AtkValue interface
AXAXMinValue: <value>
Comments 
multiple [input]
WAI-ARIAaria-multiselectable property set to "true"
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
multiple [select]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
States: STATE_SYSTEM_MULTISELECTABLE
A multi selectable listbox accessible object, refer to select element
UIA 
ATK
States: ATK_STATE_SYSTEM_MULTISELECTABLE
A multi selectable listbox accessible object, refer to select element
AX 
Comments 
muted [audio; video]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [button; fieldset; input; keygen; output; select; textarea]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [ form]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [iframe; object]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [map]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [meta]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [param]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
novalidate [form]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
open [details]
WAI-ARIAaria-expanded="true | false"
MSAA + UIA ExpressSTATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
MSAA + IAccessible2STATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
UIA ExpandCollapsePattern
ATK
States: ATK_STATE_COLLAPSED or ATK_STATE_EXPANDED depending on the attribute value
AXAXExpanded: YES|NO
CommentsSet properties on the summary element.
open [dialog]
WAI-ARIAaria-expanded="true | false"
MSAA + UIA ExpressSTATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
MSAA + IAccessible2STATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
UIA ExpandCollapsePattern
ATK
States: ATK_STATE_COLLAPSED or ATK_STATE_EXPANDED depending on the attribute value
AXAXExpanded: YES|NO
Comments
optimum [meter]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
pattern [input]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
States: IA2_STATE_INVALID_ENTRY if value doesn't meet the pattern
UIA 
ATK
States: ATK_STATE_INVALID_ENTRY if value doesn't meet the pattern
AX 
Comments 
placeholder [input; textarea]
WAI-ARIAaria-placeholder
MSAA + UIA Express
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
When the placeholder and aria-placeholder attributes are both present, and the placeholder attribute's value is non-empty, user agents MUST expose the value of the placeholder attribute, and ignore aria-placeholder. If the placeholder attribute's value is empty, then user agents MUST expose the value of the aria-placeholder attribute.
poster [video]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
preload [audio; video]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
radiogroup [menuitem]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
readonly [input; textarea]
WAI-ARIA 
MSAA + UIA ExpressSTATE_SYSTEM_READONLY
MSAA + IAccessible2
Adds STATE_SYSTEM_READONLY bit to input and textarea elements
UIA 
ATK
Removes ATK_STATE_EDITABLE bit bit from input and textarea elements
AXAXEnabled: NO
Comments 
rel [a; area; link]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
required [input; select; textarea]
WAI-ARIAaria-required
MSAA + UIA Express

Not mapped *

* Exposed as STATE_SYSTEM_ALERT_LOW, STATE_SYSTEM_ALERT_HIGH in Firefox.

MSAA + IAccessible2
States: IA2_STATE_REQUIRED
UIAExpose as IsrequiredForForm property.
ATK
States: ATK_STATE_REQUIRED
AXAXRequired: YES
Comments?
reversed [ol]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Reverses the numbering of the child list item accessible objects.
UIA 
ATK
Reverses the numbering of the child list item accessible objects.
AX 
Comments 
rows [textarea]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
rowspan [td; th]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
exposed via IAccessibleTableCell::rowExtent
UIA 
ATK
Exposed via atk_table_get_row_extent_at
AXAXRowIndexRange:
loc=<row index>
len=<rowspan value>
Comments 
sandbox [iframe]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
spellcheck [HTML elements]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Mapped to "invalid" text attribute on the text container
UIA 
ATK
Mapped to "invalid" text attribute on the text container
AX 
Comments 
scope [th]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Defines whether the element is a row or column header (refer to th element)
UIA 
ATK
Defines whether the element is a row or column header (refer to th element)
AX 
Comments 
scoped [style]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
seamless [iframe]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
selected [option]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
States: STATE_SYSTEM_SELECTED; if the container widget has DOM focus then STATE_SYSTEM_FOCUSED (refer to option element)
UIA 
ATK
States: ATK_STATE_SELECTED; if the container widget has DOM focus then ATK_STATE_FOCUSED (refer to option element)
AX 
Comments 
shape [area]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
size [input; select]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
If greater than 1, then creates a listbox accessible object. Refer to select element for details.
UIA 
ATK
If greater than 1, then creates a listbox accessible object. Refer to select element for details.
AX 
Comments 
sizes [link]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
span [col; colgroup]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
exposed as IAccessibleTableCell::columnExtent on all cells at the column
UIA 
ATK
Exposed via atk_table_get_column_extent_at
AX 
Comments 
src [ audio; embed; iframe; img; input; script; source; track; video]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Object attributes: src on img only
UIA 
ATK
Object attributes: src on img only
AX 
Comments 
srcdoc [iframe]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
srclang [track]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
start [ol]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Changes the first number of the child list item accessible objects to match the start attribute's value.
UIA 
ATK
Changes the first number of the child list item accessible objects to match the start attribute's value.
AX 
Comments 
step [input]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Exposed as atk_value_get_minimum_increment if the element implements the AtkValue interface
AX 
Comments 
style [HTML elements]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Refer to CSS accessibility mapping
UIA 
ATK
Refer to CSS accessibility mapping
AX 
Comments 
tabindex [HTML elements]
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
States: STATE_SYSTEM_FOCUSABLE; when the element has DOM focus then STATE_SYSTEM_FOCUSED
UIA 
ATK
States: ATK_STATE_FOCUSABLE; when the element has DOM focus then ATK_STATE_FOCUSED
AX 
Comments 
target [a; area]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
target [base]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
target [form]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
title [HTML elements]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Associates the accessible name or if it was provided otherwise then accessible description
UIA 
ATK
Associates the accessible name or if it was provided otherwise then accessible description
AXAXHelp: <value>
Comments 
title [abbr; dfn]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Associates the accessible name
UIA 
ATK
Associates the accessible name
AXAXHelp: <value>
Comments 
title [menuitem]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Associates the accessible name or if it was provided otherwise then accessible description
UIA 
ATK
Associates the accessible name or if it was provided otherwise then accessible description
AXAXHelp: <value>
Comments 
title [link]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX
Not mapped
Comments 
title [link; style]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX
Not mapped
Comments 
translate [HTML elements]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
type [a; area; link]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
type [button]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
submit type may be a default button in the form
UIA 
ATK
submit type may be a default button in the form
AX 
Comments 
type [button; input]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Defines the accessible role, states and other properties, refer to type="text", type="password", type="button", etc
UIA 
ATK
Defines the accessible role, states and other properties, refer to type="text", type="password", type="button", etc
AX 
Comments 
type [menuitem]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Defines the accessible role and states, refer to type="command"
UIA 
ATK
Defines the accessible role and states: type="command"
AX 
Comments 
type [embed; object; script; source; style]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
type [menu]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
typemustmatch [object]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
usemap [img; object]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Responsible for image map creation, refer to img element
UIA 
ATK
Responsible for image map creation, refer to img element
AX 
Comments 
value [button; option]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
value [input]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Associates the accessible value for entry type input elements and accessible name for button type input elements
UIA 
ATK
Associates the accessible value for entry type input elements and accessible name for button type input elements
AXAXValue: <value>
Comments 
value [li]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Exposed as first text node of li's accessible object.
UIA 
ATK
Exposed as first text node of li's accessible object.
AX
Exposed as AXValue: <value> with accessible object:
AXRole: AXLlistMarker
AXSubrole: (nil)
AXRoleDescription: list marker
Comments 
value [meter; progress]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Exposed as IAccessibleValue::currentValue
UIA 
ATK
Exposed as atk_value_get_current_value
AXAXValue: <value>
Comments 
value [param]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
width [canvas; embed; iframe; img; input; object; video]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Defines an accessible object's width (IAccessible::accLocation)
UIA 
ATK
Defines an accessible object's width (atk_component_get_size)
AXAXSize: w=n
Comments 
wrap [textarea]
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 

Accessible Name and Description Calculation

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.

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

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

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

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

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

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

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

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

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

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

input type="image"

input type="image" Accessible Name Calculation

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

input type="image" Accessible Description Calculation

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

button Element

button Element Accessible Name Calculation

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

button Element Accessible Description Calculation

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

fieldset and legend Elements

fieldset Element Accessible Name Calculation

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

fieldset Element Accessible Description Calculation

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

Other Form Elements

Other Form Elements Accessible Name Calculation

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

Other Form Elements Accessible Description Calculation

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

summary Element

summary Element Accessible Name Calculation

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

summary Element Accessible Description Calculation

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

figure and figcaption Elements

figure Element Accessible Name Calculation

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

figure Element Accessible Description Calculation

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

img Element

img element Accessible Name Calculation

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

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

img Element Accessible Description Calculation

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

table Element

table Element Accessible Name Calculation

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

table Element Accessible Description Calculation

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

a Element

a Element Accessible Name Calculation

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

a Element Accessible Description Calculation

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

Section Elements and Grouping Content Elements Not listed Elsewhere

Section and Grouping Element Accessible Name Calculation

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

Section and Grouping Element Accessible Description Calculation

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

Text Level Elements Not listed Elsewhere

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

Text Level Element Accessible Name Calculation

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

Text Level Element Accessible Description Calculation

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

Accessible Feature Implementation Examples

summary and details Elements

Focus and Keyboard Interaction

The summary element should be focusable by default.

The details element should not focusable by default.

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

Role, Name, State and Property Mapping

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

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

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

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

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

The figure and figcaption Elements

to do

Acknowledgments

The following people contributed to the development of this document.

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

Enabling funders

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