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.

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.

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.

Introduction: Accessibility APIs

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.

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

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.

HTML Element to Accessibility API Role Mapping Matrix

Notes:

Mappings of HTML elements to platform accessibility APIs: ARIA, MSAA + UIA Express, MSAA + IAccessible2, UIA, ATK, and AX
Element HTML4 HTML5 WAI-ARIA MSAA + UIA Express MSAA + IAccessible2 UIA ATK AX
a (represents a hyperlink) Yes Yes link role
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
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;
Control Type: Hyperlink
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
AXRole: AXLink
AXSubrole: (nil)
AXRoleDescription: "link"
Actions: AXPress
If link is visited:
AXVisited: YES
a (no href attribrute) Yes Yes None
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Role: IA2_ROLE_TEXT_FRAME
Interfaces: IAccessibleHyperlink; IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Role: ATK_ROLE_TEXT
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
abbr Yes Yes None
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
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;
Control Type: Text
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
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
address Yes Yes None
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Role: IA2_ROLE_PARAGRAPH
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Role: ATK_ROLE_PARAGRAPH
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXLandmarkContentInfo
AXRoleDescription: "content information"
Note: recommend AXRoleDescription of "address" to disambiguate from "contentinfo" landmark role. Refer to WebKit bug 83989
area (represents a hyperlink) Yes Yes link role
Role: ROLE_SYSTEM_LINK
States: STATE_SYSTEM_LINKED
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_LINK exposed as a child of connected img element
States: STATE_SYSTEM_LINKED
Actions: jump
Interfaces: IAccessibleHyperlink
Control Type: Hyperlink
Role: ATK_ROLE_LINK exposed as a child of connected img element
Actions: jump
Interfaces: AtkHyperlink
AXRole: AXLink
AXSubrole: (nil)
AXRoleDescription: "link"
area (no href attribute) Yes Yes None
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Role: IA2_ROLE_SHAPE
Control Type: Text
Role: ATK_ROLE_TEXT
Not mapped
article No Yes article role
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_DOCUMENT
States: STATE_SYSTEM_READONLY
Object attributes: xml-roles:article
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Group
Role: ATK_ROLE_DOCUMENT_FRAME
Object attributes: xml-roles:article
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXDocumentArticle
AXRoleDescription: "article"
aside No Yes complementary role
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Role: IA2_ROLE_NOTE
Object attributes: xml-roles:complementary
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Group
Role: ATK_ROLE_SECTION
Object attributes: xml-roles:complementary
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXLandmarkComplementary
AXRoleDescription: "complementary"
audio No Yes None
Role: ROLE_SYSTEM_GROUPING
Role: ROLE_SYSTEM_GROUPING
Control Type: Group
Role: ATK_ROLE_PANEL
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the audio element exposed as AXToolbar.
b Yes Yes None
Doesn't have an accessible. Exposed by UIA_FontWeightAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, exposed as "font-weight" text attribute on the text container. The value depends on the platform.
Doesn't have an accessible. Exposed by UIA_FontWeightAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, exposed as "font-weight" text attribute on the text container. The value depends on the platform.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
base Yes Yes None
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
bdi None ?
Doesn't have an accessible. May affect on "writing-mode" text attribute on its text container.
?
Doesn't have an accessible. May affect on "writing-mode" text attribute on its text container.
bdo Yes Yes None
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Doesn't have an accessible. Exposed as "writing-mode" text attribute on its text container.
Control Type: Text
Doesn't have an accessible. Exposed as "writing-mode" text attribute on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
blockquote Yes Yes None
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Role: IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Group
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
body Yes Yes document role
Role: ROLE_SYSTEM_DOCUMENT
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
Doesn't have an accessible. All DOM attributes are proccessed as they belonged to its document accessible.
Control Type: Document
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.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
br Yes Yes None
Role: ROLE_SYSTEM_WHITESPACE
Role: ROLE_SYSTEM_WHITESPACE
?
Doesn't have an accesible. Exposed as '\n' character via AtkText interface on the text container.
Not mapped
button Yes Yes button role
Role: ROLE_SYSTEM_PUSHBUTTON
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_PUSHBUTTON
States: STATE_SYSTEM_DEFAULT if the button is default
Actions: press
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Button
?? When it is in a <menu> it defines a command.  Is it still a button, or is it a menuitem??
Role: ATK_ROLE_PUSH_BUTTON
States: ATK_STATE_DEFAULT if the button is default
Actions: press
Interfaces: AtkText; AtkHypertext
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
canvas No Yes None
Role: ROLE_SYSTEM_GRAPHIC
Use MSAA or UIA guidance
Role: IA2_ROLE_CANVAS
Control Type: Image
NOTE: subdom elements will be mapped separately.
Role: ATK_ROLE_CANVAS
AXRole: AXImage
AXSubrole: (nil)
AXRoleDescription: "image"
caption Yes Yes None
Role: ROLE_SYSTEM_TEXT
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
Role: IA2_ROLE_CAPTION
Relations: IA2_RELATION_LABEL_FOR with containing table accessible
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Properties: UIA_LabeledByPropertyId on the parent table pointing to the UIA element for the caption element.
Role: ATK_ROLE_CAPTION
Relations: ATK_RELATION_LABEL_FOR with containing table accessible
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
cite Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
code Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
col Yes Yes None
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
colgroup Yes Yes None
Role: ROLE_SYSTEM_GROUPING
TODO:  look in more detail at UIA table implemenation
Not mapped
?TODO:  look in more detail at UIA table implementation
Not mapped
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 No Yes menuitemcheckbox role, with the aria-checked state set to "true" if the command's Checked State facet is true, and "false" otherwise
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
IA2_ROLE_CHECK_MENU_ITEM + object attribute checkable="true"
Control Type: MenuItem
Control Pattern: Toggle
ATK_ROLE_CHECK_MENU_ITEM + object attribute checkable="true"
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 No Yes menuitem role
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
ROLE_SYSTEM_MENUITEM
Control Type: MenuItem
ATK_ROLE_MENU_ITEM Depends 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 No Yes menuitemradio role, with the aria-checked state set to "true" if the command's Checked State facet is true, and "false" otherwise
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
IA2_ROLE_RADIO_MENU_ITEM + object attribute checkable="true"
Control Type: MenuItem
Control Pattern: Toggle
ATK_ROLE_RADIO_MENU_ITEM + object attribute checkable="true"
AXRole: AXRadioButton
AXSubrole: (nil)
AXRoleDescription: "radio button"
data No
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
datalist No Yes listbox role, with the aria-multiselectable property set to "false"
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_HASPOPUP.
Use UIA guidance
Used to constuct a list of options for autocompletes (in other words it can have no accessible itself)
Role: ROLE_SYSTEM_LIST
Control Type: ComboBox
Used to constuct a list of options for autocompletes (in other words it can have no accessible itself)
Interfaces: AtkSelection
AXRole: AXComboBox
AXSubrole: (nil)
AXRoleDescription: "combo box"
dd Yes Yes None
Role: ROLE_SYSTEM_TEXT
Role: IA2_ROLE_PARAGRAPH
Interfaces: IAccessibleText2; IAccessibleHypertext2;
?
Role: ATK_ROLE_PARAGRAPH
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXDefinition
AXRoleDescription: "definition"
del Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
details No Yes None
??dialog seems closer??
Role: ROLE_SYSTEM_GROUPING
Role: ROLE_SYSTEM_GROUPING
Control Type: Group ??window??
Role: ATK_ROLE_PANEL
?
dfn Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are exposed by text attributes on its text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are exposed by text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dialog
Role: ROLE_SYSTEM_DIALOG
Role: ROLE_SYSTEM_DIALOG
Role: ATK_ROLE_DIALOG
div Yes Yes None
Role: ROLE_SYSTEM_GROUPING
May not have an accessible if has no semantic meaning. Otherwise
Role: IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
?
May not have an accessible if has no semantic meaning. Otherwise
Role: ATK_ROLE_SECTION
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
dl Yes Yes None
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY
Control Type: List
Role: ATK_ROLE_LIST
AXRole: AXList
AXSubrole: AXDefinitionList
AXRoleDescription: "definition list"
dt Yes Yes None
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_READONLY
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_READONLY
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: ListItem
Role: ATK_ROLE_LISTITEM
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXTerm
AXRoleDescription: "term"
em Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
embed No Yes None
Role: ROLE_SYSTEM_CLIENT
Role: IA2_ROLE_EMBEDDED_OBJECT
States: STATE_SYSTEM_UNAVAILABLE for windowless plugin
Control Type: ?Pane? Window?
Role: ATK_ROLE_EMBEDDED
Depends on format of data file
fieldset Yes Yes None
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_GROUPING
Relations: IA2_RELATION_LABELLED_BY with child legend element
Control Type: Group
Role: ATK_ROLE_PANEL
Relations: ATK_RELATION_LABELLED_BY with child legend element
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
figcaption No Yes None
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Role: IA2_ROLE_CAPTION
Relations: IA2_RELATION_LABEL_FOR with parent figure element
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Role: ATK_ROLE_CAPTION
Relations: ATK_RELATION_LABEL_FOR with parent figure element
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
figure No Yes None
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_GROUPING
Object attributes: xml-roles:figure
Name: related figcaption content
Relations: IA2_RELATION_LABELLED_BY with child figcaption element
Control Type: Group
??discuss graphic/image vs. group??
Role: ATK_ROLE_PANEL
Object attributes: xml-roles:figure
Name: related figcaption content
Relations: ATK_RELATION_LABELLED_BY with child figcaption element
?
form Yes Yes form role
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Role: IA2_ROLE_FORM
Control Type: Group
Role: ATK_ROLE_FORM
AXRole: AXGroup
AXSubrole: AXLandmarkForm
AXRoleDescription: "form"
h1, h2, h3, h4, h5, h6 Yes Yes heading role, with the aria-level property set to the element's outline depth
Role: ROLE_SYSTEM_TEXT
??or use xml-roles??
Role: IA2_ROLE_HEADING
Object attributes: level:<heading_level>
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Role: ATK_ROLE_HEADING
Object attributes: level:<heading_level>
Interfaces: AtkText; AtkHypertext
AXRole: AXHeading
AXSubrole: (nil)
AXRoleDescription: "heading"
Properties: Use AXLevel to expose the heading level
head Yes Yes None
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
header No Yes None
Role: ROLE_SYSTEM_GROUPING
Role: IA2_ROLE_HEADER
Object attributes: xml-roles:banner if not contained by article or section elements
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Group
Properties: Do not put "header" in LocalizedControlType string because there is a header role for table headers
Role: ATK_ROLE_HEADER
Object attributes: xml-roles:banner if not contained by article or section elements
Interfaces: AtkText; AtkHypertext
If contained in article or section elements:
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Otherwise:
AXRole: AXGroup
AXSubrole: AXLandmarkBanner
AXRoleDescription: "banner"
hr Yes Yes separator role
Role: ROLE_SYSTEM_SEPARATOR
Role: ROLE_SYSTEM_SEPARATOR
Control Type: Separator
Role: ATK_ROLE_SEPARATOR
?
html Yes Yes None
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
i Yes Yes None
Doesn't have an accessible. Exposed by UIA_IsItalicAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, exposed as "font-style:italic" text attribute on its text container.
Doesn't have an accessible. Exposed by UIA_IsItalicAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, exposed as "font-style:italic" text attribute on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
iframe Yes Yes None
Role: ROLE_SYSTEM_DOCUMENT ??pane??
States: STATE_SYSTEM_READONLY
Role: IA2_ROLE_INTERNAL_FRAME
Child: ROLE_SYSTEM_DOCUMENT having STATE_SYSTEM_READONLY
Control Type: Document ??Pane??
Role: ATK_ROLE_INTERNAL_FRAME
Child: ATK_ROLE_DOCUMENT_FRAME
AXRole: AXWebArea
AXSubrole: (nil)
AXRoleDescription: "html content"
img Yes Yes img role
Role: ROLE_SYSTEM_GRAPHIC
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
Control Type: Image
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
AXRole: AXImage
AXSubrole: (nil)
AXRoleDescription: "image"
img (alt attribute is empty) Yes Yes presentation role
Do not expose this object
Do not expose this object
Control Type: Image
Properties: NameProperty set to the empty string
Do not expose this object
Do not expose this object
input (type attribute in the Button state) Yes Yes button role
Role: ROLE_SYSTEM_PUSHBUTTON
Role: ROLE_SYSTEM_PUSHBUTTON
Actions: press
Control Type: Button
Role: ATK_ROLE_PUSH_BUTTON
Actions: press
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Button state and parent is a menu) ? ? ?
Role: ROLE_SYSTEM_MENUITEM
Role: ROLE_SYSTEM_MENUITEM
Control Type: MenuItem
Role: ATK_ROLE_MENU_ITEM
?
input (type attribute in the Color state) No Yes ?
Role: If implemented as a textbox, ROLE_SYSTEM_TEXT
Use UIA guidance
Role: IA2_ROLE_COLOR_CHOOSER
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
Role: ATK_ROLE_COLOR_CHOOSER
If implemented as a textbox:
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "textfield"
If implemented as a color picker:
AXRole: AXColorWell
AXSubrole: (nil)
AXRoleDescription: "color chooser"
input (type attribute in the Checkbox state) Yes Yes checkbox role, with the aria-checked state set to "mixed" if the element's indeterminate IDL attribute is true, or "true" if the element's checkedness is true, or "false" otherwise
Role: ROLE_SYSTEM_CHECKBUTTON
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
Control Type: CheckBox
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
AXRole: AXCheckBox
AXSubrole: (nil)
AXRoleDescription: "check box"
input (type attribute in the Checkbox state and parent is a menu) ? ? ?
Role: ROLE_SYSTEM_CHECKBUTTON
UIA MenuItem
Role: IA2_ROLE_CHECK_MENU_ITEM
States: IA2_STATE_CHECKABLE; STATE_SYSTEM_CHECKED if checked; STATE_SYSTEM_MIXED if in mixed state
Control Type: MenuItem
Control Pattern: Toggle
Role: ATK_ROLE_CHECK_MENU_ITEM
States: ATK_STATE_CHECKED if checked; ATK_STATE_INDETERMINATE if in mixed state
Object attributes: checkable:true
?
input (type attribute in the Date state) No Yes None
Role: ROLE_SYSTEM_DROPLIST
UIA Calendar
Role: IA2_ROLE_DATE_EDITOR
Control Type: Calendar
Role: ATK_ROLE_CALENDAR
AXRole: AXDateField
AXSubrole: (nil)
AXRoleDescription: "date field"
input (type attribute in the Date and Time state) No Yes None
Role: ROLE_SYSTEM_DROPLIST
UIA Calendar
Role: IA2_ROLE_DATE_EDITOR
Control Type: Calendar
Role: ATK_ROLE_CALENDAR
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Local Date and Time state) No Yes None
Role: ROLE_SYSTEM_DROPLIST
UIA Calendar
Role: IA2_ROLE_DATE_EDITOR
Control Type: Calendar
Role: ATK_ROLE_CALENDAR
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the E-mail state with no suggestions source element) No Yes textbox role
Role: ROLE_SYSTEM_TEXT
UIA Edit
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
Control Type: Edit
Role: ATK_ROLE_ENTRY
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the File Upload state) Yes Yes None
Role: ROLE_SYSTEM_PUSHBUTTON
Role: IA2_ROLE_TEXT_FRAME
Children: A button and label (implementation specific)
Control Type: Button
Role: ATK_ROLE_TEXT
Children: ATK_ROLE_PUSH_BUTTON when pressed ATK_ROLE_FILE_CHOOSER dialog shown
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Hidden state) Yes Yes None
Do not expose this object
Not mapped
Do not expose this object
Not mapped
Do not expose this object
input (type attribute in the Image Button state) Yes Yes button role
Role: ROLE_SYSTEM_PUSHBUTTON
Role: ROLE_SYSTEM_PUSHBUTTON
States: STATE_SYSTEM_DEFAULT if the button is default
Actions: press
Control Type: Button
Role: ATK_ROLE_PUSH_BUTTON
States: ATK_STATE_DEFAULT if the button is default
Actions: press
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Image Button state and parent is a menu) ? ? ? ? ?
?? does this define a command??
? ?
input (type attribute in the Month state) No Yes None
Role: ROLE_SYSTEM_DROPLIST
UIA Calendar
Role: IA2_ROLE_DATE_EDITOR
Control Type: Calendar
Role: ATK_ROLE_DATE_EDITOR
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Number state) No Yes spinbutton role
Role: ROLE_SYSTEM_SPINBUTTON
Role: ROLE_SYSTEM_SPINBUTTON or ROLE_SYSTEM_TEXT (implementation dependent)
Control Type: Spinner
Role: ATK_ROLE_SPIN_BUTTON or ATK_ROLE_ENTRY (implementation dependent)
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) Yes Yes textbox role
Role: ROLE_SYSTEM_TEXT
States: STATE_SYSTEM_PROTECTED
UIA Edit with UIA_IsPasswordPropertyId
Role: ROLE_SYSTEM_TEXT
States: STATE_SYSTEM_PROTECTED; IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Control Type: Edit
Properties: UIA_IsPasswordPropertyId
Role: ATK_ROLE_PASSWORD_TEXT
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE until readonly
Actions: activate
AXRole: AXTextField
AXSubrole: AXSecureTextField
AXRoleDescription: "secure text field"
input (type attribute in the Radio Button state) Yes Yes radio role, with the aria-checked state set to "true" if the element's checkedness is true, or "false" otherwise
Role: ROLE_SYSTEM_RADIOBUTTON
Role: ROLE_SYSTEM_RADIOBUTTON
States: IA2_STATE_CHECKABLE and STATE_SYSTEM_CHECKED if checked
Actions: select
Control Type: RadioButton
Role: ATK_ROLE_RADIO_BUTTON
States: ATK_STATE_CHECKED if checked
Object attributes: checkable:true
Actions: select
AXRole: AXRadioButton
AXSubrole: (nil)
AXRoleDescription: "radio button"
input (type attribute in the Radio Button state and parent is a menu) ? ? ? ? ?
Control Type: MenuItem
Control Pattern: Toggle
? ?
input (type attribute in the Range state) No Yes slider role
Role: ROLE_SYSTEM_SLIDER
Role: ROLE_SYSTEM_SLIDER
Interfaces: IAccessibleValue
Control Type: Slider
Role: ATK_ROLE_SLIDER
Interfaces: AtkValue
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) Yes Yes button role
Role: ROLE_SYSTEM_PUSHBUTTON
Role: ROLE_SYSTEM_PUSHBUTTON
Actions: press
Control Type: Button
Role: ATK_ROLE_PUSH_BUTTON
Actions: press
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Submit Button state) Yes Yes button role
Role: ROLE_SYSTEM_PUSHBUTTON
Role: ROLE_SYSTEM_PUSHBUTTON
States: STATE_SYSTEM_DEFAULT if the button is default
Actions: press
Control Type: Button
Role: ATK_ROLE_PUSH_BUTTON
States: ATK_STATE_DEFAULT if the button is default
Actions: press
AXRole: AXButton
AXSubrole: (nil)
AXRoleDescription: "button"
input (type attribute in the Telephone state with no suggestions source element) No Yes textbox role
Role: ROLE_SYSTEM_TEXT
UIA Edit
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
Control Type: Edit
Role: ATK_ROLE_ENTRY
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Text state with no suggestions source element) Yes Yes textbox role
Role: ROLE_SYSTEM_TEXT
UIA Edit
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
Control Type: Edit
Role: ATK_ROLE_ENTRY
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
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) No Yes combobox role, with the aria-owns property set to the same value as the list attribute
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_HASPOPUP
Same as ordinal elements.
States: STATE_SYSTEM_HASPOPUP and IA2_STATE_SUPPORTS_AUTOCOMPLETION
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
Control Type: ComboBox
Same as ordinal elements.
States: ATK_STATE_SUPPORTS_AUTOCOMPLETION
Object attributes: haspopup:true
Actions: activate
Interfaces: AtkText; AtkEditableText
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Time state) No Yes None
Role: ROLE_SYSTEM_SPINBUTTON
Role: ROLE_SYSTEM_SPINBUTTON
Control Type: Spinner
Role: ATK_ROLE_SPIN_BUTTON
AXRole: AXTimeField
AXSubrole: (nil)
AXRoleDescription: "time field"
input (type attribute in the URL state with no suggestions source element) No Yes textbox role
Role: ROLE_SYSTEM_TEXT
UIA Edit
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_SINGLE_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
Control Type: Edit
Role: ATK_ROLE_ENTRY
States: ATK_STATE_SINGLE_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
input (type attribute in the Week state) No Yes None
Role: ROLE_SYSTEM_DROPLIST
UIA Calendar
Role: IA2_ROLE_DATE_EDITOR
Control Type: Calendar
Role: ATK_ROLE_CALENDAR
AXRole: AXTextField
AXSubrole: (nil)
AXRoleDescription: "text field"
ins Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
kbd Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Mapped into "font-family:monospace" text attribute on its text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Mapped into "font-family:monospace" text attribute on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
keygen No Yes listbox role, with the aria-multiselectable property set to "false"
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_HASPOPUP
Use MSAA or UIA guidance
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
Control Type: ComboBox
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
AXRole: AXList
AXSubrole: (nil)
AXRoleDescription: "list"
label Yes Yes None
Role: ROLE_SYSTEM_TEXT
Use UIA guidance
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
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.
Role: ATK_ROLE_LABEL
Relations: ATK_RELATION_LABEL_FOR for a child form element or form element referred by for attribute. Note, related form element provides ATK_RELATION_LABELLED_BY pointing to the label.
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
legend Yes Yes None
Role: ROLE_SYSTEM_TEXT
SHOULD use UIA_LabeledByPropertyId (see UIA column)
Role : ROLE_SYSTEM_STATICTEXT and IA2_ROLE_LABEL
Relations: IA2_RELATION_LABEL_FOR with parent fieldset element
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text
Properties: The parent fieldset has a UIA_LabeledByPropertyId pointing to the UIA element for the legend element.
Role : ATK_ROLE_LABEL
Relations: ATK_RELATION_LABEL_FOR with parent fieldset element
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
li (parent is an ol or ul) Yes Yes listitem role
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_READONLY
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_READONLY
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: ListItem
Role: ATK_ROLE_LISTITEM
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
li (parent is a menu) No Yes listitem role
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_READONLY
Role: ROLE_SYSTEM_LISTITEM
States: STATE_SYSTEM_READONLY
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: MenuItem
Role: ATK_ROLE_LISTITEM
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
main No Yes main role
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Role: IA2_ROLE_PARAGRAPH
Object attributes: xml-roles:main
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Group
Role: ATK_ROLE_SECTION
Object attributes: xml-roles:main
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXLandmarkMain
AXRoleDescription: "main"
map Yes Yes None
Not mapped
Not mapped if used as an image map, otherwise:
Role: IA2_ROLE_TEXT_FRAME
Not mapped
Not mapped if used as an image map, otherwise:
Role: ATK_ROLE_TEXT
Not mapped
mark No Yes None
Role: ROLE_SYSTEM_TEXT
Doesn't have an accessible. Styles used to highlight the text are mapped into text attributes on the text container.
Control Type: Text
Doesn't have an accessible. Styles used to highlight the text are mapped into text attributes on the text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
math No Yes math role
Role: ROLE_SYSTEM_EQUATION
Role: ROLE_SYSTEM_EQUATION
?
Role: ATK_ROLE_UNKNOWN
AXRole: AXGroup
AXSubrole: AXDocumentMath
AXRoleDescription: "math"
menu (type attribute in the popup menu state) No Yes menu role
Role: ROLE_SYSTEM_MENUPOPUP
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_MENUPOPUP
Control Type: Menu
Role: ATK_ROLE_MENU
These objects should not be exposed for a submenu if there is a parent menu item spawning the submenu
AXRole: AXMenu
AXSubrole: (nil)
AXRoleDescription: "menu"
menu (type attribute in the toolbar state) No Yes toolbar role
Role: ROLE_SYSTEM_TOOLBAR
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_TOOLBAR
Control Type: ToolBar
Role: ATK_ROLE_TOOL_BAR
AXRole: AXMenu
AXSubrole: (nil)
AXRoleDescription: "menu"
menuitem (type attribute in the Checkbox state) No Yes menuitemcheckbox role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
Role: IA2_ROLE_CHECK_MENU_ITEM
States: IA2_STATE_CHECKABLE; STATE_SYSTEM_CHECKED if checked;
Control Type: MenuItem
Control Pattern: Toggle
Role: ATK_ROLE_CHECK_MENU_ITEM
States: ATK_STATE_CHECKED if checked
Object attributes: checkable:true
AXRole: AXCheckbox
AXSubrole: (nil)
AXRoleDescription: "check box"
menuitem (type attribute in the Command state) No Yes menuitem role
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
Role: ROLE_SYSTEM_MENUITEM
Control Type: MenuItem
Role: ATK_ROLE_MENU_ITEM
AXRole: AXMenuItem
AXSubrole: (nil)
AXRoleDescription: "menu item"
menuitem (type attribute in the Radio state) No Yes menuitemradio role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
Role: ROLE_SYSTEM_MENUITEM
Use UIA guidance
Role: IA2_ROLE_RADIO_MENU_ITEM
States: IA2_STATE_CHECKABLE; STATE_SYSTEM_CHECKED if checked;
Control Type: MenuItem
Control Pattern: Toggle
Role: ATK_ROLE_RADIO_MENU_ITEM
States: ATK_STATE_CHECKED if checked
Object attributes: checkable:true
AXRole: AXRadioButton
AXSubrole: (nil)
AXRoleDescription: "radio button"
meta Yes Yes None
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
meter No Yes None
Role: ROLE_SYSTEM_TEXT
?? not sure this is right.  maybe a number or value or something?
Use UIA guidance
Role: ROLE_SYSTEM_PROGRESSBAR
Interfaces: IAccessibleValue
Control Pattern: RangeValue
Properties: Set the control pattern's IsReadOnly property to true. Set LocalizedControlType to "Meter".
Role: ATK_ROLE_PROGRESS_BAR
Interfaces: AtkValue
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
nav No Yes navigation role
Role: ROLE_SYSTEM_GROUPING
Role: IA2_ROLE_SECTION
Object attributes: xml-roles:navigation
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: ??Text
Role: ATK_ROLE_PANEL
Object attributes: xml-roles:navigation
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXLandmarkNavigation
AXRoleDescription: "navigation"
noscript Yes Yes None
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
object Yes Yes no role ?? 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
Depends on format of data file. If contains a plugin then
Role: IA2_ROLE_EMBEDDED_OBJECT
States: STATE_SYSTEM_UNAVAILABLE for windowless plugin
Depends on format of data file.
Depends on format of data file. If contains a plugin then
Role: ATK_ROLE_EMBEDDED
Depends on format of data file.
ol Yes Yes list role
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY
Control Type: List
Role: ATK_ROLE_LIST
AXRole: AXList
AXSubrole: AXContentList
AXRoleDescription: "list"
optgroup Yes Yes group role
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_GROUPING
Control Type: Group
Role: ATK_ROLE_PANEL
AXRole: AXMenuItem
AXSubrole: (nil)
AXRoleDescription: "menu item"
option (in a list of options or represents a suggestion in a datalist) No Yes option role, with the aria-selected state set to "true" if the element's selectedness is true, or "false" otherwise.
Role: ROLE_SYSTEM_LISTITEM
Use MSAA or UIA guidance
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
Control Type: ListItem
Control Pattern: SelectionItem (required for ListItem control type)
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
AXRole: AXMenuItem
AXSubrole: (nil)
AXRoleDescription: "menu item"
output No Yes status role
Role: ROLE_SYSTEM_STATUSBAR ??text read-only seems closer.  this is a label that is calculated??
Use UIA guidance
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
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.
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
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
p Yes Yes None
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Role: IA2_ROLE_PARAGRAPH
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text
Role: ATK_ROLE_PARAGRAPH
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
param Yes Yes None
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
pre Yes Yes None
Role: ROLE_SYSTEM_TEXT ??group?
Use MSAA or UIA guidance
Role: IA2_ROLE_PARAGRAPH
Used styles are mapped into text attributes on the accessible
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text ??Group??
Role: ATK_ROLE_PARAGRAPH
Used styles are mapped into text attributes on the accessible
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
progress No Yes progressbar role, with, if the progress bar is determinate, the aria-valuemax property set to the maximum value of the progress bar, the aria-valuemin property set to zero, and the aria-valuenow property set to the current value of the progress bar
Role: ROLE_SYSTEM_PROGRESSBAR
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_PROGRESSBAR
States: STATE_SYSTEM_MIXED if the progress is indeterminate
Interfaces: IAccessibleValue
Control Type: ProgressBar
Role: ATK_ROLE_PROGRESS_BAR
States: ATK_STATE_INDETERMINATE if the progress is indeterminate
Interfaces: AtkValue
AXRole: AXProgressIndicator
AXSubrole: (nil)
AXRoleDescription: "progress indicator"
Properties: Use AXValue to expose current value.
q Yes Yes None
Role: ROLE_SYSTEM_TEXT ??group??
Use MSAA or UIA guidance
Role: IA2_ROLE_TEXT_FRAME
Children: ROLE_SYSTEM_TEXT wrapped by ROLE_SYSTEM_STATICTEXT created for quote marks
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text ??Group??
Role: ATK_ROLE_TEXT
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
rp No Yes None
Role: ROLE_SYSTEM_TEXT ??group??
Use MSAA or UIA guidance
Doesn't have an accessible. No child elements are exposed if ruby is supported by the browser.
Control Type: Text ??Group??
Doesn't have an accessible. No child elements are exposed if ruby is supported by the browser.
?
rt No Yes None
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Doesn't have an accessible.
Control Type: Text
Doesn't have an accessible.
?
ruby No Yes None
Role: ROLE_SYSTEM_TEXT ??group??
Use MSAA or UIA guidance
Role: IA2_ROLE_TEXT_FRAME
Control Type: Text ??Group??
Role: ATK_ROLE_TEXT
?
s ? Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, exposed as "text-line-through-style:solid" text attribute on the text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, exposed as "text-line-through-style:solid" text attribute on the text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
samp Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Styles are mapped into text attributes on its text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Styles are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
script Yes Yes None
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
section No Yes region role
Role: ROLE_SYSTEM_GROUPING
Role: IA2_ROLE_SECTION
Object attributes: xml-roles:region
Interfaces: IAccessibleText2; IAccessibleHypertext2
Control Type: Text ??Group??
Role: ATK_ROLE_SECTION
Object attributes: xml-roles:region
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXDocumentRegion
AXRoleDescription: "region"
select (with a multiple attribute or size attribute having value greater than 1) Yes Yes listbox role
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY; STATE_SYSTEM_MULTISELECTABLE if multiple presented
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_FOCUSABLE; STATE_SYSTEM_MULTISELECTABLE if multiple presented
Control Type: List
Control Pattern: ISelectionProvider::CanSelectMultiple set to true
Role: ATK_ROLE_LIST
States: ATK_STATE_FOCUSABLE; ATK_STATE_MULTISELECTABLE if multiple presented
Interfaces: AtkSelection
AXRole: AXList
AXSubrole: (nil)
AXRoleDescription: "list"
select (with NO multiple attribute and NO size attribute having value greater than 1) Yes Yes combobox role
Role: ROLE_SYSTEM_COMBOBOX
States: STATE_SYSTEM_HASPOPUP
Use MSAA or UIA guidance
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
Control Type: ComboBox
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
AXRole: AXPopUpButton
AXSubrole: (nil)
AXRoleDescription: "pop up button"
small Yes Yes None
Doesn't have an accessible. Exposed by UIA_FontSizeAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Exposed as "font-size" text attribute on the text container.
Doesn't have an accessible. Exposed by UIA_FontSizeAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Exposed as "font-size" text attribute on the text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
source No Yes None
Do not expose this object
Not mapped
Do not expose this object
Not mapped
Do not expose this object
span Yes Yes None
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Not mapped
Control Type: Group
Not mapped
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
strong Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Used styles are mapped into text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
style Yes Yes None
Do not expose this object
Not mapped
Do not expose this object
Not mapped
Do not expose this object
sub Yes Yes None
Doesn't have an accessible. Exposed by UIA_IsSubscriptAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Exposed as "text-position:sub" text attribute on its text container.
Doesn't have an accessible. Exposed by UIA_IsSubscriptAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Exposed as "text-position:sub" text attribute on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
summary No Yes None
Role: ROLE_SYSTEM_PUSHBUTTON
States: ??has popup??
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_PUSHBUTTON
Control Type: Button
Control Pattern: ExpandCollapse
Role: ATK_ROLE_PUSHBUTTON
AXRole: AXDisclosureTriangle
AXSubrole: (nil)
AXRoleDescription: "disclosure triangle"
sup Yes Yes None
Doesn't have an accessible. Exposed by UIA_IsSuperscriptAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Exposed as "text-position:super" text attribute on its text container.
Doesn't have an accessible. Exposed by UIA_IsSuperscriptAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible. Exposed as "text-position:super" text attribute on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
svg No Yes None
Role: ROLE_SYSTEM_GRAPHIC
Role: ROLE_SYSTEM_GRAPHIC
Control Type: Image
Role: ATK_ROLE_IMAGE
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
table Yes Yes None
Role: ROLE_SYSTEM_TABLE
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_TABLE
Relations: IA2_RELATION_LABELLED_BY by child caption if any
Interface: IAccessibleTable2
Control Type: DataGrid
Control Pattern: Table
Role: ATK_ROLE_TABLE
Relations: ATK_RELATION_LABELLED_BY by child caption if any
Interface: AtkTable
AXRole: AXTable
AXSubrole: (nil)
AXRoleDescription: "table"
tbody Yes Yes None
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Doesn't have an accessible
Control Type: Group
Doesn't have an accessible
Not mapped
td Yes Yes None
Role: ROLE_SYSTEM_CELL
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_CELL
Interfaces: IAccessibleTableCell; IAccessibleText2; IAccessibleHypertext2
Control Type: DataItem
Role: ATK_ROLE_TABLE_CELL
Interfaces: AtkText; AtkHypertext
AXRole: AXCell
AXSubrole: (nil)
AXRoleDescription: "cell"
template No Yes ? ?
Not mapped
?
Not mapped
?
textarea Yes Yes textbox role, with the aria-multiline property set to "true"
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_TEXT
States: IA2_STATE_MULTI_LINE; STATE_SYSTEM_READONLY if readonly, otherwise IA2_STATE_EDITABLE
Actions: activate
Interfaces: IAccessibleText2; IAccessibleEditableText
Control Type: Text ??Edit??
Role: ATK_ROLE_ENTRY
States: ATK_STATE_MULTI_LINE; ATK_STATE_EDITABLE if not readonly
Actions: activate
Interfaces: AtkText; AtkEditableText
AXRole: AXTextArea
AXSubrole: (nil)
AXRoleDescription: "text entry area"
tfoot Yes Yes None
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Doesn't have an accessible
Control Type: Group
Doesn't have an accessible
Not mapped
th (is neither a column header nor a row header) Yes Yes None
Role: ROLE_SYSTEM_CELL
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_CELL
Interfaces: IAccessibleTableCell; IAccessibleText2; IAccessibleHypertext2
Control Type: DataItem
Role: ATK_ROLE_TABLE_CELL
Interfaces: AtkText; AtkHypertext
AXRole: AXCell
AXSubrole: (nil)
AXRoleDescription: "cell"
th (is a column header) Yes Yes None
Role: ROLE_SYSTEM_COLUMNHEADER
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_COLUMNHEADER
Interfaces: IAccessibleTableCell; IAccessibleText2; IAccessibleHypertext2
Control Type: Header
Properties: UIA_OrientationPropertyId set to OrientationType_Vertical
??seems like it should be HeaderItem.  ARIA UAIG has DataItem??
Role: ATK_ROLE_COLUMN_HEADER
Interfaces: AtkText; AtkHypertext
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) Yes Yes None
Role: ROLE_SYSTEM_ROWHEADER
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_ROWHEADER
Interfaces: IAccessibleTableCell; IAccessibleText2; IAccessibleHypertext2
Control Type: Header
Properties: UIA_OrientationPropertyId set to OrientationType_Horizontal
??seems like it should be HeaderItem.  ARIA UAIG has DataItem??
Role: ATK_ROLE_ROW_HEADER
Interfaces: AtkText; AtkHypertext
AXRole: AXCell
AXSubrole: (nil)
AXRoleDescription: "cell"
Properties: Parent table implements AXRowHeaderUIElements property as a list of pointers to the row header cells.
thead Yes Yes None
Role: ROLE_SYSTEM_GROUPING
Doesn't have an accessible
Control Type: Header
Doesn't have an accessible
Not mapped
time No Yes None
Role: ROLE_SYSTEM_TEXT
Not mapped
?
Not mapped
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
title Yes Yes None
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
tr Yes Yes None
Role: ROLE_SYSTEM_ROW
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_ROW
Control Type: DataItem
Control Pattern: SelectionItem
Role: ATK_ROLE_LIST_ITEM
AXRole: AXRow
AXSubrole: AXTableRow
AXRoleDescription: "row"
track No Yes ? ?
Not mapped
?
Not mapped
?
u ? ? ?
Doesn't have an accessible. Exposed by UIA_UnderlineStyleAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, mapped as "text-underline-style:solid" text attribute on its text container.
Doesn't have an accessible. Exposed by UIA_UnderlineStyleAttributeId of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, mapped as "text-underline-style:solid" text attribute on its text container.
?
ul Yes Yes list role
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_LIST
States: STATE_SYSTEM_READONLY
Control Type: List
Role: ATK_ROLE_LIST
AXRole: AXList
AXSubrole: AXContentList
AXRoleDescription: "list"
var Yes Yes None
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, used styles are mapped to text attributes on its text container.
Doesn't have an accessible. Styles used are exposed by UIA text attribute identifiers of the TextRange control pattern implemented on a parent accessible.
Doesn't have an accessible, used styles are mapped to text attributes on its text container.
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
video No Yes None ?
Role: ROLE_SYSTEM_GROUPING
?
Role: ATK_ROLE_PANEL
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the video element exposed as AXToolbar.
wbr No Yes None
Not mapped
A line break if added is exposed via IAccessibleText on its text container
Not mapped
A line break if added is exposed via Text interface on its text container
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"

HTML Attribute to Accessibility API State and Property Mapping Matrix

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

aria-autocomplete

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

Not mapped
States: STATE_SUPPORTS_AUTOCOMPLETION on text form controls unitl the value is overriden by control
Not mapped
States: ATK_STATE_SUPPORTS_AUTOCOMPLETION on text form controls unitl the value is overriden by control
Not mapped  
autocomplete input; select; textarea No Yes

aria-autocomplete

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

Not mapped
States: STATE_SUPPORTS_AUTOCOMPLETION
Not mapped
States: ATK_STATE_SUPPORTS_AUTOCOMPLETION
Not mapped  
autofocus button; input; keygen; select; textarea No Yes Not mapped - aria-flowto? N/A
Not mapped
N/A
Not mapped
N/A  
autoplay audio; video No Yes Not mapped N/A
Not mapped
N/A
Not mapped
N/A  
border table Yes Yes Not mapped  
Not mapped
 
Not mapped
   
challenge keygen No Yes Not mapped  
Not mapped
 
Not mapped
   
charset meta No Yes Not mapped  
Not mapped
 
Not mapped
   
charset script Yes Yes Not mapped  
Not mapped
 
Not mapped
   
checked (if present) menuitem; input Yes Yes aria-checked (state)="true" Set the STATE_SYSTEM_CHECKED state
States: STATE_SYSTEM_CHECKED
Expose as ToggleState property in Toggle control pattern
States: ATK_STATE_CHECKED
AXValue: 1  
checked (if absent) menuitem; input Yes Yes aria-checked (state)="false" Clear the STATE_SYSTEM_CHECKED state
Not mapped
Expose as ToggleState property in Toggle control pattern.
Not mapped
AXValue: 0  
cite blockquote; del; ins; q Yes Yes    
Not mapped
 
Not mapped
AXURL: <value>  
class HTML elements Yes Yes Not mapped  
Not mapped
 
Not mapped
   
cols textarea Yes Yes    
Not mapped
 
Not mapped
AXRangeForLine: <value>  
colspan td; th Yes Yes    
exposed via IAccessibleTableCell::columnExtent
 
exposed via atk_table_get_column_extent_at
AXColumnIndexRange:
loc=<column index>
len=<colspan value>
 
command menuitem No Yes Not mapped  
Not mapped
 
Not mapped
   
content meta Yes Yes Not mapped  
Not mapped
 
Not mapped
   
contenteditable HTML elements No Yes    
States: IA2_STATE_EDITABLE on this and every nested text accessible
Interfaces: IAccessibleEditableText on this and every nested text accessible
 
States: ATK_STATE_EDITABLE on this and every nested text accessible
Interfaces: AtkEditableText on this and every nested text accessible
?  
contextmenu HTML elements No Yes aria-haspopup="true" Expose as STATE_SYSTEM_HASPOPUP. If on a push button, change the role to ROLE_SYSTEM_BUTTONMENU.
Linked menu is available in browser's context menu on the element
Expose state of the pop-up activities in the ExpandCollapseState property in the ExpandCollapse control pattern.
Linked menu is available in browser's context menu on the element
Actions: AXShowMenu; AXPress
 
controls audio; video No Yes    
Not mapped
 
Not mapped
Controls exposed as AXToolbar  
coords area Yes Yes Not mapped  
Defines an accessible's dimensions (IAccessible::accLocation)
 
Defines an accessible's dimensions, exposed via atk_component_get_position and atk_component_get_size
   
crossorigin audio; img; link; script; video No Yes Not mapped  
Not mapped
 
Not mapped
   
data object Yes Yes Not mapped  
Not mapped
 
Not mapped
   
datetime del; ins No Yes    
Not mapped
 
Not mapped
?  
datetime time No Yes    
Not mapped
 
Not mapped
?  
default track No Yes Not mapped  
Not mapped
 
Not mapped
   
defer script Yes Yes Not mapped  
Not mapped
 
Not mapped
   
dir HTML elements ? Yes    
Exposed as "writing-mode" text attribute on the text container.
 
Exposed as "writing-mode" text attribute on the text container.
?  
dirname input; textarea ? Yes    
Not mapped
 
Not mapped
?  
disabled button; menuitem; fieldset; input; keygen; optgroup; option; select; textarea Yes Yes    
States: STATE_SYSTEM_UNAVAILABLE
 
States: No interactive states like ATK_STATE_FOCUSABLE
AXEnabled: NO  
download a; area No Yes    
Not mapped
 
Not mapped
?  
draggable HTML elements No Yes    
Object attributes: draggable:true
 
Object attributes: draggable:true
?  
dropzone HTML elements No Yes    
Not mapped
 
Not mapped
?  
enctype form Yes Yes Not mapped  
Not mapped
 
Not mapped
   
for label Yes Yes Not mapped  
Used for accessible name
Relations: IA2_RELATION_LABEL_FOR and IA2_RELATION_LABEL_BY relations between label and referred element
 
Used for accessible name
Relations: ATK_RELATION_LABEL_FOR and ATK_RELATION_LABEL_BY relations between label and referred element
   
for output No Yes Not mapped  
Relations: IA2_RELATION_CONTROLLED_BY with an element pointed by the attribute. Paired element exposes IA2_RELATION_CONTROLLER_FOR relation.
 
Relations: ATK_RELATION_CONTROLLED_BY with an element pointed by the attribute. Paired element exposes ATK_RELATION_CONTROLLER_FOR relation.
   
form button; fieldset; input; keygen; label; object; output; select; textarea No Yes Not mapped  
Not mapped
 
Not mapped
   
formaction button; input No Yes Not mapped  
Not mapped
 
Not mapped
   
formenctype button; input No Yes Not mapped  
Not mapped
 
Not mapped
   
formmethod button; input No Yes Not mapped  
Not mapped
 
Not mapped
   
formnovalidate button; input No Yes Not mapped  
Not mapped
 
Not mapped
   
formtarget button; input No Yes Not mapped  
Not mapped
 
Not mapped
   
headers td; th Yes Yes    
Links the cell to its header cells. Exposed via IAccessibleTableCell::rowHeaderCells and columnHeaderCells.
 
Links the cell to its row and column header cells (note, only one row and one column header cells can be exposed because of API restrictions). See atk_table_get_row_header and atk_table_get_column_header.
Expose via AXColumnHeaderUIElements and AXRowHeaderUIElements  
height canvas; embed; iframe; img; input; object; video Yes Yes Not mapped  
Defines an accessible's height (IAccessible::accLocation)
 
Defines an accessible's height (atk_component_get_size)
   
hidden HTML elements No Yes    
Makes the element not accessible
 
Makes the element not accessible
Not exposed in AX API  
high meter No Yes    
Not mapped
 
Not mapped
?  
href a; area Yes Yes    
Creates a link accessible, for details refer to a and area elements mapping.
 
Creates a link accessible, for details refer to a and area elements mapping.
AXURL: <value>  
hreflang a; area; link Yes Yes    
Not mapped
 
Not mapped
   
http-equiv meta Yes Yes Not mapped  
Not mapped
 
Not mapped
   
icon menuitem No Yes Not mapped  
Not mapped
 
Not mapped
   
id HTML elements Yes Yes Not mapped  
Not mapped
 
Not mapped
   
ismap img Yes Yes Not mapped  
Not mapped
 
Not mapped
   
keytype keygen No Yes Not mapped  
Not mapped
 
Not mapped
   
kind track No Yes    
Not mapped
 
Not mapped
   
label menuitem; menu; optgroup; option; track ? Yes    
Associates the accessible name
 
Associates the accessible name
   
lang HTML elements Yes Yes    
Exposed as "language" text attribute on the text container
 
Exposed as "language" text attribute on the text container
   
list input No Yes Not mapped  
Associates the autocomplete list with the control. Refer to input elements mapping.
 
Associates the autocomplete list with the control. Refer to input elements mapping.
   
longdesc img, frame, iframe Yes No No accdescription (Internet Explorer only)
Actions: showlongdesc (exposed on img only)
Not mapped
Actions: showlongdesc (exposed on img only)
Not mapped
IE 8+ populates the accdescription with the value of the longdesc attribute. This is brittle as it is overwritten when aria-describedby is used.
loop audio; video No Yes Not mapped  
Not mapped
 
Not mapped
   
low meter No Yes    
Not mapped
 
Not mapped
   
manifest html No Yes Not mapped  
Not mapped
 
Not mapped
   
max input No Yes    
Exposed as IAccessibleValue::maximumValue if the element implements the interface
 
Exposed as atk_value_get_maximum_value if the element implements the AtkValue interface
AXMaxValue: <value>  
max meter; progress No Yes    
Exposed as IAccessibleValue::maximumValue if the element implements the interface
 
Exposed as atk_value_get_maximum_value if the element implements the AtkValue interface
AXMaxValue: <value>  
maxlength input; textarea Yes Yes    
Not mapped
 
Not mapped
   
media link; source; style ? Yes    
Not mapped
 
Not mapped
   
mediagroup audio; video No Yes Not mapped  
Not mapped
 
Not mapped
   
method form Yes Yes Not mapped  
Not mapped
 
Not mapped
   
min input   Yes    
Exposed as IAccessibleValue::minimumValue if the element implements the interface
 
Exposed as atk_value_get_minimum_value if the element implements the AtkValue interface
AXMinValue: <value>  
min meter No Yes    
Exposed as IAccessibleValue::minimumValue if the element implements the interface
 
Exposed as atk_value_get_minimum_value if the element implements the AtkValue interface
AXMinValue: <value>  
multiple input Yes Yes the aria-multiselectable property set to "true"  
Not mapped
 
Not mapped
   
multiple select Yes Yes    
States: STATE_SYSTEM_MULTISELECTABLE
A multi selectable listbox accessible, refer to select element
 
States: ATK_STATE_SYSTEM_MULTISELECTABLE
A multi selectable listbox accessible, refer to select element
   
muted audio; video No Yes Not mapped  
Not mapped
 
Not mapped
   
name button; fieldset; input; keygen; output; select; textarea Yes Yes Not mapped  
Not mapped
 
Not mapped
   
name form Yes Yes Not mapped  
Not mapped
 
Not mapped
   
name iframe; object Yes Yes Not mapped  
Not mapped
 
Not mapped
   
name map Yes Yes Not mapped  
Not mapped
 
Not mapped
   
name meta Yes Yes Not mapped  
Not mapped
 
Not mapped
   
name param Yes Yes Not mapped  
Not mapped
 
Not mapped
   
novalidate form No Yes Not mapped  
Not mapped
 
Not mapped
   
open details No Yes aria-expanded="true | false" STATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
STATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
ExpandCollapsePattern
States: ATK_STATE_COLLAPSED or ATK_STATE_EXPANDED depending on the attribute value
AXExpanded: YES|NO Set properties on the summary element.
open dialog No Yes aria-expanded="true | false" STATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
STATE_SYSTEM_EXPANDED
STATE_SYSTEM_COLLAPSED
ExpandCollapsePattern
States: ATK_STATE_COLLAPSED or ATK_STATE_EXPANDED depending on the attribute value
AXExpanded: YES|NO
optimum meter No Yes    
Not mapped
 
Not mapped
   
pattern input No Yes    
States: IA2_STATE_INVALID_ENTRY if value doesn't meet the pattern
 
States: ATK_STATE_INVALID_ENTRY if value doesn't meet the pattern
   
placeholder input; textarea No Yes    
Associates the accessible name or if it was provided otherwise then accessible description
 
Associates the accessible name or if it was provided otherwise then accessible description
AXPlaceholderValue: <value>  
poster video No Yes    
Not mapped
 
Not mapped
   
preload audio; video No Yes    
Not mapped
 
Not mapped
   
radiogroup menuitem No Yes    
Not mapped
 
Not mapped
   
readonly input; textarea Yes Yes   STATE_SYSTEM_READONLY
Adds STATE_SYSTEM_READONLY bit to input and textarea elements
 
Removes ATK_STATE_EDITABLE bit bit from input and textarea elements
AXEnabled: NO  
rel a; area; link   Yes    
Not mapped
 
Not mapped
   
required input; select; textarea No Yes aria-required

Not mapped *

* Exposed as STATE_SYSTEM_ALERT_LOW, STATE_SYSTEM_ALERT_HIGH in Firefox.

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

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:

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

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.

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

Other Accessibility Implementations

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.

Use of the DOM by Some Assistive Technologies

to do

Accessible Name and Description calculation

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

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

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

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

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

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.

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

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

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

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

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

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

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

Accessible feature implementation examples:

summary and details elements

Focus and keyboard interaction

The summary element should be focusable by default.

The details element should not focusable by default.

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

Role, name, state and property mapping

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

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

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

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

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

The figure and figcaption elements

to do

Table algorithm

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

to do

Notes

Acknowledgements

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.