Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
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.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This document is subject to change without notice.
This document was published by the HTML Working Group as an Editor's Draft. If you wish to make comments regarding this document, please send them to public-html@w3.org (subscribe, archives). All feedback is welcome.
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
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.
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.
Notes:
a
(represents a hyperlink)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | link role |
MSAA | ROLE_SYSTEM_LINK. Also, apply special rule to expose STATE_LINKED to link and all its descendants. |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | HyperLink |
IAccessible2 | ROLE_SYSTEM_LINK. Also, apply special rule to expose STATE_LINKED to link and all its descendants. |
AT-SPI | ROLE_LINK |
AX AXRole AXSubrole AXRoleDescription | AXLink (null) link |
a
(no href
attribrute)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
abbr
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | Object attribute role="abbr" |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
address
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Group |
IAccessible2 | Object attribute role="address" |
AT-SPI | Object attribute role="address" |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
area
(represents a hyperlink)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | link role |
MSAA | ROLE_SYSTEM_LINK. Also, apply special rule to expose STATE_LINKED to link and all its descendants. |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | HyperLink |
IAccessible2 | ROLE_SYSTEM_LINK. Also, apply special rule to expose STATE_LINKED to link and all its descendants. |
AT-SPI | ROLE_LINK |
AX AXRole AXSubrole AXRoleDescription | AXLink (null) link |
area
(no href
attribute)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text |
IAccessible2 | ROLE_SYSTEM_TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXScrollArea (null) scroll area |
article
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | article role |
MSAA | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY ??ROLE_SYSTEM_GROUPING? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | ??Group or Text?? |
IAccessible2 | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_DOCUMENT_FRAME + do not expose STATE_EDITABLE |
AX AXRole AXSubrole AXRoleDescription | AXGroup AXDocumentArticle article |
aside
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | complementary role |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Group |
IAccessible2 | Object attribute role="complementary" |
AT-SPI | Object attribute role="complementary" |
AX AXRole AXSubrole AXRoleDescription | AXGroup AXLandmarkComplementary complementary |
audio
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ? |
MSAA + UIA Express | ? |
UIA | Group |
IAccessible2 | ? |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | AXGroup Note: UI controls within the audio element exposed as AXToolbar. |
b
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
base
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | no mapping |
MSAA + UIA Express | no mapping |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX AXRole AXSubrole AXRoleDescription | no mapping |
bdo
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
blockquote
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Group |
IAccessible2 | ? |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
body
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | document role |
MSAA | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Document |
IAccessible2 | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_DOCUMENT_FRAME + STATE_READONLY |
AX AXRole AXSubrole AXRoleDescription | AXWebArea (null) HTML content |
br
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ WHITESPACE |
MSAA + UIA Express | ? |
UIA | ? |
IAccessible2 | ROLE_SYSTEM_ WHITESPACE |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | ? |
button
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | button role |
MSAA | ROLE_SYSTEM_PUSHBUTTON. |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Button ?? When it is in a <menu> it defines a command. Is it still a button, or is it a menuitem?? |
IAccessible2 | ROLE_SYSTEM_PUSHBUTTON |
AT-SPI | ROLE_PUSH_BUTTON |
AX AXRole AXSubrole AXRoleDescription | AXButton (null) button |
canvas
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | SYSTEM_ROLE_GRAPHIC |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Image NOTE: subdom elements will be mapped separately |
IAccessible2 | IA2_ROLE_CANVAS |
AT-SPI | ROLE_GRAPHIC + STATE_ANIMATED. |
AX AXRole AXSubrole AXRoleDescription | AXImage (null) image |
caption
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT + STATE_SYSTEM_READONLY |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | text The parent table has a UIA_LabeledByPropertyId pointing to the UIA element for the caption element. |
IAccessible2 | IA2_ROLE_CAPTION |
AT-SPI | ROLE_CAPTION |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
cite
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??GROUP?? |
MSAA + UIA Express | text |
UIA | text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
code
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | text |
UIA | text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
col
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ?ROLE_SYSTEM_COLUMN |
MSAA + UIA Express | ROLE_SYSTEM_COLUMN |
UIA | ? |
IAccessible2 | ROLE_SYSTEM_GROUPING? |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | ? |
colgroup
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ?ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | ?TODO: look in more detail at UIA table implemenation |
UIA | ?TODO: look in more detail at UIA table implemenation |
IAccessible2 | ROLE_SYSTEM_GROUPING? |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | ? |
command
(in the command state whose parent is a menu)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | menuitem role |
MSAA | ROLE_SYSTEM_MENUITEM |
MSAA + UIA Express | Use UIA guidance |
UIA | MenuItem |
IAccessible2 | ROLE_SYSTEM_MENUITEM |
AT-SPI | ROLE_MENU_ITEM |
AX AXRole AXSubrole AXRoleDescription | AXMenuItem (null) menu item |
command
(in the command state whose parent is NOT a menu)HTML4 | |
---|---|
HTML5 | |
WAI-ARIA | |
MSAA | |
MSAA + UIA Express | Use UIA guidance |
UIA | Button |
IAccessible2 | |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription |
command
(in the checkbox state whose parent is a menu)HTML4 | |
---|---|
HTML5 | |
WAI-ARIA | |
MSAA | |
MSAA + UIA Express | Use UIA guidance |
UIA | MenuItem with Toggle pattern |
IAccessible2 | |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription |
command
(in the checkbox state whose parent is NOT a menu)HTML4 | |
---|---|
HTML5 | |
WAI-ARIA | |
MSAA | |
MSAA + UIA Express | Use UIA guidance |
UIA | Checkbox |
IAccessible2 | |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription |
command
(in the radio state whose parent is a menu)HTML4 | |
---|---|
HTML5 | |
WAI-ARIA | |
MSAA | |
MSAA + UIA Express | Use UIA guidance |
UIA | MenuItem with Toggle pattern |
IAccessible2 | |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription |
command
(in the radio state parent is NOT a menu)HTML4 | |
---|---|
HTML5 | |
WAI-ARIA | |
MSAA | |
MSAA + UIA Express | Use UIA guidance |
UIA | RadioButton |
IAccessible2 | |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription |
menu
element whose type
attribute is in the list stateHTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | menuitemcheckbox role, with the aria-checked state set to "true" if the command's Checked State facet is true, and "false" otherwise |
MSAA | ROLE_SYSTEM_CHECKBUTTON or ROLE_SYSTEM_MENUITEM |
MSAA + UIA Express | Use UIA guidance |
UIA | MenuItem with Toggle pattern |
IAccessible2 | IA2_ROLE_CHECK_MENU_ITEM + object attribute checkable="true" |
AT-SPI | ROLE_CHECK_MENU_ITEM + object attribute checkable="true" |
AX AXRole AXSubrole AXRoleDescription | AXCheckbox (null) check box |
menu
element whose type
attribute is in the list stateHTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | menuitem role |
MSAA | ROLE_SYSTEM_MENUITEM |
MSAA + UIA Express | Use either MSAA or UIA guidance |
UIA | MenuItem |
IAccessible2 | ROLE_SYSTEM_MENUITEM |
AT-SPI | ROLE_MENU_ITEM |
AX AXRole AXSubrole AXRoleDescription | depends on element used to define command |
menu
element whose type
attribute is in the list stateHTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | menuitemradio role, with the aria-checked state set to "true" if the command's Checked State facet is true, and "false" otherwise |
MSAA | ROLE_SYSTEM_RADIOBUTTON or ROLE_SYSTEM_MENUITEM |
MSAA + UIA Express | Use UIA guidance |
UIA | MenuItem with Toggle pattern |
IAccessible2 | IA2_ROLE_RADIO_MENU_ITEM + object attribute checkable="true" |
AT-SPI | ROLE_RADIO_MENU_ITEM + object attribute checkable="true" |
AX AXRole AXSubrole AXRoleDescription | AXRadioButton (null) radio button |
datalist
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | listbox role, with the aria-multiselectable property set to "false" |
MSAA | ROLE_SYSTEM_COMBOBOX + STATE_SYSTEM_HASPOPUP. |
MSAA + UIA Express | Use UIA guidance |
UIA | Combobox |
IAccessible2 | ROLE_SYSTEM_COMBOBOX + STATE_SYSTEM_HASPOPUP. |
AT-SPI | ROLE_COMBO_BOX + STATE_EXPANDABLE |
AX AXRole AXSubrole AXRoleDescription | AXComboBox (null) combo box |
dd
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | ? |
UIA | ? |
IAccessible2 | IA2_ROLE_PARAGRAPH |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | AXGroup AXDefinition definition |
del
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | ? |
UIA | ? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
details
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none ??dialog seems closer?? |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | |
UIA | Group ??window?? |
IAccessible2 | ROLE_SYSTEM_GROUPING |
AT-SPI | ROLE_PANEL |
AX AXRole AXSubrole AXRoleDescription | ? |
dfn
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | |
UIA | ? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
dl
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | |
UIA | ? |
IAccessible2 | IA2_ROLE_PARAGRAPH |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | AXList AXDefinitionList definition list |
dt
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | |
UIA | ? |
IAccessible2 | IA2_ROLE_PARAGRAPH |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | AXGroup AXTerm term |
div
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | |
UIA | ? |
IAccessible2 | IA2_ROLE_SECTION |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
em
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | |
UIA | ? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
embed
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_CLIENT |
MSAA + UIA Express | |
UIA | ?Pane? Window? |
IAccessible2 | ROLE_SYSTEM_CLIENT |
AT-SPI | ROLE_EMBEDDED |
AX AXRole AXSubrole AXRoleDescription | depends on format of data file |
fieldset
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | Use UIA or MSAA guidance |
UIA | Group |
IAccessible2 | ROLE_SYSTEM_GROUPING |
AT-SPI | ROLE_PANEL |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
figcaption
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | se UIA or MSAA guidance |
UIA | Text |
IAccessible2 | IA2_ROLE_CAPTION |
AT-SPI | ROLE_CAPTION |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
figure
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | se UIA or MSAA guidance |
UIA | Group ??discuss graphic/image vs. group?? |
IAccessible2 | ROLE_SYSTEM_GROUPING note: accessible name from child figcaption |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | ? |
footer
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | se UIA or MSAA guidance |
UIA | Expose as text string "footer" in UIAutomationType_String ??discuss exposing localized type for all unmapped elements, or is it better to expose as Group?? |
IAccessible2 |
Object attribute role="footer" |
AT-SPI | Object attribute role="footer" |
AX AXRole AXSubrole AXRoleDescription | AXGroup note: "content" not a useful or accurate description. Recommend AXRoleDescription: "footer" Refer to Webkit bug 78967 |
form
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | form role |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | se UIA or MSAA guidance |
UIA | Group |
IAccessible2 | IA2_ROLE_FORM |
AT-SPI | ROLE_PANEL |
AX AXRole AXSubrole AXRoleDescription | AXGroup AXLandmarkForm form |
frame
HTML4 | yes |
---|---|
HTML5 | no |
WAI-ARIA | |
MSAA | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY ??currently mapped as pane not document. the document inside is mapped as document?? |
MSAA + UIA Express | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY ??currently mapped as pane not document. the document inside is mapped as document?? |
UIA | Document |
IAccessible2 | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_DOCUMENT_FRAME + STATE_READONLY |
AX AXRole AXSubrole AXRoleDescription | AXWebArea (null) HTML content |
frameset
HTML4 | yes |
---|---|
HTML5 | no |
WAI-ARIA | |
MSAA | ? |
MSAA + UIA Express | ? |
UIA | ? |
IAccessible2 | ? |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | ? |
head
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | no mapping |
MSAA + UIA Express | no mapping |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX AXRole AXSubrole AXRoleDescription | no mapping |
header
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | ROLE_SYSTEM_GROUPING |
UIA | Group (don't put header in localized type string because there is a header role for table headers) |
IAccessible2 | Object attribute role="header" |
AT-SPI | Object attribute role="header" |
AX AXRole AXSubrole AXRoleDescription | AXGroup Note: recommend AXRoleDescription: "header" to disambiguate from "banner" Refer to Webkit bug 78992 |
hgroup
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | ROLE_SYSTEM_GROUPING |
UIA | |
IAccessible2 | ROLE_SYSTEM_GROUPING |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription | ? |
h1 to h6
(with an hgroup
ancestor)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | ROLE_SYSTEM_ TEXT |
UIA | Text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXHeading (null) heading |
h1 to h6
(with NO hgroup
ancestor)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | heading role, with the aria-level property set to the element's outline depth |
MSAA | ROLE_SYSTEM_TEXT or use xml-roles |
MSAA + UIA Express | ROLE_SYSTEM_TEXT |
UIA | Text |
IAccessible2 | IA2_ROLE_HEADING Use the IAccessible2::attributes heading-level attribute to determine the heading level. |
AT-SPI | ROLE_HEADING |
AX AXRole AXSubrole AXRoleDescription | AXHeading (null) heading |
hr
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | separator role |
MSAA | ROLE_SYSTEM_SEPARATOR |
MSAA + UIA Express | ROLE_SYSTEM_SEPARATOR |
UIA | Separator |
IAccessible2 | ROLE_SYSTEM_SEPARATOR |
AT-SPI | ROLE_SEPARATOR |
AX AXRole AXSubrole AXRoleDescription | ? |
HTML
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | no mapping |
MSAA + UIA Express | no mapping |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX AXRole AXSubrole AXRoleDescription | no mapping |
i
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | ROLE_SYSTEM_ TEXT |
UIA | Text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
iframe
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY ??pane?? |
MSAA + UIA Express | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY |
UIA | Document ??Pane?? |
IAccessible2 | ROLE_SYSTEM_DOCUMENT + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_DOCUMENT_FRAME + STATE_READONLY |
AX AXRole AXSubrole AXRoleDescription | AXWebArea (null) html content |
img
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | img role |
MSAA | ROLE_SYSTEM_GRAPHIC |
MSAA + UIA Express | ROLE_SYSTEM_GRAPHIC |
UIA | Image |
IAccessible2 | ROLE_SYSTEM_GRAPHIC |
AT-SPI | ROLE_IMAGE |
AX AXRole AXSubrole AXRoleDescription | AXImage (null) image |
img
(alt
attribute is empty)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | presentation role |
MSAA | ROLE_SYSTEM_GRAPHIC with AccName set to empty string |
MSAA + UIA Express | ROLE_SYSTEM_GRAPHIC with AccName set to empty string |
UIA | Image with NameProperty set to the empty string |
IAccessible2 | Do not expose this object |
AT-SPI | Do note expose this object |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
input
(type
attribute in the Button state)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | button role |
MSAA | ROLE_SYSTEM_PUSHBUTTON |
MSAA + UIA Express | ROLE_SYSTEM_PUSHBUTTON |
UIA | Button |
IAccessible2 | ROLE_SYSTEM_PUSHBUTTON |
AT-SPI | ROLE_PUSH_BUTTON |
AX AXRole AXSubrole AXRoleDescription | AXButton (null) button |
input
(type
attribute in the Button state and parent is a menu)HTML4 | |
---|---|
HTML5 | |
WAI-ARIA | |
MSAA | |
MSAA + UIA Express | |
UIA | MenuItem |
IAccessible2 | |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription |
input
(type
attribute in the Color state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | |
MSAA | when implmented as a textbox, ROLE_SYSTEM_TEXT When implemented as a color picker, implement IUIAutomationSelectionPattern for the container and IUIAutomationSelectionItemPattern for each color choice |
MSAA + UIA Express | ?? |
UIA | If implemented as a textbox, Edit If implemented as a color picker, set localized control type string to Color Picker Implement IUIAutomationSelectionPattern for the container and IUIAutomationSelectionItemPattern for each color choice |
IAccessible2 | IA2_ROLE_COLOR_CHOOSER |
AT-SPI | ROLE_COLOR_CHOOSER |
AX AXRole AXSubrole AXRoleDescription | If implemented as a textbox, AXTextField (null) text field If implemented as a color picker, AXColorWell (null) color chooser |
input
(type
attribute in the Checkbox state)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | 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 |
MSAA | ROLE_SYSTEM_CHECKBUTTON |
MSAA + UIA Express | MSAA ROLE_SYSTEM_CHECKBUTTON |
UIA | Checkbox |
IAccessible2 | Object attribute checkable="true" |
AT-SPI | ROLE_CHECK_BOX + STATE_CHECKED |
AX AXRole AXSubrole AXRoleDescription | AXCheckBox (null) check box |
input
(type
attribute in the Checkbox state and parent is a menu)HTML4 | |
---|---|
HTML5 | |
WAI-ARIA | |
MSAA | |
MSAA + UIA Express | |
UIA | MenuItem with Toggle pattern |
IAccessible2 | |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription |
input
(type
attribute in the Date state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_DROPLIST |
MSAA + UIA Express | UIA Calendar |
UIA | Calendar |
IAccessible2 | IA2_ROLE_DATE_EDITOR |
AT-SPI | ROLE_CALENDAR (not supported by FF) |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the Date and Time state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_DROPLIST |
MSAA + UIA Express | UIA Calendar |
UIA | Calendar |
IAccessible2 | IA2_ROLE_DATE_EDITOR |
AT-SPI | ROLE_CALENDAR (not supported by FF) |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the Local Date and Time state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_DROPLIST |
MSAA + UIA Express | UIA Calendar |
UIA | Calendar |
IAccessible2 | IA2_ROLE_DATE_EDITOR |
AT-SPI | ROLE_CALENDAR (not supported by FF) |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the E-mail state with no suggestions source element)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | textbox role |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | MSAA ROLE_SYSTEM_TEXT or UIA Edit |
UIA | Edit |
IAccessible2 | IA2_STATE_SINGLE_LINE |
AT-SPI | ROLE_ENTRY + STATE_SINGLE_LINE |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the File Upload state)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_PUSHBUTTON. |
MSAA + UIA Express | ROLE_SYSTEM_PUSHBUTTON |
UIA | Button |
IAccessible2 | IA2_ROLE_FILE_CHOOSER |
AT-SPI | ROLE_PUSH_BUTTON + ROLE_FILE_CHOOSER |
AX AXRole AXSubrole AXRoleDescription | AXButton (null) button |
input
(type
attribute in the Hidden state)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | Do not expose this object |
MSAA + UIA Express | Do not expose this object |
UIA | Do not expose this object |
IAccessible2 | Do not expose this object |
AT-SPI | Do not expose this object |
AX AXRole AXSubrole AXRoleDescription | Do not expose this object |
input
(type
attribute in the Image Button state)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | button role |
MSAA | ROLE_SYSTEM_PUSHBUTTON. |
MSAA + UIA Express | ROLE_SYSTEM_PUSHBUTTON |
UIA | Button |
IAccessible2 | ROLE_SYSTEM_PUSHBUTTON. |
AT-SPI | ROLE_PUSH_BUTTON |
AX AXRole AXSubrole AXRoleDescription | AXButton (null) button |
input
(type
attribute in the Image Button state and parent is a menu)HTML4 | |
---|---|
HTML5 | |
WAI-ARIA | |
MSAA | |
MSAA + UIA Express | |
UIA | ?? does this define a command?? |
IAccessible2 | |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription |
input
(type
attribute in the Month state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_DROPLIST |
MSAA + UIA Express | UIA Calendar |
UIA | Calendar |
IAccessible2 | IA2_ROLE_DATE_EDITOR |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the Number state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | spinbutton role |
MSAA | ROLE_SYSTEM_SPINBUTTON |
MSAA + UIA Express | ROLE_SYSTEM_SPINBUTTON |
UIA | Spinner |
IAccessible2 | ROLE_SYSTEM_SPINBUTTON |
AT-SPI | ROLE_SPIN_BUTTON |
AX AXRole AXSubrole AXRoleDescription | AXTextField Note: stepper controls are assigned roles seperately from the AXTextField in Webkit. The stepper is not currently recognized by VoiceOver. |
input
(type
attribute in the Password state)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | textbox role |
MSAA | ROLE_SYSTEM_TEXT with STATE_SYSTEM_PROTECTED |
MSAA + UIA Express | MSAA ROLE_SYSTEM_TEXT with STATE_SYSTEM_PROTECTED or UIA Edit with UIA_IsPasswordPropertyId |
UIA | Edit with UIA_IsPasswordPropertyId |
IAccessible2 | IA2_STATE_SINGLE_LINE |
AT-SPI | ROLE_ENTRY + STATE_SINGLE_LINE |
AX AXRole AXSubrole AXRoleDescription | AXTextField AXSecureTextField secure text field |
input
(type
attribute in the Radio Button state)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | radio role, with the aria-checked state set to "true" if the element's checkedness is true, or "false" otherwise |
MSAA | ROLE_SYSTEM_RADIOBUTTON |
MSAA + UIA Express | ROLE_SYSTEM_RADIOBUTTON |
UIA | RadioButton |
IAccessible2 | ROLE_SYSTEM_RADIOBUTTON |
AT-SPI | ROLE_RADIO_BUTTON |
AX AXRole AXSubrole AXRoleDescription | AXRadioButton (null) radio button |
input
(type
attribute in the Radio Button state and parent is a menu)HTML4 | |
---|---|
HTML5 | |
WAI-ARIA | |
MSAA | |
MSAA + UIA Express | |
UIA | MenuItem with Toggle pattern |
IAccessible2 | |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription |
input
(type
attribute in the Range state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | slider role |
MSAA | ROLE_SYSTEM_SLIDER |
MSAA + UIA Express | ROLE_SYSTEM_SLIDER |
UIA | Slider |
IAccessible2 | ROLE_SYSTEM_SLIDER |
AT-SPI | ROLE_SLIDER |
AX AXRole AXSubrole AXRoleDescription | Slider: AXOrientation: AXHorizontalOrientation Thumb: |
input
(type
attribute in the Reset Button state)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | button role |
MSAA | ROLE_SYSTEM_PUSHBUTTON |
MSAA + UIA Express | ROLE_SYSTEM_PUSHBUTTON |
UIA | Button |
IAccessible2 | ROLE_SYSTEM_PUSHBUTTON |
AT-SPI | ROLE_PUSH_BUTTON |
AX AXRole AXSubrole AXRoleDescription | AXButton (null) button |
input
(type
attribute in the Search state with no suggestions source element)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | textbox role |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | MSAA ROLE_SYSTEM_TEXT or UIA Edit |
UIA | Edit |
IAccessible2 | IA2_STATE_SINGLE_LINE |
AT-SPI | ROLE_ENTRY + STATE_SINGLE_LINE |
AX AXRole AXSubrole AXRoleDescription | AXTextField AXSearchField search field |
input
(type
attribute in the Submit Button state)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | button role |
MSAA | ROLE_SYSTEM_PUSHBUTTON |
MSAA + UIA Express | ROLE_SYSTEM_PUSHBUTTON |
UIA | Button |
IAccessible2 | ROLE_SYSTEM_PUSHBUTTON |
AT-SPI | ROLE_PUSH_BUTTON |
AX AXRole AXSubrole AXRoleDescription | AXButton (null) button |
input
(type
attribute in the Telephone state with no suggestions source element)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | textbox role |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | MSAA ROLE_SYSTEM_TEXT or UIA Edit |
UIA | Edit |
IAccessible2 | IA2_STATE_SINGLE_LINE |
AT-SPI | ROLE_ENTRY + STATE_SINGLE_LINE |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the Text state with no suggestions source element)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | textbox role |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | MSAA ROLE_SYSTEM_TEXT or UIA Edit |
UIA | Edit |
IAccessible2 | IA2_STATE_SINGLE_LINE |
AT-SPI | ROLE_ENTRY + STATE_SINGLE_LINE |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | combobox role, with the aria-owns property set to the same value as the list attribute |
MSAA | ROLE_SYSTEM_COMBOBOX + STATE_SYSTEM_HASPOPUP |
MSAA + UIA Express | ROLE_SYSTEM_COMBOBOX + STATE_SYSTEM_HASPOPUP |
UIA | Combobox |
IAccessible2 | ROLE_SYSTEM_COMBOBOX + STATE_SYSTEM_HASPOPUP |
AT-SPI | ROLE_COMBO_BOX + STATE_EXPANDABLE + object attribute haspopup="true" |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the Time state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_SPINBUTTON |
MSAA + UIA Express | ROLE_SYSTEM_SPINBUTTON |
UIA | Spinner |
IAccessible2 | ROLE_SYSTEM_SPINBUTTON |
AT-SPI | ROLE_SPIN_BUTTON |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the URL state with no suggestions source element)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | textbox role |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | MSAA ROLE_SYSTEM_TEXT or UIA Edit |
UIA | Edit |
IAccessible2 | IA2_STATE_SINGLE_LINE |
AT-SPI | ROLE_ENTRY + STATE_SINGLE_LINE |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
input
(type
attribute in the Week state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_DROPLIST |
MSAA + UIA Express | UIA Calendar |
UIA | Calendar |
IAccessible2 | IA2_ROLE_DATE_EDITOR |
AT-SPI | ROLE_CALENDAR |
AX AXRole AXSubrole AXRoleDescription | AXTextField (null) text field |
ins
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | ROLE_SYSTEM_ TEXT |
UIA | ?text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
keygen
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | ROLE_SYSTEM_ TEXT |
UIA | ? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
keygen
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ? |
MSAA + UIA Express | |
UIA | ? |
IAccessible2 | ? |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
label
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | Use UIA guidance |
UIA | Text. 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. |
IAccessible2 | IA2_ROLE_LABEL |
AT-SPI | ROLE_LABEL |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
legend
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | ROLE_SYSTEM_TEXT SHOULD use UIA_LabeledByPropertyId (see UIA column) |
UIA | Text. The parent fieldset has a UIA_LabeledByPropertyId pointing to the UIA element for the legend element. |
IAccessible2 | IA2_ROLE_LABEL |
AT-SPI | ROLE_LABEL |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
li
(parent is an ol
or ul
)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | listitem role |
MSAA | ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY |
MSAA + UIA Express | |
UIA | ListItem |
IAccessible2 | ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_LISTITEM + do not expose STATE_EDITABLE |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
li
(parent is a menu
)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | listitem role |
MSAA | ROLE_SYSTEM_MENUITEM + STATE_SYSTEM_HASPOPUP |
MSAA + UIA Express | ROLE_SYSTEM_MENUITEM + STATE_SYSTEM_HASPOPUP |
UIA | MenuItem |
IAccessible2 | ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_LISTITEM + do not expose STATE_EDITABLE |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
link
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | link role |
MSAA | ROLE_SYSTEM_LINK. Also, apply special rule to expose STATE_LINKED to link and all its descendants. |
MSAA + UIA Express | Use either MSAA or UIA guidance |
UIA | HyperLink |
IAccessible2 | ROLE_SYSTEM_LINK. Also, apply special rule to expose STATE_LINKED to link and all its descendants. |
AT-SPI | ROLE_LINK |
AX AXRole AXSubrole AXRoleDescription | ? |
map
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | no mapping |
MSAA + UIA Express | no mapping |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX AXRole AXSubrole AXRoleDescription | no mapping |
mark
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | ROLE_SYSTEM_ TEXT |
UIA | Text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
menu
(type
attribute in the context menu state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | no role |
MSAA | ROLE_SYSTEM_MENUPOPUP |
MSAA + UIA Express | Use either MSAA or UIA guidance |
UIA | Menu |
IAccessible2 | see msaa |
AT-SPI | ROLE_MENU. These objects should not be exposed for a submenu if there is a parent menu item spawning the submenu |
AX AXRole AXSubrole AXRoleDescription | AXMenu (null) menu |
menu
(type
attribute in the list state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | menu role |
MSAA | ROLE_SYSTEM_MENUPOPUP |
MSAA + UIA Express | Use either MSAA or UIA guidance |
UIA | Menu |
IAccessible2 | see msaa |
AT-SPI | ROLE_MENU. These objects should not be exposed for a submenu if there is a parent menu item spawning the submenu |
AX AXRole AXSubrole AXRoleDescription | AXMenu (null) menu |
menu
(type
attribute in the toolbar state)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | toolbar role |
MSAA | ROLE_SYSTEM_TOOLBAR |
MSAA + UIA Express | Use either MSAA or UIA guidance |
UIA | ToolBar |
IAccessible2 | ROLE_SYSTEM_TOOLBAR |
AT-SPI | ROLE_TOOL_BAR |
AX AXRole AXSubrole AXRoleDescription | AXMenuBar (null) toolbar |
meta
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | no mapping |
MSAA + UIA Express | no mapping |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX AXRole AXSubrole AXRoleDescription | no mapping |
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ?? not sure this is right. maybe a number or value or something? |
MSAA + UIA Express | Use UIA guidance |
UIA | set Locliazed Control Type to "Meter" Implement Range Value control pattern with IsReadOnly property set to true |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
nav
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | navigation role |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | ?? |
UIA | ??text |
IAccessible2 | Object attribute role="navigation" |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription | AXGroup AXLandmarkNavigation navigation |
noscript
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | no mapping ?? grouping? |
MSAA + UIA Express | no mapping |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX AXRole AXSubrole AXRoleDescription | no mapping |
object
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | no role |
MSAA | ?? would pane or window work?? depends on format of data file. examples include document, client, graphic and unknown (tested using object test suite). |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | depends on format of data file. |
IAccessible2 | Refer to MSAA |
AT-SPI | ROLE_EMBEDDED |
AX AXRole AXSubrole AXRoleDescription | depends on format of data file. |
ol
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | list role |
MSAA | ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | List |
IAccessible2 | ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_LIST + do not expose STATE_EDITABLE |
AX AXRole AXSubrole AXRoleDescription | AXList AXContentList content list |
optgroup
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | group role |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Group |
IAccessible2 | ROLE_SYSTEM_GROUPING |
AT-SPI | ROLE_PANEL |
AX AXRole AXSubrole AXRoleDescription | AXMenuItem (null) menu item |
option
(in a list of options or represents a suggestion in a datalist
)HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | option role, with the aria-selected state set to "true" if the element's selectedness is true, or "false" otherwise. |
MSAA | ROLE_SYSTEM_LISTITEM |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | ListItem (note that SelectionItem pattern is required for ListItems) |
IAccessible2 | ROLE_SYSTEM_LISTITEM |
AT-SPI | ROLE_LIST_ITEM |
AX AXRole AXSubrole AXRoleDescription | AXMenuItem (null) menu item |
output
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | status role |
MSAA | ROLE_SYSTEM_STATUSBAR ??text read-only seems closer. this is a label that is calculated?? |
MSAA + UIA Express | Use UIA guidance |
UIA | Text. 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. |
IAccessible2 | IA2_ROLE_SECTION note: object attribute aria-live=polite IA2 controlled_by relation defined by label element @for attribute. |
AT-SPI | ROLE_SECTION note: object attribute aria-live=polite controlled_by relation defined by label element @for attribute. |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
p
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text |
IAccessible2 | IA2_ROLE_PARAGRAPH |
AT-SPI | ROLE_PARAGRAPH |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
param
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | no mapping |
MSAA + UIA Express | no mapping |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX AXRole AXSubrole AXRoleDescription | no mapping |
pre
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
progress
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | 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 |
MSAA | ROLE_SYSTEM_PROGRESSBAR + STATE_SYSTEM_READONLY |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | ProgressBar |
IAccessible2 | ROLE_SYSTEM_PROGRESSBAR + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_PROGRESS_BAR + do not expose EXTENDED_STATE_EDITABLE |
AX AXRole AXSubrole AXRoleDescription | AXProgressIndicator (null) progress indicator |
q
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group?? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
rp
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group?? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | ? |
rt
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXUnknown (null) unknown |
ruby
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group?? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
s
HTML4 | ? |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group?? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
samp
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
script
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | no mapping |
MSAA + UIA Express | no mapping |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX AXRole AXSubrole AXRoleDescription | no mapping |
section
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | region role |
MSAA | ROLE_SYSTEM_PANE ??really? that's what a frame is. I think grouping is closer?? |
MSAA + UIA Express | ?? |
UIA | ??Text or Group?? |
IAccessible2 | IA2_ROLE_SECTION |
AT-SPI | ROLE_PANEL |
AX AXRole AXSubrole AXRoleDescription | AXGroup AXDocumentRegion region |
select
(with a multiple
attribute)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | listbox role, with the aria-multiselectable property set to "true" |
MSAA | ROLE_SYSTEM_LIST + |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | list with ISelectionProvider::CanSelectMultiple set to true |
IAccessible2 | ROLE_SYSTEM_LIST + STATE_SYSTEM_MULTISELECTABLE + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_LIST + STATE_MULTISELECTABLE |
AX AXRole AXSubrole AXRoleDescription | AXList (null) list |
select
(with NO multiple
attribute)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | listbox role, with the aria-multiselectable property set to "false" |
MSAA | ROLE_SYSTEM_COMBOBOX + STATE_SYSTEM_HASPOPUP. |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Combobox |
IAccessible2 | ROLE_SYSTEM_COMBOBOX + STATE_SYSTEM_HASPOPUP. |
AT-SPI | ROLE_COMBO_BOX + STATE_EXPANDABLE + object attribute haspopup="true" |
AX AXRole AXSubrole AXRoleDescription | AXPopUpButton (null) pop up button |
small
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group?? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
source
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | Do not expose this object |
MSAA + UIA Express | Do note expose this object |
UIA | Do not expose this object ??does it populate anything in the parent vidoe or audio object ?? |
IAccessible2 | Do not expose this object |
AT-SPI | Do not expose this object |
AX AXRole AXSubrole AXRoleDescription | Do not expose this object |
span
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Group |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
strong
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group?? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
style
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | Do not expose this object |
MSAA + UIA Express | Do note expose this object |
UIA | Do not expose this object |
IAccessible2 | Do not expose this object |
AT-SPI | Do not expose this object |
AX AXRole AXSubrole AXRoleDescription | Do not expose this object |
sub
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text ??group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
summary
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_PUSHBUTTON ??has popup?? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Button with ExpandCollapse pattern |
IAccessible2 | ROLE_SYSTEM_PUSHBUTTON |
AT-SPI | ROLE_PUSHBUTTON + |
AX AXRole AXSubrole AXRoleDescription | AXDisclosureTriangle |
sup
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT ??group?? |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | ??text or group?? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
table
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_TABLE |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | DataGrid with Table pattern |
IAccessible2 | Use IAccessibleTable2 interface |
AT-SPI | ROLE_TABLE |
AX AXRole AXSubrole AXRoleDescription | AXTable (null) table |
tbody
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Group |
IAccessible2 | ROLE_SYSTEM_GROUPING |
AT-SPI | |
AX AXRole AXSubrole AXRoleDescription | ? |
td
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_CELL |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | DataItem |
IAccessible2 | ROLE_SYSTEM_CELL |
AT-SPI | ROLE_TABLE_CELL |
AX AXRole AXSubrole AXRoleDescription | AXCell (null) cell |
textarea
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | textbox role, with the aria-multiline property set to "true" |
MSAA | ROLE_SYSTEM_TEXT |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Text or Edit? |
IAccessible2 | state: IA2_STATE_MULTI_LINE |
AT-SPI | ROLE_ENTRY |
AX AXRole AXSubrole AXRoleDescription | AXTextArea (null) text entry area |
tfoot
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | Group |
IAccessible2 | ROLE_SYSTEM_GROUPING |
AT-SPI | ROLE_PANEL |
AX AXRole AXSubrole AXRoleDescription | ? |
th
(is neither a column header nor a row header)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_CELL |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | DataItem |
IAccessible2 | ROLE_SYSTEM_CELL |
AT-SPI | ROLE_TABLE_CELL |
AX AXRole AXSubrole AXRoleDescription | AXCell (null) cell |
th
(is a column header)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_COLUMNHEADER |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | header + OrientationType_Vertical ??seems like it should be HeaderItem. ARIA UAIG has DataItem?? |
IAccessible2 | |
AT-SPI | ROLE_COLUMN_HEADER |
AX AXRole AXSubrole AXRoleDescription | AXCell (null) cell Parent table also implements AXColumnHeaderUIElements property that is a list of pointers to the column header cells. Parent table also implements AXHeader property that is a pointer to the row or group containing the columnheader cells. |
th
(is a row header)HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ROWHEADER |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | header + OrientationType_Horizontal ?seems like it should be HeaderItem. ARIA UAIG has DataItem?? |
IAccessible2 | |
AT-SPI | ROLE_ROW_HEADER |
AX AXRole AXSubrole AXRoleDescription | AXCell (null) cell Parent table also implements AXRowHeaderUIElements property that is a list of pointers to the row header cells |
thead
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_GROUPING |
MSAA + UIA Express | ? |
UIA | Header |
IAccessible2 | ROLE_SYSTEM_GROUPING |
AT-SPI | ROLE_PANEL |
AX AXRole AXSubrole AXRoleDescription | ? |
time
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | |
UIA | ? |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
title
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | no mapping |
MSAA + UIA Express | no mapping |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX AXRole AXSubrole AXRoleDescription | no mapping |
tr
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ROW |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | DataItem Also requires SelectionItem pattern |
IAccessible2 | ROLE_SYSTEM_ROW |
AT-SPI | ROLE_LIST_ITEM |
AX AXRole AXSubrole AXRoleDescription | AXRow AXTableRow row |
ul
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | list role |
MSAA | ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY |
MSAA + UIA Express | Use MSAA or UIA guidance |
UIA | List |
IAccessible2 | ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY |
AT-SPI | ROLE_LIST + do not expose STATE_EDITABLE |
AX AXRole AXSubrole AXRoleDescription | AXList AXContentList content list |
var
HTML4 | yes |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ROLE_SYSTEM_ TEXT |
MSAA + UIA Express | Use MSAA or UIA guidance? |
UIA | Text note: not group, because it would usually only have a wo |
IAccessible2 | ROLE_SYSTEM_ TEXT |
AT-SPI | ROLE_TEXT |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
video
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | ? |
MSAA + UIA Express | ? |
UIA | ? |
IAccessible2 | ? |
AT-SPI | ? |
AX AXRole AXSubrole AXRoleDescription | AXGroup Note: UI controls within the video element exposed as AXToolbar. |
wbr
HTML4 | no |
---|---|
HTML5 | yes |
WAI-ARIA | none |
MSAA | none |
MSAA + UIA Express | none |
UIA | none |
IAccessible2 | none |
AT-SPI | none |
AX AXRole AXSubrole AXRoleDescription | AXGroup (null) group |
accesskey
[HTML elements
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | none |
MSAA | accKeyboardShortcut |
UIA | AcceleratorKey |
IAccessible2 | accKeyboardShortcut |
AT-SPI | ? |
AX | AXAccessKey |
Comments |
alt
[area
; img
; input
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | none |
MSAA | accName |
UIA | Name |
IAccessible2 | |
AT-SPI | RELATION_LABEL_FOR |
AX | AXDescription |
Comments |
autocomplete
[form
; input
]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | Object attribute autocomplete Expose the IA2_STATE_SUPPORTS_ |
AT-SPI | Object attribute autocomplete Expose the STATE_SUPPORTS_AUTOCOMPLETION equivalent state |
AX | ? |
Comments |
autofocus
[button
; input
; keygen
; select
; textarea
]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
autoplay
[audio
; video
]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
checked
(if present) [command
; input
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | aria-checked (state)="true" (state) |
MSAA | Set the STATE_SYSTEM_CHECKED state |
UIA | Expose as ToggleState property in Toggle Control Pattern |
IAccessible2 | Expose object attribute checkable="true" |
AT-SPI | Expose object attribute checkable="true" |
AX | AXValue="1" |
Comments |
checked
(if absent) [command
; input
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | aria-checked (state)="false" |
MSAA | Clear the STATE_SYSTEM_CHECKED state |
UIA | Expose as ToggleState property in Toggle Control Pattern. |
IAccessible2 | Expose object attribute checkable="true" |
AT-SPI | Expose object attribute checkable="true" |
AX | AXValue="0" |
Comments |
cite
[blockquote
; del
; ins
; q
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXURL |
Comments |
cols
[textarea
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXRangeForLine |
Comments |
colspan
[td
; th
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXColumnIndexRange pos=column index; len=colspan value |
Comments |
contenteditable
[HTML elements]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
contextmenu
[HTML elements]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | aria-haspopup ="true" |
MSAA | Expose as STATE_SYSTEM_HASPOPUP. If on a push button, change the role to ROLE_SYSTEM_BUTTONMENU. |
UIA | Expose state of the pop-up activities in the ExpandCollapseState property in the ExpandCollapse Control Pattern. |
IAccessible2 | Expose as STATE_SYSTEM_HASPOPUP. If on a push button, change the role to ROLE_SYSTEM_BUTTONMENU. |
AT-SPI | Object attribute haspopup="true" |
AX | Expose AXShowMenu and AXPress actions |
Comments |
controls
[audio
; video
]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | Controls exposed as AXToolbar |
Comments |
datetime
[del
; ins
]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
datetime
[time
]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
dir
[HTML elements]HTML4 | ? |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
dirname
[input
; textarea
]HTML4 | ? |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
disabled
[button
; command
; fieldset
; input
; keygen
; optgroup
; option
; select
; textarea
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXEnabled="false" |
Comments |
draggable
[HTML elements]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
dropzone
[HTML elements]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
headers
[td
; th
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | Expose via AXColumnHeaderUIElements and AXRowHeaderUIElements |
Comments |
hidden
[HTML elements]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | Not exposed in AX API |
Comments |
high
[meter
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
href
[link
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
hreflang
[a
; area
; link
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
kind
[track
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
label
[command
; menu
; optgroup
; option
; track
]HTML4 | ? |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
lang
[HTML elements]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
longdesc
[img
,
frame
,
iframe
]HTML4 | yes |
---|---|
HTML5 | no |
WAI-ARIA | no |
MSAA | accdescription (Internet Explorer only) |
UIA | no mapping |
IAccessible2 | no mapping |
AT-SPI | no mapping |
AX | no mapping |
Comments | IE 8+ populates the accdescription with the value of the longdesc attribute. This is brittle as it is overwritten when aria-describedby is used. |
low
[meter
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
max
[input
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
max
[meter
; progress
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXMaxValue |
Comments |
maxlength
[input
; textarea
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
media
[a
; area
; link
; source
; style
]HTML4 | ? |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
min
[input
]HTML4 | |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | ? |
Comments |
min
[meter
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXMinValue |
Comments |
multiple
[input
; select
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
open
[details
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | aria-expanded ="true | false" |
MSAA | STATE_SYSTEM_ EXPANDED STATE_SYSTEM_COLLAPSED |
UIA | ExpandCollapsePattern |
IAccessible2 | STATE_SYSTEM_EXPANDED STATE_SYSTEM_COLLAPSED |
AT-SPI | STATE_COLLAPSED STATE_EXPANDED |
AX | boolean AXExpanded |
Comments | Set properties on the summary element. |
optimum
[meter
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
placeholder
[input
; textarea
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXPlaceholderValue |
Comments |
poster
[video
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
radiogroup
[command
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
readonly
[input
; textarea
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXEnabled="false" |
Comments |
rel
[a
; area
; link
]HTML4 | |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
required
[input
; select
; textarea
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | aria-required |
MSAA | no mapping |
UIA | Expose as IsrequiredForForm property. |
IAccessible2 | IA2_STATE_REQUIRED |
AT-SPI | Expose STATE_REQUIRED |
AX | AXRequired="true" |
Comments | ? |
reversed
[ol
]HTML4 | ? |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
rows
[textarea
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
rowspan
[td
; th
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXRowIndexRange pos=row index; len=rowspan value |
Comments |
spellcheck
[HTML elements]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
scope
[th
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
size
[input
; select
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
span
[col
; colgroup
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
start
[ol
]HTML4 | |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
summary
[table
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
title
[HTML elements]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXHelp and AXTitle |
Comments |
title
[command
]HTML4 | no |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
title
[link
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
title
[link
; style
]HTML4 | yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
type
[a
; area
; link
]HTML4 | |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
type
[button
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
type
[button
; input
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
type
[command
]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
type
[embed
; object
; script
; source
; style
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
type
[menu
]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
value
[button
; option
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
value
[input
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXValue |
Comments |
value
[li
]HTML4 | |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
value
[meter
; progress
]HTML4 | No |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | AXValue |
Comments |
value
[param
]HTML4 | Yes |
---|---|
HTML5 | Yes |
WAI-ARIA | |
MSAA | |
UIA | |
IAccessible2 | |
AT-SPI | |
AX | |
Comments |
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"
or 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.
Otherwise, the accessible name is derived from the following sources; non-empty placeholder
attribute, non-empty associated label
element or a non-empty title
attribute.
The accessible description is derived from the following sources; non-empty placeholder
attribute or a non-empty title
attribute.
placeholder
attribute, use the content of the placeholder
attribute as the control's accessible name.placeholder
attribute and a non-empty associated label
element, use the content of the associated label
element as the control's accessible name. Use the content of the placeholder
attribute as the control's accessible description.placeholder
attribute and a non-empty title
attribute, use the content of the title
attribute as the control's accessible name. Use the content of the placeholder
attribute as the control's accessible description.placeholder
attribute and a non-empty title
attribute and associated non-empty label
element, use the content of the label
element as the control's accessible name. Use the content of the title
attribute concatenated with the content of the placeholder
attribute as the control's accessible description.placeholder
attribute or a non-empty associated label
element or a non-empty title
attribute, the control's accessible name is an empty string and the control's accessible description is an empty string. 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.
value
attribute or a non-empty title
attribute the control's accessible name is an empty string and the control's accessible description is an empty string.value
attribute, but not a non-empty title
attribute, use the content of value
attribute as the control's accessible name.title
attribute, but not a non-empty value
attribute, use the content of title
attribute as the control's accessible name.value
attribute, and a non-empty title
attribute, use the content of value
attribute as the control's accessible name. Use the content of the title
attribute as the control's accessible description.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.
alt
attribute or a non-empty title
attribute the control's accessible name is an empty string and the control's accessible description is an empty string.alt
attribute, but not a non-empty title
attribute, use the content of alt
attribute as the control's accessible name.title
attribute, but not a non-empty alt
attribute, use the content of title
attribute as the control's accessible name.alt
attribute, and a non-empty title
attribute, use the content of alt
attribute as the control's accessible name. Use the content of the title
attribute as the control's accessible description.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.
label
element or a non-empty title
attribute the control's accessible name is an empty string and the control's accessible description is an empty string.label
element, but not a non-empty title
attribute, use the content of the associated label
element as the control's accessible name.title
attribute, but not a non-empty associated label
element, use the content of the title
attribute as the control's accessible name.label
element and a non-empty title
attribute, use the content of the associated label
element as the control's accessible name. Use the content of the title
attribute as the control's 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.
aria-labelledby
aria-label
figcaption
subtreetitle
attributearia-describedby
title
attribute if it wasn't used as the accessible name. to do
to do
summary
and details
elementsto do
table
elementIf 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.
aria-labelledby
aria-label
caption
elementtitle
attributesummary
attribute.to do
summary
and details
elementsThe 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.
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 false
. When the details
element content is shown, on the summary
element (AXDisclosureTriangle
), set theAXExpanded
property to true
. 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 algorithm is a heuristic to determine if table is most likely used for layout, it is currently implemented in Firefox only.
to do
No normative references.
No informative references.
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.