Abstract

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

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

Status of This Document

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

This is a First Public Working Draft of HTML Accessibility API Mappings 1.0 by the HTML Accessibility Taskforce, a joint task force of the Protocols and Formats Working Group and the HTML Working Group. It defines how HTML language features map to accessibility APIs, and addresses both native HTML features and ARIA additions. It extends Core Accessibility API Mappings 1.1 and Accessible Name and Description: Computation and API Mappings 1.1, and is part of a suite of similar technology-specific Accessibility API Mappings specifications.

The mappings defined in this specification were previously published as HTML to Platform Accessibility APIs Implementation Guide [html-aapi], which supported WAI-ARIA 1.0 and HTML 5.0. Since the time that document was created, work on WAI-ARIA 1.1 and HTML 5.1 have led to a larger set of related Accessibility API mappings and the need to express the mappings for various technologies in a consistent manner. This specification therefore replaces the role of HTML to Platform Accessibility APIs Implementation Guide, and that draft specification will be retired.

Feedback on any aspect of the specification is accepted. For this publication, the HTML Accessibility Task Force particularly seeks feedback on the following questions:

To comment, send email to public-html-comments@w3.org (comment archive) or file an issue in W3C Bugzilla. Comments are requested by 8 May 2015. In-progress updates to the document may be viewed in the publicly visible editors' draft.

Publication as a First Public 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 (HTML Working Group, Protocols and Formats Working Group) made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 1 August 2014 W3C Process Document.

Table of Contents

1. Introduction

This section is non-normative.

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

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

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

1.1 Accessibility APIs

Accessibility APIs covered by this document are:

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

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

2. Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MUST and SHOULD are to be interpreted as described in [RFC2119].

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

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

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

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

3. Important Terms

While some terms are defined in place, the following definitions are used throughout this document.

Accessibility API

Operating systems and other platforms provide a set of interfaces that expose information about objects and events to assistive technologies. Assistive technologies use these interfaces to get information about and interact with those widgets. Examples of accessibility APIs are Microsoft Active Accessibility [MSAA], Microsoft User Interface Automation [UI-AUTOMATION], MSAA with UIA Express [UIA-EXPRESS], the Mac OS X Accessibility Protocol [AXAPI], the Linux/Unix Accessibility Toolkit [ATK] and Assistive Technology Service Provider Interface [AT-SPI], and IAccessible2 [IAccessible2].

Accessibility Subtree

An accessible object in the accessibility tree and its descendants in that tree. It does not include objects which have relationships other than parent-child in that tree. For example, it does not include objects linked via aria-flowto unless those objects are also descendants in the accessibility tree.

Accessibility Tree

Tree of accessible objects that represents the structure of the user interface (UI). Each node in the accessibility tree represents an element in the UI as exposed through the accessibility API; for example, a push button, a check box, or container.

Accessible Description

An accessible description provides additional information, related to an interface element, that complements the accessible name. The accessible description might or might not be visually perceivable.

Accessible Name

The accessible name is the name of a user interface element. Each platform accessibility API provides the accessible name property. The value of the accessible name may be derived from a visible (e.g., the visible text on a button) or invisible (e.g., the text alternative that describes an icon) property of the user interface element. See related accessible description.

A simple use for the accessible name property may be illustrated by an "OK" button. The text "OK" is the accessible name. When the button receives focus, assistive technologies may concatenate the platform's role description with the accessible name. For example, a screen reader may speak "push-button OK" or "OK button". The order of concatenation and specifics of the role description (e.g., "button", "push-button", "clickable button") are determined by platform accessibility APIs or assistive technologies.

Accessible object

A node in the accessibility tree of a platform accessibility API. Accessible objects expose various states, properties, and events for use by assistive technologies. In the context of markup languages (e.g., HTML and SVG) in general, and of WAI-ARIA in particular, markup elements and their attributes are represented as accessible objects.

Activation behavior

The action taken when an event, typically initiated by users through an input device, causes an element to fulfill a defined role. The role may be defined for that element by the host language, or by author-defined variables, or both. The role for any given element may be a generic action, or may be unique to that element. For example, the activation behavior of an HTML or SVG <a> element shall be to cause the user agent to traverse the link specified in the href attribute, with the further optional parameter of specifying the browsing context for the traversal (such as the current window or tab, a named window, or a new window); the activation behavior of an HTML <input> element with the type attribute value submit shall be to send the values of the form elements to an author-defined IRI by the author-defined HTTP method.

Assistive Technologies

Hardware and/or software that:

  • relies on services provided by a user agent to retrieve and render Web content
  • works with a user agent or web content itself through the use of APIs, and
  • provides services beyond those offered by the user agent to facilitate user interaction with web content by people with disabilities

This definition may differ from that used in other documents.

Examples of assistive technologies that are important in the context of this document include the following:

  • screen magnifiers, which are used to enlarge and improve the visual readability of rendered text and images;
  • screen readers, which are most-often used to convey information through synthesized speech or a refreshable Braille display;
  • text-to-speech software, which is used to convert text into synthetic speech;
  • speech recognition software, which is used to allow spoken control and dictation;
  • alternate input technologies (including head pointers, on-screen keyboards, single switches, and sip/puff devices), which are used to simulate the keyboard;
  • alternate pointing devices, which are used to simulate mouse pointing and clicking.
Attribute

In this specification, attribute is used as it is in markup languages. Attributes are structural features added to elements to provide information about the states and properties of the object represented by the element.

Class

A set of instance objects that share similar characteristics.

Desktop focus event

Event from/to the host operating system via the accessibility API, notifying of a change of input focus.

Element

In this specification, element is used as it is in markup languages. Elements are the structural elements in markup language that contains the data profile for objects.

Event

A programmatic message used to communicate discrete changes in the state of an object to other objects in a computational system. User input to a web page is commonly mediated through abstract events that describe the interaction and can provide notice of changes to the state of a document object. In some programming languages, events are more commonly known as notifications.

Expose

Translated to platform-specific accessibility APIs as defined in the WAI-ARIA User Agent Implementation Guide. [WAI-ARIA-IMPLEMENTATION]

Hidden

Indicates that the element is not visible or perceivable to any user. An element is considered hidden if it or any one of its ancestor elements is not rendered or explicitly hidden.

Informative

Content provided for information purposes and not required for conformance. Content required for conformance is referred to as normative.

Keyboard Accessible

Accessible to the user using a keyboard or assistive technologies that mimic keyboard input, such as a sip and puff tube. References in this document relate to WCAG 2 Guideline 2.1; "Make all functionality available from a keyboard" [WCAG20].

Landmark

A type of region on a page to which the user may want quick access. Content in such a region is different from that of other regions on the page and relevant to a specific user purpose, such as navigating, searching, perusing the primary content, etc.

Live Region

Live regions are perceivable regions of a web page that are typically updated as a result of an external event when user focus may be elsewhere. These regions are not always updated as result of a user interaction. This practice has become commonplace with the growing use of Ajax. Examples of live regions include a chat log, stock ticker, or a sport scoring section that updates periodically to reflect game statistics. Since these asynchronous areas are expected to update outside the user's area of focus, assistive technologies such as screen readers have either been unaware of their existence or unable to process them for the user. WAI-ARIA has provided a collection of properties that allow the author to identify these live regions and how to process them: aria-live, aria-relevant, aria-atomic, and aria-busy. Pre-defined live region roles are listed in the Choosing Between Special Case Live Regions ([WAI-ARIA-PRACTICES], Section 5.3).

Primary Content Element

An implementing host language's primary content element, such as the body element in HTML.

Managed State

Accessibility API state that is controlled by the user agent, such as focus and selection. These are contrasted with "unmanaged states" that are typically controlled by the author. Nevertheless, authors can override some managed states, such as aria-posinset and aria-setsize. Many managed states have corresponding CSS pseudo-classes, such as :focus, and pseudo-elements, such as ::selection, that are also updated by the user agent.

Nemeth Braille

The Nemeth Braille Code for Mathematics is a braille code for encoding mathematical and scientific notation. See Nemeth Braille on Wikipedia.

Node

Basic type of object in the DOM tree or accessibility tree. DOM nodes are further specified as Element or Text nodes, among other types. The nodes of an accessibility tree are accessible objects.

Normative

Required for conformance. By contrast, content identified as informative or "non-normative" is not required for conformance.

Object

In the context of user interfaces, an item in the perceptual user experience, represented in markup languages by one or more elements, and rendered by user agents.

In the context of programming, the instantiation of one or more classes and interfaces which define the general characteristics of similar objects. An object in an accessibility API may represent one or more DOM objects. Accessibility APIs have defined interfaces that are distinct from DOM interfaces.
Ontology

A description of the characteristics of classes and how they relate to each other.

Operable

Usable by users in ways they can control. References in this document relate to WCAG 2 Principle 2; content must be operable [WCAG20]. See Keyboard Accessible.

Owned Element

An 'owned element' is any DOM descendant of the element, any element specified as a child via aria-owns, or any DOM descendant of the owned child.

Owning Element

An 'owning element' is any DOM ancestor of the element, or any element with an aria-owns attribute which references the ID of the element.

Perceivable

Presentable to users in ways they can sense. References in this document relate to WCAG 2 Principle 1; content must be perceivable [WCAG20].

Property

Attributes that are essential to the nature of a given object, or that represent a data value associated with the object. A change of a property may significantly impact the meaning or presentation of an object. Certain properties (for example, aria-multiline) are less likely to change than states, but note that the frequency of change difference is not a rule. A few properties, such as aria-activedescendant, aria-valuenow, and aria-valuetext are expected to change often. See clarification of states versus properties.

Relationship

A connection between two distinct things. Relationships may be of various types to indicate which object labels another, controls another, etc.

Role

Main indicator of type. This semantic association allows tools to present and support interaction with the object in a manner that is consistent with user expectations about other objects of that type.

Root WAI-ARIA node

The primary element containing non-metadata content. In many languages, this is the document element but in HTML, it is the <body> or <frameset>.

Semantics

The meaning of something as understood by a human, defined in a way that computers can process a representation of an object, such as elements and attributes, and reliably represent the object in a way that various humans will achieve a mutually consistent understanding of the object.

State

A state is a dynamic property expressing characteristics of an object that may change in response to user action or automated processes. States do not affect the essential nature of the object, but represent data associated with the object or user interaction possibilities. See clarification of states versus properties.

Sub-document

Any document created from a <frame>, <iframe> or similar mechanism. A sub-document may contain a document, an application or any widget such as a calendar pulled in from another server. In the accessible tree there are two accessible objects for this situation—one represents the <frame>/<iframe> element in the parent document, which parents a single accessible object child representing the spawned document contents.

Target Element

An element specified in a WAI-ARIA relation. For example, in <div aria-controls=”elem1”>, where “elem1” is the ID for the target element.

Taxonomy

A hierarchical definition of how the characteristics of various classes relate to each other, in which classes inherit the properties of superclasses in the hierarchy. A taxonomy can comprise part of the formal definition of an ontology.

Text node

Type of DOM node that represents the textual content of an attribute or an element. A Text node has no child nodes.

Understandable

Presentable to users in ways they can construct an appropriate meaning. References in this document relate to WCAG 2 Principle 3; Information and the operation of user interface must be understandable [WCAG20].

User Agent

Any software that retrieves, renders and facilitates end user interaction with Web content. This definition may differ from that used in other documents.

Valid IDREF

A reference to a target element in the same document that has a matching ID

Widget

Discrete user interface object with which the user can interact. Widgets range from simple objects that have one value or operation (e.g., check boxes and menu items), to complex objects that contain many managed sub-objects (e.g., trees and grids).

4. Mapping HTML to Accessibility APIs

4.1 General Rules for Exposing WAI-ARIA Semantics

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

4.2 Conflicts Between Native Markup Semantics and WAI-ARIA

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

4.3 Exposing HTML Features That Do Not Directly Map to Accessibility APIs

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

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

4.3.1 Other Accessibility Implementations

4.3.1.1 Use of MSAA VARIANT by Some User Agents

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

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

4.3.1.2 Use of the DOM by Some Assistive Technologies

to do

4.4 HTML Element Role Mappings

Notes:

  • HTML elements with default WAI-ARIA role semantics must be mapped to platform accessibility APIs according to those WAI-ARIA roles' mappings as defined in the Core Accessibility API Mappings [CORE-AAM] specification.
  • A '?' in a cell indicates the data has yet to be provided.
  • "Not mapped" (Not Applicable) means the element does not need to be exposed via an accessibility API. This is usually because the element is not displayed as part of the user interface.
  • User agents should return a user-presentable, localized string value for the Mac Accessibility AXRoleDescription.
  • All elements having an accessible object in IAccessible2 mapping are supposed to implement IAccessible, IAccessible2 and IAccessible2_2 interfaces.
Mappings of HTML elements to platform accessibility APIs: ARIA, MSAA + UIA Express, MSAA + IAccessible2, UIA, ATK, and AX
Element WAI-ARIA MSAA + UIA Express MSAA + IAccessible2 UIA ATK AX
a (represents a hyperlink) link role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
a (no href attribute) No corresponding role
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Role: IA2_ROLE_TEXT_FRAME
Interfaces: IAccessibleHyperlink; IAccessibleText2; IAccessibleHypertext2;
Control Type: Text
Role: ATK_ROLE_STATIC
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
abbr No corresponding role
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_STATIC
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 No corresponding role
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) link role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
area (no href attribute) No corresponding role
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Role: IA2_ROLE_SHAPE
Control Type: Text
Role: ATK_ROLE_STATIC
Not mapped
article article role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
aside complementary role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
audio No corresponding role
Role: ROLE_SYSTEM_GROUPING
Role: ROLE_SYSTEM_GROUPING
Control Type: Group
Role: ATK_ROLE_AUDIO
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the audio element exposed as AXToolbar.
b No corresponding role
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 No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
bdi No corresponding role ?
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 No corresponding role
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 No corresponding role
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Role: IA2_ROLE_SECTION
Interfaces: IAccessibleText2; IAccessibleHypertext2;
Control Type: Group
Role: ATK_ROLE_BLOCK_QUOTE
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
body document role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
br No corresponding role
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 button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
canvas No corresponding role
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 No corresponding role
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 No corresponding role
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 No corresponding role
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 No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
colgroup No corresponding role
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 menuitemcheckbox role, with the aria-checked state set to "true" if the command's Checked State facet is true, and "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Command: an element that defines a command, whose Type facet is "command", and that is a descendant of a menu element whose type attribute is in the toolbar state menuitem role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Command: an element that defines a command, whose Type facet is "radio", and that is a descendant of a menu element whose type attribute is in the toolbar state menuitemradio role, with the aria-checked state set to "true" if the command's Checked State facet is true, and "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
data
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
datalist listbox role, with the aria-multiselectable property set to "false"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
dd No corresponding role
Role: ROLE_SYSTEM_TEXT
Role: IA2_ROLE_PARAGRAPH
Interfaces: IAccessibleText2; IAccessibleHypertext2;
?
Role: ATK_ROLE_DESCRIPTION_VALUE
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXDefinition
AXRoleDescription: "definition"
del No corresponding role
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 None
Role: ROLE_SYSTEM_GROUPING
Role: ROLE_SYSTEM_GROUPING
Control Type: Group ??window??
Role: ATK_ROLE_PANEL
?
dfn No corresponding role
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 No corresponding role
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 No corresponding 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_DESCRIPTION_LIST
AXRole: AXList
AXSubrole: AXDefinitionList
AXRoleDescription: "definition list"
dt No corresponding 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_DESCRIPTION_TERM
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: AXTerm
AXRoleDescription: "term"
em No corresponding role
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 corresponding role
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 No corresponding role
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 corresponding role
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 corresponding role
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
Role: ATK_ROLE_PANEL
Object attributes: xml-roles:figure
Name: related figcaption content
Relations: ATK_RELATION_LABELLED_BY with child figcaption element
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "figure"
form form role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
h1, h2, h3, h4, h5, h6 heading role, with the aria-level property set to the element's outline depth
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
head No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
header No corresponding role
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 separator role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
html No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
i No corresponding role
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 No corresponding role
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 img role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
img (alt attribute is empty) presentation role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Button state) button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Button state and parent is a menu) menuitem role
Role: ROLE_SYSTEM_MENUITEM
Role: ROLE_SYSTEM_MENUITEM
Control Type: MenuItem
Role: ATK_ROLE_MENU_ITEM
If the option's parent has a group role, then maps to AXMenuButton

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

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

input (type attribute in the Color state) ?
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) 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
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Checkbox state and parent is a menu) 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
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Date state) No corresponding role
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 corresponding role
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) textbox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the File Upload state) No corresponding role
Role: ROLE_SYSTEM_PUSHBUTTON
Role: IA2_ROLE_TEXT_FRAME
Children: A button and label (implementation specific)
Control Type: Button
Role: ATK_ROLE_STATIC
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) No corresponding role
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) button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Image Button state and parent is a menu) menuitem role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Month state) No corresponding role
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) spinbutton role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Password state) textbox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Radio Button state) radio role, with the aria-checked state set to "true" if the element's checkedness is true, or "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Radio Button state and parent is a menu) menuitemradio role, with the aria-checked state set to "true" if the element's checkedness is true, or "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Range state) slider role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Reset Button state) button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Submit Button state) button role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Telephone state with no suggestions source element) textbox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Text state with no suggestions source element) textbox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element) combobox role, with the aria-owns property set to the same value as the list attribute
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Time state) No corresponding role
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) textbox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
input (type attribute in the Week state) No corresponding role
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 No corresponding role
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 No corresponding role
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 listbox role, with the aria-multiselectable property set to "false"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
label No corresponding role
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 No corresponding role
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) listitem role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
li (parent is a menu) listitem role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
main main role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
map No corresponding role
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_STATIC
Not mapped
mark No corresponding role
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 math role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
menu (type attribute in the popup menu state) menu role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
menu (type attribute in the toolbar state) toolbar role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
menuitem (type attribute in the Checkbox state) menuitemcheckbox role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
menuitem (type attribute in the Command state) menuitem role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
menuitem (type attribute in the Radio state) menuitemradio role, with the aria-checked state set to "true" if the checked attribute is present, and "false" otherwise
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
meta No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
meter No corresponding role
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 navigation role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
noscript No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
object No corresponding role ?? would pane or window work??

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

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 list role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
optgroup group role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
option (in a list of options or represents a suggestion in a datalist) option role, with the aria-selected state set to "true" if the element's selectedness is true, or "false" otherwise.
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
output status role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
p No corresponding role
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 No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
picture No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
pre No corresponding role
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_SECTION
Used styles are mapped into text attributes on the accessible
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
progress 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
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
q No corresponding role
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_STATIC
Interfaces: AtkText; AtkHypertext
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
rp No corresponding role
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 corresponding role
Role: ROLE_SYSTEM_TEXT
Use MSAA or UIA guidance
Doesn't have an accessible.
Control Type: Text
Doesn't have an accessible.
?
ruby No corresponding role
Role: ROLE_SYSTEM_TEXT ??group??
Use MSAA or UIA guidance
Role: IA2_ROLE_TEXT_FRAME
Control Type: Text ??Group??
Role: ATK_ROLE_STATIC
?
s No corresponding role
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 No corresponding role
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 No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
section region role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
select (with a multiple attribute or size attribute having value greater than 1) listbox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
select (with NO multiple attribute and NO size attribute having value greater than 1) combobox role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
small No corresponding role
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 corresponding role
Do not expose this object
Not mapped
Do not expose this object
Not mapped
Do not expose this object
span No corresponding role
Role: ROLE_SYSTEM_GROUPING
Use MSAA or UIA guidance
Not mapped
Control Type: Group
Not mapped
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
strong No corresponding role
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 No corresponding role
Do not expose this object
Not mapped
Do not expose this object
Not mapped
Do not expose this object
sub No corresponding role
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 corresponding role
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 No corresponding role
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 corresponding role
Role: ROLE_SYSTEM_GRAPHIC
Role: ROLE_SYSTEM_GRAPHIC
Control Type: Image
Role: ATK_ROLE_IMAGE
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
table No corresponding role
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 No corresponding role
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 No corresponding role
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 ? ?
Not mapped
?
Not mapped
?
textarea textbox role, with the aria-multiline property set to "true"
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
tfoot No corresponding role
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) No corresponding role
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) No corresponding role
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) No corresponding role
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 No corresponding role
Role: ROLE_SYSTEM_GROUPING
Doesn't have an accessible
Control Type: Header
Doesn't have an accessible
Not mapped
time No corresponding role
Role: ROLE_SYSTEM_TEXT
Role: IA2_ROLE_TEXT_FRAME

Object attributes: xml-roles:figure

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

Interfaces: IAccessibleText2; IAccessibleHypertext2;

?

Role: ATK_ROLE_STATIC

Object attributes: xml-roles:figure

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

Interfaces: AtkText; AtkHypertext

 

AXRole: AXGroup
AXSubrole: ?
AXRoleDescription: ?
title No corresponding role
Not mapped
Not mapped
Not mapped
Not mapped
Not mapped
tr No corresponding role
Role: ROLE_SYSTEM_ROW
Use MSAA or UIA guidance
Role: ROLE_SYSTEM_ROW
Control Type: DataItem
Control Pattern: SelectionItem
Role: ATK_ROLE_TABLE_ROW
AXRole: AXRow
AXSubrole: AXTableRow
AXRoleDescription: "row"
track ? ?
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 list role
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
Use WAI-ARIA mapping
var No corresponding role
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 corresponding role ?
Role: ROLE_SYSTEM_GROUPING
?
Role: ATK_ROLE_VIDEO
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
Note: UI controls within the video element exposed as AXToolbar.
wbr No corresponding role
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"

4.5 HTML Attribute State and Property Mappings

Notes:

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) WAI-ARIA MSAA + UIA Express MSAA + IAccessible2 UIA ATK AX Comments
abbr th Not mapped  
Object attributes: "abbr" until child abbr element is provided
 
Object attributes: "abbr" until child abbr element is provided
   
accept input Not mapped  
Not mapped
 
Not mapped
   
accept-charset form Not mapped  
Not mapped
 
Not mapped
   
accesskey HTML elements Not mapped accKeyboardShortcut
a key binding accessible by accKeyboardShortcut and IAccessibleAction::keyBinding
Properties: AcceleratorKey
atk_action_get_keybinding
AXAccessKey: <value>  
action form Not mapped  
Not mapped
 
Not mapped
   
allowfullscreen iframe  
Not mapped
 
Not mapped
   
alt area; img; input 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 Not mapped  
Not mapped
 
Not mapped
   
autocomplete "on|off" form

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

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 Not mapped - aria-flowto? N/A
Not mapped
N/A
Not mapped
N/A  
autoplay audio; video Not mapped N/A
Not mapped
N/A
Not mapped
N/A  
border table Not mapped  
Not mapped
 
Not mapped
   
challenge keygen Not mapped  
Not mapped
 
Not mapped
   
charset meta Not mapped  
Not mapped
 
Not mapped
   
charset script Not mapped  
Not mapped
 
Not mapped
   
checked (if present) menuitem; input 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 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    
Not mapped
 
Not mapped
AXURL: <value>  
class HTML elements Not mapped  
Not mapped
 
Not mapped
   
cols textarea    
Not mapped
 
Not mapped
AXRangeForLine: <value>  
colspan td; th    
exposed via IAccessibleTableCell::columnExtent
 
exposed via atk_table_get_column_extent_at
AXColumnIndexRange:
loc=<column index>
len=<colspan value>
 
command menuitem Not mapped  
Not mapped
 
Not mapped
   
content meta Not mapped  
Not mapped
 
Not mapped
   
contenteditable HTML elements    
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 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    
Not mapped
 
Not mapped
Controls exposed as AXToolbar  
coords area 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 Not mapped  
Not mapped
 
Not mapped
   
data object Not mapped  
Not mapped
 
Not mapped
   
datetime del; ins    
Not mapped
 
Not mapped
?  
datetime time    
Not mapped
 
Not mapped
?  
default track Not mapped  
Not mapped
 
Not mapped
   
defer script Not mapped  
Not mapped
 
Not mapped
   
dir HTML elements    
Exposed as "writing-mode" text attribute on the text container.
 
Exposed as "writing-mode" text attribute on the text container.
?  
dirname input; textarea    
Not mapped
 
Not mapped
?  
disabled button; menuitem; fieldset; input; keygen; optgroup; option; select; textarea    
States: STATE_SYSTEM_UNAVAILABLE
 
States: No interactive states like ATK_STATE_FOCUSABLE
AXEnabled: NO  
download a; area    
Not mapped
 
Not mapped
?  
draggable HTML elements    
Object attributes: draggable:true
 
Object attributes: draggable:true
?  
dropzone HTML elements    
Not mapped
 
Not mapped
?  
enctype form Not mapped  
Not mapped
 
Not mapped
   
for label 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 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 Not mapped  
Not mapped
 
Not mapped
   
formaction button; input Not mapped  
Not mapped
 
Not mapped
   
formenctype button; input Not mapped  
Not mapped
 
Not mapped
   
formmethod button; input Not mapped  
Not mapped
 
Not mapped
   
formnovalidate button; input Not mapped  
Not mapped
 
Not mapped
   
formtarget button; input Not mapped  
Not mapped
 
Not mapped
   
headers td; th    
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 Not mapped  
Defines an accessible's height (IAccessible::accLocation)
 
Defines an accessible's height (atk_component_get_size)
   
hidden HTML elements    
Makes the element not accessible
 
Makes the element not accessible
Not exposed in AX API  
high meter    
Not mapped
 
Not mapped
?  
href a; area    
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    
Not mapped
 
Not mapped
   
http-equiv meta Not mapped  
Not mapped
 
Not mapped
   
icon menuitem Not mapped  
Not mapped
 
Not mapped
   
id HTML elements Not mapped  
Not mapped
 
Not mapped
   
ismap img Not mapped  
Not mapped
 
Not mapped
   
keytype keygen Not mapped  
Not mapped
 
Not mapped
   
kind track    
Not mapped
 
Not mapped
   
label menuitem; menu; optgroup; option; track    
Associates the accessible name
 
Associates the accessible name
   
lang HTML elements    
Exposed as "language" text attribute on the text container
 
Exposed as "language" text attribute on the text container
   
list input 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 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 Not mapped  
Not mapped
 
Not mapped
   
low meter    
Not mapped
 
Not mapped
   
manifest html Not mapped  
Not mapped
 
Not mapped
   
max input    
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    
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    
Not mapped
 
Not mapped
   
media link; source; style    
Not mapped
 
Not mapped
   
mediagroup audio; video Not mapped  
Not mapped
 
Not mapped
   
method form Not mapped  
Not mapped
 
Not mapped
   
min input    
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    
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 aria-multiselectable property set to "true"  
Not mapped
 
Not mapped
   
multiple select    
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 Not mapped  
Not mapped
 
Not mapped
   
name button; fieldset; input; keygen; output; select; textarea Not mapped  
Not mapped
 
Not mapped
   
name form Not mapped  
Not mapped
 
Not mapped
   
name iframe; object Not mapped  
Not mapped
 
Not mapped
   
name map Not mapped  
Not mapped
 
Not mapped
   
name meta Not mapped  
Not mapped
 
Not mapped
   
name param Not mapped  
Not mapped
 
Not mapped
   
novalidate form Not mapped  
Not mapped
 
Not mapped
   
open details 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 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    
Not mapped
 
Not mapped
   
pattern input    
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    
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    
Not mapped
 
Not mapped
   
preload audio; video    
Not mapped
 
Not mapped
   
radiogroup menuitem    
Not mapped
 
Not mapped
   
readonly input; textarea   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    
Not mapped
 
Not mapped
   
required input; select; textarea 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    
Changes the numbering of underlying list item accessibles
 
Changes the numbering of underlying list item accessibles
   
rows textarea    
Not mapped
 
Not mapped
   
rowspan td; th    
exposed via IAccessibleTableCell::rowExtent
 
Exposed via atk_table_get_row_extent_at
AXRowIndexRange:
loc=<row index>
len=<rowspan value>
 
sandbox iframe    
Not mapped
 
Not mapped
   
spellcheck HTML elements    
Mapped to "invalid" text attribute on the text container
 
Mapped to "invalid" text attribute on the text container
   
scope th    
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    
Not mapped
 
Not mapped
   
seamless iframe    
Not mapped
 
Not mapped
   
selected option    
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    
Not mapped
 
Not mapped
   
size input; select    
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    
Not mapped
 
Not mapped
   
span col; colgroup    
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    
Object attributes: src on img only
 
Object attributes: src on img only
   
srcdoc iframe    
Not mapped
 
Not mapped
   
srclang track    
Not mapped
 
Not mapped
   
start ol    
Changes the numbering of underlying list item accessibles
 
Changes the numbering of underlying list item accessibles
   
step input    
Not mapped
 
Exposed as atk_value_get_minimum_increment if the element implements the AtkValue interface
   
style HTML elements Not mapped  
Refer to CSS accessibility mapping
 
Refer to CSS accessibility mapping
   
tabindex HTML elements 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    
Not mapped
 
Not mapped
   
target base    
Not mapped
 
Not mapped
   
target form    
Not mapped
 
Not mapped
   
title HTML elements    
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    
Associates the accessible name
 
Associates the accessible name
AXHelp: <value>  
title menuitem    
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    
Not mapped
 
Not mapped
Not mapped
 
translate HTML elements    
Not mapped
 
Not mapped
   
type button    
submit type may be a default button in the form
 
submit type may be a default button in the form
   
type button; input    
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    
Defines the accessible role and states, refer to type="command"
 
Defines the accessible role and states: type="command"
   
type embed; object; script; source; style    
Not mapped
 
Not mapped
   
type menu    
Not mapped
 
Not mapped
   
typemustmatch object    
Not mapped
 
Not mapped
   
usemap img; object    
Responsible for image map creation, refer to img element
 
Responsible for image map creation, refer to img element
   
value button; option    
Not mapped
 
Not mapped
   
value input    
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    
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    
Exposed as IAccessibleValue::currentValue
 
Exposed as atk_value_get_current_value
AXValue: <value>  
value param    
Not mapped
 
Not mapped
   
width canvas; embed; iframe; img; input; object; video    
Defines an accessible's width (IAccessible::accLocation)
 
Defines an accessible's width (atk_component_get_size)
AXSize: w=n  
wrap textarea    
Not mapped
 
Not mapped
   

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

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

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

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

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

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

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

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

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

If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.

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

5.3 input type="image"

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

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

input type="image" Accessible Name Calculation

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

input type="image" Accessible Description Calculation

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

5.4 button Element

If the button element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.

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.

5.5 Other Form Elements

If the control has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.

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

5.6 summary Element

If the summary element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.

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

5.7 figure and figcaption Elements

If the figure element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.

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

5.8 img Element

If the img element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.

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

5.9 table Element

If the table element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.

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

5.10 a Element

If the a element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.

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

5.11 Text Level Elements Not listed Elsewhere

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

If the element has an aria-label or an aria-labelledby attribute the accessible name is to be calculated using the algorithm defined in Accessible Name and Description: Computation and API Mappings 1.1.

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

6. Accessible Feature Implementation Examples

This section is non-normative.

6.1 summary and details Elements

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

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

6.2 The figure and figcaption Elements

to do

A. Acknowledgments

This section is non-normative.

The following people contributed to the development of this document.

A.1 Participants active in the PFWG at the time of publication

A.2 Other ARIA contributors, commenters, and previously active PFWG participants

A.3 Enabling funders

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

B. References

B.1 Normative references

[ACCNAME-AAM]
Joseph Scheuhammer; Michael Cooper; Andi Snow-Weaver; Aaron Leventhal et al. Accessible Name and Description: Computation and API Mappings 1.1. W3C Working Draft. URL: http://www.w3.org/TR/accname-aam-1.1/
[CORE-AAM]
Joseph Scheuhammer; Michael Cooper; Andi Snow-Weaver; Aaron Leventhal et al. Core Accessibility API Mappings 1.1. W3C Working Draft. URL: http://www.w3.org/TR/core-aam-1.1/
[HTML5]
Ian Hickson; Robin Berjon; Steve Faulkner; Travis Leithead; Erika Doyle Navara; Edward O'Connor; Silvia Pfeiffer. HTML5. 28 October 2014. W3C Recommendation. URL: http://www.w3.org/TR/html5/
[HTML51]
Ian Hickson; Robin Berjon; Steve Faulkner; Travis Leithead; Erika Doyle Navara; Edward O'Connor; Tab Atkins Jr.; Simon Pieters; Yoav Weiss; Marcos Caceres; Mathew Marquis. HTML 5.1. 23 March 2015. W3C Working Draft. URL: http://www.w3.org/TR/html51/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[WAI-ARIA]
James Craig; Michael Cooper; Shane McCarron et al. Accessible Rich Internet Applications (WAI-ARIA) 1.1. W3C Working Draft. URL: http://www.w3.org/TR/wai-aria-1.1/

B.2 Informative references

[AT-SPI]
Assistive Technology Service Provider Interface. URL: https://developer.gnome.org/libatspi/stable/
[ATK]
ATK - Accessibility Toolkit. URL: https://developer.gnome.org/atk/stable/
[AXAPI]
The Mac OS X Accessibility Protocol Mac OS 10.10. URL: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/index.html
[HTML-AAM]
Steve Faulkner; Jason Kiss; Cynthia Shelly; Alexander Surkov et al. HTML Accessibility API Mappings 1.0. W3C Working Draft. URL: http://www.w3.org/TR/html-aam-1.0/
[IAccessible2]
IAccessible2. URL: http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2
[MSAA]
Microsoft Active Accessibility (MSAA) 2.0. URL: https://msdn.microsoft.com/en-us/library/ms697707.aspx
[SVG-AAM]
Richard Schwerdtfeger et al. SVG Accessibility API Mappings 1.0. W3C Working Draft. URL: http://www.w3.org/TR/svg-aam-1.0/
[UI-AUTOMATION]
UI Automation. URL: https://msdn.microsoft.com/en-us/library/ee684009%28v=vs.85%29.aspx
[UIA-EXPRESS]
The IAccessibleEx Interface. URL: https://msdn.microsoft.com/en-us/library/windows/desktop/dd561898%28v=vs.85%29.aspx
[WAI-ARIA-IMPLEMENTATION]
Joseph Scheuhammer; Michael Cooper. WAI-ARIA 1.0 User Agent Implementation Guide. 20 March 2014. W3C Recommendation. URL: http://www.w3.org/TR/wai-aria-implementation/
[WAI-ARIA-PRACTICES]
Joseph Scheuhammer; Michael Cooper. WAI-ARIA 1.0 Authoring Practices. 7 March 2013. W3C Working Draft. URL: http://www.w3.org/TR/wai-aria-practices/
[WCAG20]
Ben Caldwell; Michael Cooper; Loretta Guarino Reid; Gregg Vanderheiden et al. Web Content Accessibility Guidelines (WCAG) 2.0. 11 December 2008. W3C Recommendation. URL: http://www.w3.org/TR/WCAG20/
[html-aapi]
Steve Faulkner; Cynthia Shelly; Jason Kiss; Alexander Surkov. HTML to Platform Accessibility APIs Implementation Guide. 1 October 2013. W3C Working Draft. URL: http://www.w3.org/TR/html-aapi/