HTML to Platform Accessibility APIs Implementation Guide

W3C Editor's Draft

This version:
http://rawgithub.com/w3c/html-api-map/master/index.html
Latest published version:
https://www.w3.org/TR/html-aapi/
Latest editor's draft:
http://rawgithub.com/w3c/html-api-map/master/index.html
Editors:
(The Paciello Group)
(New Zealand Government)
(Mozilla Foundation)

Abstract

This is draft documentation mapping HTML elements and attributes to accessibility API Roles, States and Properties on a variety of platforms. It provides recommendations on deriving the accessible names and descriptions for HTML elements. It also provides accessible feature implementation examples.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.

Beware. This specification is no longer in active maintenance and the HTML Working Group does not intend to maintain it further. See HTML Accessibility API Mappings 1.0 instead.

Warning

This document is subject to change without notice.

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.

This document was published by the HTML Working Group as an Editor's Draft.

Comments regarding this document are welcome. Please send them to public-html-comments@w3.org (archives).

Publication as an Editor's Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

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

This document is governed by the 1 March 2019 W3C Process Document.

1. Introduction: Accessibility APIs

This section is non-normative.

To provide access to desktop GUI applications, assistive technologies originally used heuristic techniques to determine the meaning of the user interface and built an alternative off screen model. For example, a row of labels displayed horizontally near the top of an application window might be a menu. Labels with a border drawn around them might be buttons. Heuristic techniques are not always accurate, however, and require assistive technologies to be updated whenever the software application is updated.

A much better technique is for the software application to provide the necessary information for interoperability with assistive technology. To meet this need, platform owners have developed specialized interfaces, called accessibility APIs, which can be used to communicate accessibility information about user interfaces to assistive technologies.

In the case of static Web pages, the Document Object Model (DOM) is used to represent the structure and state of the elements in the document being rendered by a user agent. The elements of the document are organized into a hierarchy of nodes known as the DOM tree. For traditional static Web pages, assistive technologies, such as screen readers, interact with user agents using the DOM. For UI elements that are known to be interactive, such as HTML form elements and desktop applications, assistive technologies may use platform accessibility APIs.

Accessibility APIs covered by this document are:

If User Agent developers need to expose to 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.

2. Exposing HTML features that do not directly map to accessibility API properties

This section is non-normative.

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, expose the undefined role, states and properties via that method.

IAccessible2 and ATK use object attributes to expose semantics that are not directly supported in the APIs. Object attributes are name-value pairs that are loosely specified, and very flexible for exposing things where there is no specific interface in an accessibility API. For example, at this time, the HTML5 header element can be exposed via an object attribute because accessibility APIs have no such role available.

For accessibility APIs that do not have "object attributes" per se, it is useful to find a similar mechanism or develop a new interface to expose name/value pairs. Under the Mac OS X Accessibility Protocol, all getters are already simply name-value pairs and it is possible to expose new semantics whenever necessary. Keep in mind, this also requires working with the assistive technology developers to gain support for the new semantics.

3. HTML Element to Accessibility API Role Mapping Matrix

Notes:

a (represents a hyperlink)
HTML4Yes
HTML5Yes
WAI-ARIAlink role
MSAA + UIA Express
Role: ROLE_SYSTEM_LINK
States: STATE_SYSTEM_LINKED to link and all its descendants. If link is visited then STATE_SYSTEM_TRAVERSED.
Actions: "Jump" action on link and all its descendants.
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_LINK
States: STATE_SYSTEM_LINKED to link and all its descendants. If link is visited then STATE_SYSTEM_TRAVERSED.
Actions: "jump" action on link and all its descendants.
Interfaces: IAccessibleHyperlink; IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Hyperlink
ATK
Role: ATK_ROLE_LINK
States: If link is visited then ATK_STATE_VISITED.
Actions: "jump" action on link and all its descendants.
Interfaces: AtkHyperlink; AtkText; AtkHypertext
AX
AXRole: AXLink
AXSubrole: (nil)
AXRoleDescription: "link"
Actions: AXPress
If link is visited:
AXVisited: YES
a (no href attribrute)
HTML4Yes
HTML5Yes
WAI-ARIANone
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_TEXT
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
abbr
HTML4Yes
HTML5Yes
WAI-ARIANone
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_TEXT
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
HTML4Yes
HTML5Yes
WAI-ARIANone
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: AXLandmarkContentInfo
AXRoleDescription: "content information"
Note: recommend AXRoleDescription of "address" to disambiguate from "contentinfo" landmark role. Refer to WebKit bug 83989
area (represents a hyperlink)
HTML4Yes
HTML5Yes
WAI-ARIAlink role
MSAA + UIA Express
Role: ROLE_SYSTEM_LINK
States: STATE_SYSTEM_LINKED
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_LINK exposed as a child of connected img element
States: STATE_SYSTEM_LINKED
Actions: jump
Interfaces: IAccessibleHyperlink
UIA
Control Type: Hyperlink
ATK
Role: ATK_ROLE_LINK exposed as a child of connected img element
Actions: jump
Interfaces: AtkHyperlink
AX
AXRole: AXLink
AXSubrole: (nil)
AXRoleDescription: "link"
area (no href attribute)
HTML4Yes
HTML5Yes
WAI-ARIANone
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_TEXT
AX
Not mapped
article
HTML4No
HTML5Yes
WAI-ARIAarticle role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_DOCUMENT
States: STATE_SYSTEM_READONLY
Object attributes: xml-roles:article
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Group
ATK
Role: ATK_ROLE_DOCUMENT_FRAME
Object attributes: xml-roles:article
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXDocumentArticle
AXRoleDescription: "article"
aside
HTML4No
HTML5Yes
WAI-ARIAcomplementary role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_NOTE
Object attributes: xml-roles:complementary
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Group
ATK
Role: ATK_ROLE_SECTION
Object attributes: xml-roles:complementary
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXLandmarkComplementary
AXRoleDescription: "complementary"
audio
HTML4No
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: ROLE_SYSTEM_GROUPING
UIA
Control Type: Group
ATK
Role: ATK_ROLE_PANEL
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the audio element exposed as AXToolbar.
b
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Exposed by UIA_FontWeightAttributeId of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible, exposed as "font-weight" text attribute on the text container. The value depends on the platform.
UIA
Doesn't have an accessible. Exposed by UIA_FontWeightAttributeId of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible, exposed as "font-weight" text attribute on the text container. The value depends on the platform.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
base
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
bdi
HTML4
HTML5
WAI-ARIANone
MSAA + UIA Express?
MSAA + IAccessible2
Doesn't have an accessible. May affect on "writing-mode" text attribute on its text container.
UIA?
ATK
Doesn't have an accessible. May affect on "writing-mode" text attribute on its text container.
AX
bdo
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
Doesn't have an accessible. Exposed as "writing-mode" text attribute on its text container.
UIA
Control Type: Text
ATK
Doesn't have an accessible. Exposed as "writing-mode" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
blockquote
HTML4Yes
HTML5Yes
WAI-ARIANone
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"
body
HTML4Yes
HTML5Yes
WAI-ARIAdocument role
MSAA + UIA Express
Role: ROLE_SYSTEM_DOCUMENT
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
MSAA + IAccessible2
Doesn't have an accessible. All DOM attributes are proccessed as they belonged to its document accessible.
UIA
Control Type: Document
ATK
Doesn't have an accessible. All DOM attributes are proccessed as they belonged to its document accessible. The document accessible has ATK_ROLE_DOCUMENT_FRAME.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
br
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_WHITESPACE
MSAA + IAccessible2
Role: ROLE_SYSTEM_WHITESPACE
UIA?
ATK
Doesn't have an accesible. Exposed as '\n' character via AtkText interface on the text container.
AX
Not mapped
button
HTML4Yes
HTML5Yes
WAI-ARIAbutton role
MSAA + UIA Express
Role: ROLE_SYSTEM_PUSHBUTTON
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_PUSHBUTTON
States: STATE_SYSTEM_DEFAULT if the button is default
Actions: press
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Button
?? When it is in a <menu> it defines a command.  Is it still a button, or is it a menuitem??
ATK
Role: ATK_ROLE_PUSH_BUTTON
States: ATK_STATE_DEFAULT if the button is default
Actions: press
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
canvas
HTML4No
HTML5Yes
WAI-ARIANone
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
HTML4Yes
HTML5Yes
WAI-ARIANone
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 containing table accessible
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 containing table accessible
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
cite
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
code
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
col
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
colgroup
HTML4Yes
HTML5Yes
WAI-ARIANone
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
HTML4No
HTML5Yes
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
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
MSAA + IAccessible2IA2_ROLE_CHECK_MENU_ITEM + object attribute checkable="true"
UIA
Control Type: MenuItem
Control Pattern: Toggle
ATKATK_ROLE_CHECK_MENU_ITEM + object attribute checkable="true"
AX
AXRole: AXCheckbox
AXSubrole: (nil)
AXRoleDescription: "check box"
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
HTML4No
HTML5Yes
WAI-ARIAmenuitem role
MSAA + UIA Express
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
MSAA + IAccessible2ROLE_SYSTEM_MENUITEM
UIA
Control Type: MenuItem
ATKATK_ROLE_MENU_ITEM
AXDepends on element used to define command
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
HTML4No
HTML5Yes
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
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
MSAA + IAccessible2IA2_ROLE_RADIO_MENU_ITEM + object attribute checkable="true"
UIA
Control Type: MenuItem
Control Pattern: Toggle
ATKATK_ROLE_RADIO_MENU_ITEM + object attribute checkable="true"
AX
AXRole: AXRadioButton
AXSubrole: (nil)
AXRoleDescription: "radio button"
data
HTML4No
HTML5
WAI-ARIA
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
datalist
HTML4No
HTML5Yes
WAI-ARIAlistbox role, with the aria-multiselectable property set to "false"
MSAA + UIA Express
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_HASPOPUP.
Use UIA guidance
MSAA + IAccessible2
Used to constuct a list of options for autocompletes (in other words it can have no accessible itself)
Role: ROLE_SYSTEM_LIST
UIA
Control Type: ComboBox
ATK
Used to constuct a list of options for autocompletes (in other words it can have no accessible itself)
Interfaces: AtkSelection
AX
AXRole: AXComboBox
AXSubrole: (nil)
AXRoleDescription: "combo box"
dd
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
MSAA + IAccessible2
Role: IA2_ROLE_PARAGRAPH
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA?
ATK
Role: ATK_ROLE_PARAGRAPH
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXDefinition
AXRoleDescription: "definition"
del
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
details
HTML4No
HTML5Yes
WAI-ARIANone
??dialog seems closer??
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: ROLE_SYSTEM_GROUPING
UIA
Control Type: Group ??window??
ATK
Role: ATK_ROLE_PANEL
AX?
dfn
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Used styles are exposed by text attributes on its text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Used styles are exposed by text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dialog
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
Role: ROLE_SYSTEM_DIALOG
MSAA + IAccessible2
Role: ROLE_SYSTEM_DIALOG
UIA
ATK
Role: ATK_ROLE_DIALOG
AX
div
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
May not have an accessible if has no semantic meaning. Otherwise
Role: IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA?
ATK
May not have an accessible if has no semantic meaning. Otherwise
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dl
HTML4Yes
HTML5Yes
WAI-ARIANone
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_LIST
AX
AXRole: AXList
AXSubrole: AXDefinitionList
AXRoleDescription: "definition list"
dt
HTML4Yes
HTML5Yes
WAI-ARIANone
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_LISTITEM
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXTerm
AXRoleDescription: "term"
em
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Used styles are mapped into text attributes on its text container
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Used styles are mapped into text attributes on its text container
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
embed
HTML4No
HTML5Yes
WAI-ARIANone
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
HTML4Yes
HTML5Yes
WAI-ARIANone
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: (nil)
AXRoleDescription: "group"
figcaption
HTML4No
HTML5Yes
WAI-ARIANone
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
HTML4No
HTML5Yes
WAI-ARIANone
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
??discuss graphic/image vs. group??
ATK
Role: ATK_ROLE_PANEL
Object attributes: xml-roles:figure
Name: related figcaption content
Relations: ATK_RELATION_LABELLED_BY with child figcaption element
AX?
footer
HTML4No
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_FOOTER
Object attributes: xml-roles:contentinfo if not contained by article or section elements
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Expose as text string "footer" in UIAutomationType_String
??discuss exposing localized type for all unmapped elements, or is it better to expose as Group??
ATK
Role: ATK_ROLE_FOOTER
Object attributes: xml-roles:contentinfo if not contained by article or section elements
Interfaces: AtkText; AtkHypertext
AX
If contained in article or section elements:
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Otherwise:
AXRole: AXGroup
AXSubrole: AXLandmarkContentInfo
AXRoleDescription: "footer"
form
HTML4Yes
HTML5Yes
WAI-ARIAform role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_FORM
UIA
Control Type: Group
ATK
Role: ATK_ROLE_FORM
AX
AXRole: AXGroup
AXSubrole: AXLandmarkForm
AXRoleDescription: "form"
h1, h2, h3, h4, h5, h6
HTML4Yes
HTML5Yes
WAI-ARIAheading role, with the aria-level property set to the element's outline depth
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
??or use xml-roles??
MSAA + IAccessible2
Role: IA2_ROLE_HEADING
Object attributes: level:<heading_level>
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Text
ATK
Role: ATK_ROLE_HEADING
Object attributes: level:<heading_level>
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXHeading
AXSubrole: (nil)
AXRoleDescription: "heading"
Properties: Use AXLevel to expose the heading level
head
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
header
HTML4No
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: IA2_ROLE_HEADER
Object attributes: xml-roles:banner if not contained by article or section elements
Interfaces: IAccessibleText2; IAccessibleHypertext2;
UIA
Control Type: Group
Properties: Do not put "header" in LocalizedControlType string because there is a header role for table headers
ATK
Role: ATK_ROLE_HEADER
Object attributes: xml-roles:banner if not contained by article or section elements
Interfaces: AtkText; AtkHypertext
AX
If contained in article or section elements:
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Otherwise:
AXRole: AXGroup
AXSubrole: AXLandmarkBanner
AXRoleDescription: "banner"
hr
HTML4Yes
HTML5Yes
WAI-ARIAseparator role
MSAA + UIA Express
Role: ROLE_SYSTEM_SEPARATOR
MSAA + IAccessible2
Role: ROLE_SYSTEM_SEPARATOR
UIA
Control Type: Separator
ATK
Role: ATK_ROLE_SEPARATOR
AX?
html
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
i
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Exposed by UIA_IsItalicAttributeId of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible, exposed as "font-style:italic" text attribute on its text container.
UIA
Doesn't have an accessible. Exposed by UIA_IsItalicAttributeId of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible, exposed as "font-style:italic" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
iframe
HTML4Yes
HTML5Yes
WAI-ARIANone
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: Document ??Pane??
ATK
Role: ATK_ROLE_INTERNAL_FRAME
Child: ATK_ROLE_DOCUMENT_FRAME
AX
AXRole: AXWebArea
AXSubrole: (nil)
AXRoleDescription: "html content"
img
HTML4Yes
HTML5Yes
WAI-ARIAimg role
MSAA + UIA Express
Role: ROLE_SYSTEM_GRAPHIC
MSAA + IAccessible2
Role: ROLE_SYSTEM_GRAPHIC
Actions: 1) "jump" or "click" inherited from the container if any 2) "showlongdesc" if the image has a longdesc attribute
Interfaces: IAccessibleImage
Children: ROLE_SYSTEM_LINK generated from area elements in case of image map
UIA
Control Type: Image
ATK
Role: ATK_ROLE_IMAGE
Actions: 1) "jump" or "click" inherited from the container if any 2) "showlongdesc" if the image has a longdesc attribute
Interfaces: AtkImage
Children: ATK_ROLE_LINK generated from area elements in case of image map
AX
AXRole: AXImage
AXSubrole: (nil)
AXRoleDescription: "image"
img (alt attribute is empty)
HTML4Yes
HTML5Yes
WAI-ARIApresentation role
MSAA + UIA Express
Do not expose this object
MSAA + IAccessible2
Do not expose this object
UIA
Control Type: Image
Properties: NameProperty set to the empty string
ATK
Do not expose this object
AX
Do not expose this object
input (type attribute in the Button state)
HTML4Yes
HTML5Yes
WAI-ARIAbutton role
MSAA + UIA Express
Role: ROLE_SYSTEM_PUSHBUTTON
MSAA + IAccessible2
Role: ROLE_SYSTEM_PUSHBUTTON
Actions: press
UIA
Control Type: Button
ATK
Role: ATK_ROLE_PUSH_BUTTON
Actions: press
AX
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Button state and parent is a menu)
HTML4?
HTML5?
WAI-ARIA?
MSAA + UIA Express
Role: ROLE_SYSTEM_MENUITEM
MSAA + IAccessible2
Role: ROLE_SYSTEM_MENUITEM
UIA
Control Type: MenuItem
ATK
Role: ATK_ROLE_MENU_ITEM
AX?
input (type attribute in the Color state)
HTML4No
HTML5Yes
WAI-ARIA?
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)
HTML4Yes
HTML5Yes
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
Role: ROLE_SYSTEM_CHECKBUTTON
MSAA + IAccessible2
Role: ROLE_SYSTEM_CHECKBUTTON
States: IA2_STATE_CHECKABLE; STATE_SYSTEM_CHECKED if checked; STATE_SYSTEM_MIXED if in mixed state
Actions: "check" or "uncheck" depending on the state
UIA
Control Type: CheckBox
ATK
Role: ATK_ROLE_CHECK_BOX
States: ATK_STATE_CHECKED if checked; ATK_STATE_INDETERMINATE if in mixed state
Object attributes: checkable:true
Actions: "check" or "uncheck" depending on the state
AX
AXRole: AXCheckBox
AXSubrole: (nil)
AXRoleDescription: "check box"
input (type attribute in the Checkbox state and parent is a menu)
HTML4?
HTML5?
WAI-ARIA?
MSAA + UIA Express
Role: ROLE_SYSTEM_CHECKBUTTON
UIA MenuItem
MSAA + IAccessible2
Role: IA2_ROLE_CHECK_MENU_ITEM
States: IA2_STATE_CHECKABLE; STATE_SYSTEM_CHECKED if checked; STATE_SYSTEM_MIXED if in mixed state
UIA
Control Type: MenuItem
Control Pattern: Toggle
ATK
Role: ATK_ROLE_CHECK_MENU_ITEM
States: ATK_STATE_CHECKED if checked; ATK_STATE_INDETERMINATE if in mixed state
Object attributes: checkable:true
AX?
input (type attribute in the Date state)
HTML4No
HTML5Yes
WAI-ARIANone
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)
HTML4No
HTML5Yes
WAI-ARIANone
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 Local Date and Time state)
HTML4No
HTML5Yes
WAI-ARIANone
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)
HTML4No
HTML5Yes
WAI-ARIAtextbox role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
UIA Edit
MSAA + IAccessible2
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
UIA
Control Type: Edit
ATK
Role: ATK_ROLE_ENTRY
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AX
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the File Upload state)
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_PUSHBUTTON
MSAA + IAccessible2
Role: IA2_ROLE_TEXT_FRAME
Children: A button and label (implementation specific)
UIA
Control Type: Button
ATK
Role: ATK_ROLE_TEXT
Children: ATK_ROLE_PUSH_BUTTON when pressed ATK_ROLE_FILE_CHOOSER dialog shown
AX
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Hidden state)
HTML4Yes
HTML5Yes
WAI-ARIANone
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)
HTML4Yes
HTML5Yes
WAI-ARIAbutton role
MSAA + UIA Express
Role: ROLE_SYSTEM_PUSHBUTTON
MSAA + IAccessible2
Role: ROLE_SYSTEM_PUSHBUTTON
States: STATE_SYSTEM_DEFAULT if the button is default
Actions: press
UIA
Control Type: Button
ATK
Role: ATK_ROLE_PUSH_BUTTON
States: ATK_STATE_DEFAULT if the button is default
Actions: press
AX
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Image Button state and parent is a menu)
HTML4?
HTML5?
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA
?? does this define a command??
ATK?
AX?
input (type attribute in the Month state)
HTML4No
HTML5Yes
WAI-ARIANone
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)
HTML4No
HTML5Yes
WAI-ARIAspinbutton role
MSAA + UIA Express
Role: ROLE_SYSTEM_SPINBUTTON
MSAA + IAccessible2
Role: ROLE_SYSTEM_SPINBUTTON or ROLE_SYSTEM_TEXT (implementation dependent)
UIA
Control Type: Spinner
ATK
Role: ATK_ROLE_SPIN_BUTTON or ATK_ROLE_ENTRY (implementation dependent)
AX
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
Note: Stepper controls are assigned roles seperately from the AXTextField in Webkit. The stepper is not currently recognized by VoiceOver. Refer to Webkit bug 79095
input (type attribute in the Password state)
HTML4Yes
HTML5Yes
WAI-ARIAtextbox role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
States: STATE_SYSTEM_PROTECTED
UIA Edit with UIA_IsPasswordPropertyId
MSAA + IAccessible2
Role: ROLE_SYSTEM_TEXT
States: STATE_SYSTEM_PROTECTED; IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
UIA
Control Type: Edit
Properties: UIA_IsPasswordPropertyId
ATK
Role: ATK_ROLE_PASSWORD_TEXT
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE until readonly
Actions: activate
AX
AXRole: AXTextField
AXSubrole: AXSecureTextField
AXRoleDescription: "secure text field"
input (type attribute in the Radio Button state)
HTML4Yes
HTML5Yes
WAI-ARIAradio role, with the aria-checked state set to "true" if the element's checkedness is true, or "false" otherwise
MSAA + UIA Express
Role: ROLE_SYSTEM_RADIOBUTTON
MSAA + IAccessible2
Role: ROLE_SYSTEM_RADIOBUTTON
States: IA2_STATE_CHECKABLE and STATE_SYSTEM_CHECKED if checked
Actions: select
UIA
Control Type: RadioButton
ATK
Role: ATK_ROLE_RADIO_BUTTON
States: ATK_STATE_CHECKED if checked
Object attributes: checkable:true
Actions: select
AX
AXRole: AXRadioButton
AXSubrole: (nil)
AXRoleDescription: "radio button"
input (type attribute in the Radio Button state and parent is a menu)
HTML4?
HTML5?
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA
Control Type: MenuItem
Control Pattern: Toggle
ATK?
AX?
input (type attribute in the Range state)
HTML4No
HTML5Yes
WAI-ARIAslider role
MSAA + UIA Express
Role: ROLE_SYSTEM_SLIDER
MSAA + IAccessible2
Role: ROLE_SYSTEM_SLIDER
Interfaces: IAccessibleValue
UIA
Control Type: Slider
ATK
Role: ATK_ROLE_SLIDER
Interfaces: AtkValue
AX
Slider:
AXRole: AXSlider
AXSubrole: (nil)
AXRoleDescription: "slider"
Properties: AXOrientation: AXHorizontalOrientation
Thumb:
AXRole: AXValueIndicator
AXSubrole: (nil)
AXRoleDescription: "value indicator"
Actions: AXIncrement; AXDecrement
input (type attribute in the Reset Button state)
HTML4Yes
HTML5Yes
WAI-ARIAbutton role
MSAA + UIA Express
Role: ROLE_SYSTEM_PUSHBUTTON
MSAA + IAccessible2
Role: ROLE_SYSTEM_PUSHBUTTON
Actions: press
UIA
Control Type: Button
ATK
Role: ATK_ROLE_PUSH_BUTTON
Actions: press
AX
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Search state with no suggestions source element)
HTML4No
HTML5Yes
WAI-ARIAtextbox role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
UIA Edit
MSAA + IAccessible2
Role: ROLE_SYSTEM_TEXT
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
UIA
Control Type: Edit
ATK
Role: ATK_ROLE_ENTRY
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AX
AXRole: AXTextField
AXSubrole: AXSearchField
AXRoleDescription: "search field"
input (type attribute in the Submit Button state)
HTML4Yes
HTML5Yes
WAI-ARIAbutton role
MSAA + UIA Express
Role: ROLE_SYSTEM_PUSHBUTTON
MSAA + IAccessible2
Role: ROLE_SYSTEM_PUSHBUTTON
States: STATE_SYSTEM_DEFAULT if the button is default
Actions: press
UIA
Control Type: Button
ATK
Role: ATK_ROLE_PUSH_BUTTON
States: ATK_STATE_DEFAULT if the button is default
Actions: press
AX
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Telephone state with no suggestions source element)
HTML4No
HTML5Yes
WAI-ARIAtextbox role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
UIA Edit
MSAA + IAccessible2
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
UIA
Control Type: Edit
ATK
Role: ATK_ROLE_ENTRY
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AX
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Text state with no suggestions source element)
HTML4Yes
HTML5Yes
WAI-ARIAtextbox role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
UIA Edit
MSAA + IAccessible2
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
UIA
Control Type: Edit
ATK
Role: ATK_ROLE_ENTRY
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AX
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element)
HTML4No
HTML5Yes
WAI-ARIAcombobox role, with the aria-owns property set to the same value as the list attribute
MSAA + UIA Express
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_HASPOPUP
MSAA + IAccessible2
Same as ordinal elements.
States: STATE_SYSTEM_HASPOPUP and IA2_STATE_SUPPORTS_AUTOCOMPLETION
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
UIA
Control Type: ComboBox
ATK
Same as ordinal elements.
States: ATK_STATE_SUPPORTS_AUTOCOMPLETION
Object attributes: haspopup:true
Actions: activate
Interfaces: AtkText; AtkEditableText
AX
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Time state)
HTML4No
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_SPINBUTTON
MSAA + IAccessible2
Role: ROLE_SYSTEM_SPINBUTTON
UIA
Control Type: Spinner
ATK
Role: ATK_ROLE_SPIN_BUTTON
AX
AXRole: AXTimeField
AXSubrole: (nil)
AXRoleDescription: "time field"
input (type attribute in the URL state with no suggestions source element)
HTML4No
HTML5Yes
WAI-ARIAtextbox role
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
UIA Edit
MSAA + IAccessible2
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
UIA
Control Type: Edit
ATK
Role: ATK_ROLE_ENTRY
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AX
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Week state)
HTML4No
HTML5Yes
WAI-ARIANone
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"
ins
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
kbd
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Mapped into "font-family:monospace" text attribute on its text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Mapped into "font-family:monospace" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
keygen
HTML4No
HTML5Yes
WAI-ARIAlistbox role, with the aria-multiselectable property set to "false"
MSAA + UIA Express
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_HASPOPUP
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_HASPOPUP; STATE_SYSTEM_EXPANDED or STATE_SYSTEM_COLLAPSED depending on the state
Actions: "open" or "close" depending on the state
UIA
Control Type: ComboBox
ATK
Role: ATK_ROLE_COMBO_BOX
States: ATK_STATE_EXPANDABLE; ATK_STATE_COLLAPSED if collapsed
Object attributes: haspopup:true
Actions: "open" or "close" depending on the state
AX
AXRole: AXList
AXSubrole: (nil)
AXRoleDescription: "list"
label
HTML4Yes
HTML5Yes
WAI-ARIANone
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
HTML4Yes
HTML5Yes
WAI-ARIANone
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)
HTML4Yes
HTML5Yes
WAI-ARIAlistitem 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_LISTITEM
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
li (parent is a menu)
HTML4No
HTML5Yes
WAI-ARIAlistitem 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: MenuItem
ATK
Role: ATK_ROLE_LISTITEM
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
link
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
main
HTML4No
HTML5Yes
WAI-ARIAmain role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_PARAGRAPH
Object attributes: xml-roles:main
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Group
ATK
Role: ATK_ROLE_SECTION
Object attributes: xml-roles:main
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXLandmarkMain
AXRoleDescription: "main"
map
HTML4Yes
HTML5Yes
WAI-ARIANone
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_TEXT
AX
Not mapped
mark
HTML4No
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
MSAA + IAccessible2
Doesn't have an accessible. Styles used to highlight the text are mapped into text attributes on the text container.
UIA
Control Type: Text
ATK
Doesn't have an accessible. Styles used to highlight the text are mapped into text attributes on the text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
math
HTML4No
HTML5Yes
WAI-ARIAmath role
MSAA + UIA Express
Role: ROLE_SYSTEM_EQUATION
MSAA + IAccessible2
Role: ROLE_SYSTEM_EQUATION
UIA?
ATK
Role: ATK_ROLE_UNKNOWN
AX
AXRole: AXGroup
AXSubrole: AXDocumentMath
AXRoleDescription: "math"
menu (type attribute in the popup menu state)
HTML4No
HTML5Yes
WAI-ARIAmenu role
MSAA + UIA Express
Role: ROLE_SYSTEM_MENUPOPUP
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_MENUPOPUP
UIA
Control Type: Menu
ATK
Role: ATK_ROLE_MENU
These objects should not be exposed for a submenu if there is a parent menu item spawning the submenu
AX
AXRole: AXMenu
AXSubrole: (nil)
AXRoleDescription: "menu"
menu (type attribute in the toolbar state)
HTML4No
HTML5Yes
WAI-ARIAtoolbar role
MSAA + UIA Express
Role: ROLE_SYSTEM_TOOLBAR
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_TOOLBAR
UIA
Control Type: ToolBar
ATK
Role: ATK_ROLE_TOOL_BAR
AX
AXRole: AXMenu
AXSubrole: (nil)
AXRoleDescription: "menu"
menuitem (type attribute in the Checkbox state)
HTML4No
HTML5Yes
WAI-ARIAmenuitemcheckbox role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
MSAA + UIA Express
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_CHECK_MENU_ITEM
States: IA2_STATE_CHECKABLE; STATE_SYSTEM_CHECKED if checked;
UIA
Control Type: MenuItem
Control Pattern: Toggle
ATK
Role: ATK_ROLE_CHECK_MENU_ITEM
States: ATK_STATE_CHECKED if checked
Object attributes: checkable:true
AX
AXRole: AXCheckbox
AXSubrole: (nil)
AXRoleDescription: "check box"
menuitem (type attribute in the Command state)
HTML4No
HTML5Yes
WAI-ARIAmenuitem role
MSAA + UIA Express
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_MENUITEM
UIA
Control Type: MenuItem
ATK
Role: ATK_ROLE_MENU_ITEM
AX
AXRole: AXMenuItem
AXSubrole: (nil)
AXRoleDescription: "menu item"
menuitem (type attribute in the Radio state)
HTML4No
HTML5Yes
WAI-ARIAmenuitemradio role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
MSAA + UIA Express
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_RADIO_MENU_ITEM
States: IA2_STATE_CHECKABLE; STATE_SYSTEM_CHECKED if checked;
UIA
Control Type: MenuItem
Control Pattern: Toggle
ATK
Role: ATK_ROLE_RADIO_MENU_ITEM
States: ATK_STATE_CHECKED if checked
Object attributes: checkable:true
AX
AXRole: AXRadioButton
AXSubrole: (nil)
AXRoleDescription: "radio button"
meta
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
meter
HTML4No
HTML5Yes
WAI-ARIANone
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_PROGRESS_BAR
Interfaces: AtkValue
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
nav
HTML4No
HTML5Yes
WAI-ARIAnavigation role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: IA2_ROLE_SECTION
Object attributes: xml-roles:navigation
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: ??Text
ATK
Role: ATK_ROLE_PANEL
Object attributes: xml-roles:navigation
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXLandmarkNavigation
AXRoleDescription: "navigation"
noscript
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
object
HTML4Yes
HTML5Yes
WAI-ARIAno role
MSAA + UIA Express?? would pane or window work??

depends on format of data file. examples include document, client, graphic and unknown (tested using object test suite).

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
HTML4Yes
HTML5Yes
WAI-ARIAlist 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_LIST
AX
AXRole: AXList
AXSubrole: AXContentList
AXRoleDescription: "list"
optgroup
HTML4Yes
HTML5Yes
WAI-ARIAgroup role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_GROUPING
UIA
Control Type: Group
ATK
Role: ATK_ROLE_PANEL
AX
AXRole: AXMenuItem
AXSubrole: (nil)
AXRoleDescription: "menu item"
option (in a list of options or represents a suggestion in a datalist)
HTML4No
HTML5Yes
WAI-ARIAoption role, with the aria-selected state set to "true" if the element's selectedness is true, or "false" otherwise.
MSAA + UIA Express
Role: ROLE_SYSTEM_LISTITEM
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_FOCUSABLE; STATE_SYSTEM_FOCUSED if selected and the user focus is at the list
Actions: select
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: ListItem
Control Pattern: SelectionItem (required for ListItem control type)
ATK
Role: ATK_ROLE_LIST_ITEM
States: ATK_STATE_FOCUSABLE; ATK_STATE_FOCUSED if selected and the user focus is at the list
Actions: select
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXMenuItem
AXSubrole: (nil)
AXRoleDescription: "menu item"
output
HTML4No
HTML5Yes
WAI-ARIAstatus role
MSAA + UIA Express
Role: ROLE_SYSTEM_STATUSBAR ??text read-only seems closer.  this is a label that is calculated??
Use UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_SECTION
Object attributes: live:polite
Relations: IA2_RELATION_CONTROLLED_BY with an element pointed by for attribute. Paired element exposes IA2_RELATION_CONTROLLER_FOR relation.
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Text
Properties: When the output element has a for attribute pointing to a valid IDREF, the referenced element has a UIA_LabeledByPropertyId pointing to the UIA element for the output element.
ATK
Role: ATK_ROLE_SECTION
Object attributes: live:polite
Relations: ATK_RELATION_CONTROLLED_BY with an element pointed by for attribute. Paired element exposes ATK_RELATION_CONTROLLER_FOR relation.
Interfaces: Text; Hypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
p
HTML4Yes
HTML5Yes
WAI-ARIANone
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
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
pre
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT ??group?
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: IA2_ROLE_PARAGRAPH
Used styles are mapped into text attributes on the accessible
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Text ??Group??
ATK
Role: ATK_ROLE_PARAGRAPH
Used styles are mapped into text attributes on the accessible
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
progress
HTML4No
HTML5Yes
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
Role: ROLE_SYSTEM_PROGRESSBAR
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_PROGRESSBAR
States: STATE_SYSTEM_MIXED if the progress is indeterminate
Interfaces: IAccessibleValue
UIA
Control Type: ProgressBar
ATK
Role: ATK_ROLE_PROGRESS_BAR
States: ATK_STATE_INDETERMINATE if the progress is indeterminate
Interfaces: AtkValue
AX
AXRole: AXProgressIndicator
AXSubrole: (nil)
AXRoleDescription: "progress indicator"
Properties: Use AXValue to expose current value.
q
HTML4Yes
HTML5Yes
WAI-ARIANone
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_TEXT
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
rp
HTML4No
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT ??group??
Use MSAA or UIA guidance
MSAA + IAccessible2
Doesn't have an accessible. No child elements are exposed if ruby is supported by the browser.
UIA
Control Type: Text ??Group??
ATK
Doesn't have an accessible. No child elements are exposed if ruby is supported by the browser.
AX?
rt
HTML4No
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
Doesn't have an accessible.
UIA
Control Type: Text
ATK
Doesn't have an accessible.
AX?
ruby
HTML4No
HTML5Yes
WAI-ARIANone
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_TEXT
AX?
s
HTML4?
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible, exposed as "text-line-through-style:solid" text attribute on the text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible, exposed as "text-line-through-style:solid" text attribute on the text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
samp
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Styles are mapped into text attributes on its text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Styles are mapped into text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
script
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
section
HTML4No
HTML5Yes
WAI-ARIAregion role
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: IA2_ROLE_SECTION
Object attributes: xml-roles:region
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Text ??Group??
ATK
Role: ATK_ROLE_SECTION
Object attributes: xml-roles:region
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: AXDocumentRegion
AXRoleDescription: "region"
select (with a multiple attribute or size attribute having value greater than 1)
HTML4Yes
HTML5Yes
WAI-ARIAlistbox role
MSAA + UIA Express
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY; STATE_SYSTEM_MULTISELECTABLE if multiple presented
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_FOCUSABLE; STATE_SYSTEM_MULTISELECTABLE if multiple presented
UIA
Control Type: List
Control Pattern: ISelectionProvider::CanSelectMultiple set to true
ATK
Role: ATK_ROLE_LIST
States: ATK_STATE_FOCUSABLE; ATK_STATE_MULTISELECTABLE if multiple presented
Interfaces: AtkSelection
AX
AXRole: AXList
AXSubrole: (nil)
AXRoleDescription: "list"
select (with NO multiple attribute and NO size attribute having value greater than 1)
HTML4Yes
HTML5Yes
WAI-ARIAcombobox role
MSAA + UIA Express
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_HASPOPUP
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_FOCUSABLE; STATE_SYSTEM_HASPOPUP
Actions: "open" or "close" depending on the state
Children: intermediate ROLE_SYSTEM_LIST containing all options
UIA
Control Type: ComboBox
ATK
Role: ATK_ROLE_COMBO_BOX
States: ATK_STATE_FOCUSABLE; ATK_STATE_EXPANDABLE and ATK_STATE_COLLAPSED if collapsed
Object attributes: haspopup:true
Actions: "open" or "close" depending on the state
Children: intermediate ATK_ROLE_SYSTEM_LIST containing all options
AX
AXRole: AXPopUpButton
AXSubrole: (nil)
AXRoleDescription: "pop up button"
small
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Exposed by UIA_FontSizeAttributeId of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Exposed as "font-size" text attribute on the text container.
UIA
Doesn't have an accessible. Exposed by UIA_FontSizeAttributeId of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Exposed as "font-size" text attribute on the text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
source
HTML4No
HTML5Yes
WAI-ARIANone
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
HTML4Yes
HTML5Yes
WAI-ARIANone
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
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
style
HTML4Yes
HTML5Yes
WAI-ARIANone
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
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Exposed by UIA_IsSubscriptAttributeId of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Exposed as "text-position:sub" text attribute on its text container.
UIA
Doesn't have an accessible. Exposed by UIA_IsSubscriptAttributeId of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Exposed as "text-position:sub" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
summary
HTML4No
HTML5Yes
WAI-ARIANone
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
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Exposed by UIA_IsSuperscriptAttributeId of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible. Exposed as "text-position:super" text attribute on its text container.
UIA
Doesn't have an accessible. Exposed by UIA_IsSuperscriptAttributeId of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible. Exposed as "text-position:super" text attribute on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
svg
HTML4No
HTML5Yes
WAI-ARIANone
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
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_TABLE
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_TABLE
Relations: IA2_RELATION_LABELLED_BY by child caption if any
Interface: IAccessibleTable2
UIA
Control Type: DataGrid
Control Pattern: Table
ATK
Role: ATK_ROLE_TABLE
Relations: ATK_RELATION_LABELLED_BY by child caption if any
Interface: AtkTable
AX
AXRole: AXTable
AXSubrole: (nil)
AXRoleDescription: "table"
tbody
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Doesn't have an accessible
UIA
Control Type: Group
ATK
Doesn't have an accessible
AX
Not mapped
td
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_CELL
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_CELL
Interfaces: IAccessibleTableCell; IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: DataItem
ATK
Role: ATK_ROLE_TABLE_CELL
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXCell
AXSubrole: (nil)
AXRoleDescription: "cell"
template
HTML4No
HTML5Yes
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2
Not mapped
UIA?
ATK
Not mapped
AX?
textarea
HTML4Yes
HTML5Yes
WAI-ARIAtextbox role, with the aria-multiline property set to "true"
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_MULTI_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
UIA
Control Type: Text ??Edit??
ATK
Role: ATK_ROLE_ENTRY
States: ATK_STATE_MULTI_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AX
AXRole: AXTextArea
AXSubrole: (nil)
AXRoleDescription: "text entry area"
tfoot
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
MSAA + IAccessible2
Doesn't have an accessible
UIA
Control Type: Group
ATK
Doesn't have an accessible
AX
Not mapped
th (is neither a column header nor a row header)
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_CELL
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_CELL
Interfaces: IAccessibleTableCell; IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: DataItem
ATK
Role: ATK_ROLE_TABLE_CELL
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXCell
AXSubrole: (nil)
AXRoleDescription: "cell"
th (is a column header)
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_COLUMNHEADER
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_COLUMNHEADER
Interfaces: IAccessibleTableCell; IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Header
Properties: UIA_OrientationPropertyId set to OrientationType_Vertical
??seems like it should be HeaderItem.  ARIA UAIG has DataItem??
ATK
Role: ATK_ROLE_COLUMN_HEADER
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXCell
AXSubrole: (nil)
AXRoleDescription: "cell"
Properties: Parent table implements AXColumnHeaderUIElements as a list of pointers to the column header cells, and AXHeader property as a pointer to the row or group containing the column header cells.
th (is a row header)
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_ROWHEADER
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_ROWHEADER
Interfaces: IAccessibleTableCell; IAccessibleText2; IAccessibleHypertext2
UIA
Control Type: Header
Properties: UIA_OrientationPropertyId set to OrientationType_Horizontal
??seems like it should be HeaderItem.  ARIA UAIG has DataItem??
ATK
Role: ATK_ROLE_ROW_HEADER
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXCell
AXSubrole: (nil)
AXRoleDescription: "cell"
Properties: Parent table implements AXRowHeaderUIElements property as a list of pointers to the row header cells.
thead
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Doesn't have an accessible
UIA
Control Type: Header
ATK
Doesn't have an accessible
AX
Not mapped
time
HTML4No
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_TEXT
MSAA + IAccessible2
Not mapped
UIA?
ATK
Not mapped
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
title
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
tr
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_ROW
Use MSAA or UIA guidance
MSAA + IAccessible2
Role: ROLE_SYSTEM_ROW
UIA
Control Type: DataItem
Control Pattern: SelectionItem
ATK
Role: ATK_ROLE_LIST_ITEM
AX
AXRole: AXRow
AXSubrole: AXTableRow
AXRoleDescription: "row"
track
HTML4No
HTML5Yes
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2
Not mapped
UIA?
ATK
Not mapped
AX?
u
HTML4?
HTML5?
WAI-ARIA?
MSAA + UIA Express
Doesn't have an accessible. Exposed by UIA_UnderlineStyleAttributeId of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible, mapped as "text-underline-style:solid" text attribute on its text container.
UIA
Doesn't have an accessible. Exposed by UIA_UnderlineStyleAttributeId of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible, mapped as "text-underline-style:solid" text attribute on its text container.
AX?
ul
HTML4Yes
HTML5Yes
WAI-ARIAlist 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_LIST
AX
AXRole: AXList
AXSubrole: AXContentList
AXRoleDescription: "list"
var
HTML4Yes
HTML5Yes
WAI-ARIANone
MSAA + UIA Express
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
MSAA + IAccessible2
Doesn't have an accessible, used styles are mapped to text attributes on its text container.
UIA
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
ATK
Doesn't have an accessible, used styles are mapped to text attributes on its text container.
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
video
HTML4No
HTML5Yes
WAI-ARIANone
MSAA + UIA Express?
MSAA + IAccessible2
Role: ROLE_SYSTEM_GROUPING
UIA?
ATK
Role: ATK_ROLE_PANEL
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the video element exposed as AXToolbar.
wbr
HTML4No
HTML5Yes
WAI-ARIANone
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"

4. HTML Attribute to Accessibility API State and Property Mapping Matrix

abbr [th]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
accept-charset [form]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
accesskey [HTML elements]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
allowfullscreen [iframe]
HTML4No
HTML5Yes
WAI-ARIA
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
alt [area; img; input]
HTML4Yes
HTML5Yes
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]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
autocomplete "on|off" [form]
HTML4No
HTML5Yes
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
Comments 
autocomplete [input; select; textarea]
HTML4No
HTML5Yes
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 
autofocus [button; input; keygen; select; textarea]
HTML4No
HTML5Yes
WAI-ARIANot mapped - aria-flowto?
MSAA + UIA ExpressN/A
MSAA + IAccessible2
Not mapped
UIAN/A
ATK
Not mapped
AXN/A
Comments 
autoplay [audio; video]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA ExpressN/A
MSAA + IAccessible2
Not mapped
UIAN/A
ATK
Not mapped
AXN/A
Comments 
border [table]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
challenge [keygen]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
charset [meta]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
charset [script]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
checked (if present) [menuitem; input]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AXAXURL: <value>
Comments 
class [HTML elements]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
cols [textarea]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AXAXRangeForLine: <value>
Comments 
colspan [td; th]
HTML4Yes
HTML5Yes
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]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
content [meta]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
contenteditable [HTML elements]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
States: IA2_STATE_EDITABLE on this and every nested text accessible
Interfaces: IAccessibleEditableText on this and every nested text accessible
UIA 
ATK
States: ATK_STATE_EDITABLE on this and every nested text accessible
Interfaces: AtkEditableText on this and every nested text accessible
AX?
Comments 
contextmenu [HTML elements]
HTML4No
HTML5Yes
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]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AXControls exposed as AXToolbar
Comments 
coords [area]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Defines an accessible's dimensions (IAccessible::accLocation)
UIA 
ATK
Defines an accessible's dimensions, exposed via atk_component_get_position and atk_component_get_size
AX 
Comments 
crossorigin [audio; img; link; script; video]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
data [object]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
datetime [del; ins]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX?
Comments 
datetime [time]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX?
Comments 
default [track]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
defer [script]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
dir [HTML elements]
HTML4?
HTML5Yes
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]
HTML4?
HTML5Yes
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]
HTML4Yes
HTML5Yes
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]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX?
Comments 
draggable [HTML elements]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Object attributes: draggable:true
UIA 
ATK
Object attributes: draggable:true
AX?
Comments 
dropzone [HTML elements]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX?
Comments 
enctype [form]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
for [label]
HTML4Yes
HTML5Yes
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]
HTML4No
HTML5Yes
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]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formaction [button; input]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formenctype [button; input]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formmethod [button; input]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formnovalidate [button; input]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
formtarget [button; input]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
headers [td; th]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Links the cell to its header cells. Exposed via IAccessibleTableCell::rowHeaderCells and 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]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Defines an accessible's height (IAccessible::accLocation)
UIA 
ATK
Defines an accessible's height (atk_component_get_size)
AX 
Comments 
hidden [HTML elements]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Makes the element not accessible
UIA 
ATK
Makes the element not accessible
AXNot exposed in AX API
Comments 
high [meter]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX?
Comments 
href [a; area]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Creates a link accessible, for details refer to a and area elements mapping.
UIA 
ATK
Creates a link accessible, for details refer to a and area elements mapping.
AXAXURL: <value>
Comments 
href [link]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
hreflang [a; area; link]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
http-equiv [meta]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
icon [menuitem]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
id [HTML elements]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
ismap [img]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
keytype [keygen]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
kind [track]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
label [menuitem; menu; optgroup; option; track]
HTML4?
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Associates the accessible name
UIA 
ATK
Associates the accessible name
AX 
Comments 
lang [HTML elements]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Exposed as "language" text attribute on the text container
UIA 
ATK
Exposed as "language" text attribute on the text container
AX 
Comments 
list [input]
HTML4No
HTML5Yes
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]
HTML4Yes
HTML5No
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]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
low [meter]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
manifest [html]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
max [input]
HTML4No
HTML5Yes
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]
HTML4No
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
media [link; source; style]
HTML4?
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
mediagroup [audio; video ]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
method [form]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
min [input]
HTML4 
HTML5Yes
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]
HTML4No
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIAthe aria-multiselectable property set to "true"
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
multiple [select]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
States: STATE_SYSTEM_MULTISELECTABLE
A multi selectable listbox accessible, refer to select element
UIA 
ATK
States: ATK_STATE_SYSTEM_MULTISELECTABLE
A multi selectable listbox accessible, refer to select element
AX 
Comments 
muted [audio; video]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [button; fieldset; input; keygen; output; select; textarea]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [ form]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [iframe; object]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [map]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [meta]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
name [param]
HTML4Yes
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
novalidate [form]
HTML4No
HTML5Yes
WAI-ARIANot mapped
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
open [details]
HTML4No
HTML5Yes
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]
HTML4No
HTML5Yes
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]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
pattern [input]
HTML4No
HTML5Yes
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]
HTML4No
HTML5Yes
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
AXAXPlaceholderValue: <value>
Comments 
poster [video]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
preload [audio; video]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
radiogroup [menuitem]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
readonly [input; textarea]
HTML4Yes
HTML5Yes
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]
HTML4 
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
required [input; select; textarea]
HTML4No
HTML5Yes
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]
HTML4?
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Changes the numbering of underlying list item accessibles
UIA 
ATK
Changes the numbering of underlying list item accessibles
AX 
Comments 
rows [textarea]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
rowspan [td; th]
HTML4Yes
HTML5Yes
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]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
spellcheck [HTML elements]
HTML4No
HTML5Yes
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]
HTML4Yes
HTML5Yes
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]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
seamless [iframe]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
selected [option]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
size [input; select]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
If greater than 1 then creates a listbox accessible, refer to select element for details
UIA 
ATK
If greater than 1 then creates a listbox accessible, refer to select element for details
AX 
Comments 
sizes [link]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
span [col; colgroup]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
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]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
srclang [track]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
start [ol]
HTML4 
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Changes the numbering of underlying list item accessibles
UIA 
ATK
Changes the numbering of underlying list item accessibles
AX 
Comments 
step [input]
HTML4No
HTML5Yes
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]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
target [base]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
target [form]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
title [HTML elements]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Associates the accessible name
UIA 
ATK
Associates the accessible name
AXAXHelp: <value>
Comments 
title [menuitem]
HTML4No
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX
Not mapped
Comments 
title [link; style]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX
Not mapped
Comments 
translate [HTML elements]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
type [a; area; link]
HTML4 
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
type [button]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
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]
HTML4No
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
type [menu]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
typemustmatch [object]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
usemap [img; object]
HTML4Yes
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
value [input]
HTML4Yes
HTML5Yes
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]
HTML4 
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Exposed as a text of first child of the list item accessible
UIA 
ATK
Exposed as a text of first child of the list item accessible
AX 
Comments 
value [meter; progress]
HTML4No
HTML5Yes
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]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 
width [canvas; embed; iframe; img; input; object; video]
HTML4Yes
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Defines an accessible's width (IAccessible::accLocation)
UIA 
ATK
Defines an accessible's width (atk_component_get_size)
AXAXSize: w=n
Comments 
wrap [textarea]
HTML4No
HTML5Yes
WAI-ARIA 
MSAA + UIA Express 
MSAA + IAccessible2
Not mapped
UIA 
ATK
Not mapped
AX 
Comments 

5. Obsolete HTML Element to Accessibility API Role Mapping Matrix

The following mappings for obsolete HTML elements are provided for user agent support of legacy markup.

Notes:

applet
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
acronym
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
basefont
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express
Not mapped
MSAA + IAccessible2
Not mapped
UIA
Not mapped
ATK
Not mapped
AX
Not mapped
big
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
center
HTML4No
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2
Role: IA2_ROLE_PARAGRAPH
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA?
ATK?
AX?
dir
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
font
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
frame
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express
Role: ROLE_SYSTEM_DOCUMENT
States: STATE_SYSTEM_READONLY
??currently mapped as pane not document.  the document inside is mapped as document??
MSAA + IAccessible2
Role: IA2_ROLE_INTERNAL_FRAME
Child: ROLE_SYSTEM_DOCUMENT having STATE_SYSTEM_READONLY
UIA
Control Type: Document
ATK
Role: ATK_ROLE_INTERNAL_FRAME
Child: ATK_ROLE_DOCUMENT_FRAME
AX
AXRole: AXWebArea
AXSubrole: (nil)
AXRoleDescription: "HTML content"
frameset
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2
Doesn't have an accessible. All DOM attributes are proccessed as they belonged to its document accessible. Similar to body element.
UIA?
ATK
Doesn't have an accessible. All DOM attributes are proccessed as they belonged to its document accessible. Similar to body element.
AX
Not mapped
noframes
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
hgroup
HTML4No
HTML5No
WAI-ARIANone
MSAA + UIA Express
Role: ROLE_SYSTEM_GROUPING
MSAA + IAccessible2
Role: IA2_ROLE_PARAGRAPH
Interfaces: IAccessibleText2; IAccessibleHypertext2
UIA?
ATK
Role: ATK_ROLE_PARAGRAPH
Interfaces: AtkText; AtkHypertext
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
isindex
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
listing
HTML4No
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
plaintext
HTML4No
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
rb
HTML4No
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
strike
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
tt
HTML4Yes
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?
xmp
HTML4No
HTML5No
WAI-ARIA?
MSAA + UIA Express?
MSAA + IAccessible2?
UIA?
ATK?
AX?

6. Obsolete HTML Attribute to Accessibility API State and Property Mapping Matrix

The following mappings for obsolete HTML attributes are provided for user agent support of legacy markup.

accept [form]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [caption]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [col]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [div]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [embed]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [h1-h6]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [hr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [iframe]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [img]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [input]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [legend]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [p]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [tbody; thead; tfoot]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
align [tr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
alink [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
allowtransparency [iframe]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
archive [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
axis [td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
background [body; table; thead; tbody; tfoot; tr; td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
bgcolor [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
bgcolor [table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
bgcolor [td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
bgcolor [tr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
border [img]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
border [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
cellpadding [table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
cellspacing [table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
char [col]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
char [tbody; thead; tfoot]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
char [td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
char [tr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
charoff [col]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
charoff [tbody; thead; tfoot]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
charoff [td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
charoff [tr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
charset [a]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
charset [link]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
classid [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
clear [br]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
code [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
codebase [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
codetype [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
color [hr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
compact [dl]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
compact [menu]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
compact [ol]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
compact [ul]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
coords [a]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
datafld [a; applet; button; div; fieldset; frame; iframe; img; input; label; legend; object; param; select; span; textarea]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
dataformatas [button; div; input; label; legend; object; option; select; span; table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
datapagesize [table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
datasrc [a; applet; button; div; frame; iframe; img; input; label; legend; object; option; select; span; table; textarea]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
declare [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
event [script]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
for [script]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
frame [table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
frameborder [iframe]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
height [td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
hspace [embed]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
hspace [iframe]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
hspace [img]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
hspace [input]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
hspace [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
ismap [input]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
language [script]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
link [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
lowsrc [img]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
marginbottom [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
marginheight [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
marginheight [iframe]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
marginleft [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
marginright [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
margintop [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
marginwidth [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
marginwidth [iframe]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
methods [a]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
methods [link]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
name [a]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
name [embed]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
name [img]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
name [option]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
nohref [area]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
noshade [hr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
nowrap [td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
profile [head]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
rev [a]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
rev [link]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
rules [table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
scheme [meta]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
scope [td]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
scrolling [iframe]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
shape [a]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
size [hr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
standby [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
summary [table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
target [link]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
text [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
type [li]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
type [param]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
type [ul]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
urn [a]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
urn [link]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
usemap [input]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
valign [col]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
valign [tbody; thead; tfoot]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
valign [td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
valign [tr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
valuetype [param]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
version [html]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
vlink [body]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
vspace [embed]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
vspace [iframe]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
vspace [img]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
vspace [input]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
vspace [object]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
width [col]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
width [hr]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
width [pre]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
width [table]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments
width [td; th]
HTML4
HTML5
WAI-ARIA
MSAA + UIA Express
MSAA + IAccessible2
UIA
ATK
AX
Comments

7. Other Accessibility Implementations

This section is non-normative.

7.1 Use of MSAA VARIANT by Some User Agents

In MSAA, the VARIANT returned by the IAccessible::get_accRole method is limited to a finite number of integer role constants insufficient for describing 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 new 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: a (no href), abbr, address, area (no href), aside, blockquote, canvas, caption, dd, div, embed, figcaption, footer, form, h1h6, header, iframe, input type="file", main, map, nav, object, output, p, pre, q, ruby, section.

7.2 Use of the DOM by Some Assistive Technologies

Note

to do

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

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

If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

The accessible description is derived from the following sources: aria-describedby or a non-empty placeholder attribute or a non-empty title attribute.

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. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use the associated label element
  4. Otherwise use the placeholder attribute
  5. Otherwise use the title 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. Use aria-describedby
  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

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

If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

Otherwise the accessible name is derived from the following sources; a non-empty value attribute, or a non-empty title attribute.

input type="button" , input type="submit" and input type="reset" accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use the value attribute
  4. For input type=submit: If steps 1 to 3 do not yield a usable text string, the accessible name is a localized string of the word "submit"
  5. For input type=reset: If steps 1 to 3 do not yield a usable text string, the accessible name is a localized string of the word "reset"
  6. Otherwise use title attribute
  7. 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. use aria-describedby
  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

8.3 input type="image"

If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

Otherwise the accessible name is derived from the following sources; a non-empty alt attribute, or a non-empty title attribute.

input type="image" accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use alt attribute
  4. Otherwise use value attribute
  5. Otherwise the user agent may provide an accessible name via a localized string of the phrase "Submit Query"
  6. Otherwise use title attribute
  7. If none of the above yield a usable text string there is no accessible name

input type="image" accessible description calculation

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

8.4 button element

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 section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

Otherwise the accessible name is derived from the following sources; non-empty button element subtree or a non-empty title attribute.

button element accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use the button element subtree
  4. Otherwise use title attribute
  5. 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.

8.5 Other form elements

If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

Otherwise the accessible name is derived from the following sources; a non-empty associated label element or a non-empty title attribute.

Other form elements accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use label element
  4. Otherwise use title attribute
  5. If none of the above yield a usable text string there is no accessible name

Other form elements accessible description calculation

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

8.6 summary element

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 section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

Otherwise the accessible name is derived from the following sources; non-empty summary element subtree or a non-empty title attribute or the default text string inserted by the browser

summary element accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use summary element subtree
  4. Otherwise use title attribute
  5. 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. Use aria-describedby
  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

8.7 figure and figcaption elements

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 section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

figure element accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use figcaption subtree
  4. Otherwise use title attribute
  5. If none of the above yield a usable text string there is no accessible name

figure element accessible description calculation

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

8.8 img element

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 section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

img element accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use alt attribute
  4. Otherwise use title attribute
  5. If none of the above yield a usable text string there is no accessible name

img element accessible description calculation

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

8.9 table element

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 section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

table element accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use caption element
  4. Otherwise use the title attribute
  5. Otherwise use the summary attribute
  6. If none of the above yield a usable text string there is no accessible name

table element accessible description calculation

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

8.10 a element

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 section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

a element accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use a element subtree
  4. Otherwise use the title attribute
  5. If none of the above yield a usable text string there is no accessible name

a element accessible description calculation

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

8.11 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

If the element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in section 5.2.7. Accessible Name Calculation of the WAI-ARIA 1.0 specification.

Text level element accessible name calculation

  1. Use aria-labelledby
  2. Otherwise use aria-label
  3. Otherwise use the title attribute
  4. If none of the above yield a usable text string there is no accessible name

Text level element accessible description calculation

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

9. Accessible feature implementation examples:

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

9.2 The figure and figcaption elements

Note

to do

10. Table algorithm

The algorithm is a heuristic to determine if table is most likely used for layout, it is currently implemented in Firefox only.

Note

to do

10.1 Notes

A. Acknowledgements

A.1 Enabling funders

The development of this publication is being funded in part by Adobe Systems. The content of this publication does not necessarily reflect the views or policies of Adobe, nor does mention of trade names, commercial products, or organizations imply endorsement by Adobe.

The development of this publication is being funded in part by The Paciello Group. The content of this publication does not necessarily reflect the views or policies of The Paciello Group, nor does mention of trade names, commercial products, or organizations imply endorsement by The Paciello Group.

Select text and