1.
Introduction
This section is non-normative.
The goals of this specification include:
expanding the accessibility information that may be supplied by the author;
requiring that supporting host languages provide full keyboard support that may be implemented in a device-independent way, for example, by telephones, handheld devices, e-book readers, and televisions;
improving the accessibility of dynamic content generated by scripts; and
providing for interoperability with
assistive technologies
WAI-ARIA
is a technical specification that provides a framework to improve the accessibility and interoperability of web content and applications. This document is primarily for developers creating custom widgets and other web application components. Please see the
WAI-ARIA
Overview
for links to related documents for other audiences, such as
WAI-ARIA
Authoring Practices
wai-aria-practices-1.1
] that introduces developers to the accessibility problems that
WAI-ARIA
is intended to solve, the fundamental concepts, and the technical approach of
WAI-ARIA
This draft currently handles two aspects of
roles
: user interface functionality and structural
relationships
. For more information and use cases, see [
wai-aria-practices-1.1
] for the use of roles in making interactive content accessible.
The role
taxonomy
is designed in part to support the common roles found in platform
APIs
. Reference to roles found in this taxonomy by dynamic web content may be used to support interoperability with assistive technologies.
The schema to support this standard has been designed to be extensible so that custom roles can be created by extending base roles. This allows
user agents
to support at least the base role, and user agents that support the custom role can provide enhanced access. Note that much of this could be formalized in [
xmlschema-2
]. However, being able to define similarities between roles, such as
baseConcepts
and more descriptive definitions, would not be available in
XSD
WAI-ARIA
1.1 is a member of the
WAI-ARIA
1.1 suite
that defines how to expose semantics of
WAI-ARIA
and other web content languages to
APIs
1.1
Rich Internet Application Accessibility
The domain of web accessibility defines how to make web content usable by persons with disabilities. Persons with certain types of disabilities use
assistive technologies
AT
) to interact with content. Assistive technologies can transform the presentation of content into a format more suitable to the user, and can allow the user to interact in different ways. For example, the user may need to, or choose to, interact with a slider widget via arrow keys, instead of dragging and dropping with a mouse. In order to accomplish this effectively, the software needs to understand the
semantics
of the content. Semantics is the science of meaning; in this case, used to assign roles, states, and properties that apply to user interface and content elements as a human would understand. For instance, if a paragraph is semantically identified as such, assistive technologies can interact with it as a unit separable from the rest of the content, knowing the exact boundaries of that paragraph. An adjustable range slider or collapsible list (a.k.a. a tree
widget
) are more complex examples, in which various parts of the widget have semantics that need to be properly identified for assistive technologies to support effective interaction.
New technologies often overlook semantics required for accessibility, and new authoring practices often misuse the intended semantics of those technologies.
Elements
that have one defined meaning in the language are used with a different meaning intended to be understood by the user.
For example, web application developers create collapsible tree widgets in
HTML
using
CSS
and JavaScript even though
HTML
has no semantic
tree
element. To a non-disabled user, it may look and act like a collapsible tree widget, but without appropriate semantics, the tree widget may not be
perceivable
to, or
operable
by, a person with a disability because assistive technologies may not recognize the role. Similarly, web application developers create interactive button widgets in
SVG
using JavaScript even though
SVG
has no semantic
button
element. To a non-disabled user, it may look and act like a button widget, but without appropriate semantics, the button widget may not be
perceivable
to, or
operable
by, a person with a disability because assistive technologies may not recognize the role.
The incorporation of
WAI-ARIA
is a way for an author to provide proper semantics for custom widgets to make these widgets accessible, usable, and interoperable with assistive technologies. This specification identifies the types of widgets and structures that are commonly recognized by accessibility products, by providing an
ontology
of corresponding
roles
that can be attached to content. This allows elements with a given role to be understood as a particular widget or structural type regardless of any semantics inherited from the implementing host language. Roles are a common property of platform
APIs
which assistive technologies use to provide the user with effective presentation and interaction.
This role
taxonomy
includes interaction
widgets
and elements denoting document structure. The role taxonomy describes inheritance and details the
attributes
each role supports. Information about mapping of roles to accessibility
APIs
is provided by the
Core Accessibility
API
Mappings 1.1
core-aam-1.1
].
Roles are element types and will not change with time or user actions. Role information is used by assistive technologies, through interaction with the user agent, to provide normal processing of the specified element type.
States and properties are used to declare important attributes of an element that affect and describe interaction. They enable the
user agent
and operating system to properly handle the element even when the attributes are dynamically changed by client-side scripts. For example, alternative input and output technology, such as screen readers and speech dictation software, need to be able to recognize and effectively manipulate and communicate various interaction states (e.g., disabled, checked) to the user.
While it is possible for assistive technologies to access these properties directly through the
Document Object Model
dom
], the preferred mechanism is for the user agent to map the states and properties to the accessibility
API
of the operating system. See the
Core Accessibility
API
Mappings 1.1
core-aam-1.1
] and the
Accessible Name and Description: Computation and
API
Mappings 1.1
accname-aam-1.1
] for details.
Figure 1.0 illustrates the relationship between user agents (e.g., browsers), accessibility
APIs
, and assistive technologies. It describes the "contract" provided by the user agent to assistive technologies, which includes typical accessibility information found in the accessibility
API
for many of our accessible platforms for GUIs (role, state, selection,
event
notification,
relationship
information, and descriptions). The
DOM
, usually
HTML
, acts as the data model and view in a typical model-view-controller relationship, and JavaScript acts as the controller by manipulating the style and content of the displayed data. The user agent conveys relevant information to the operating system's accessibility
API
, which can be used by any assistive technologies, such as screen readers.
Figure 1: The contract model with accessibility
APIs
For more information see
WAI-ARIA
Authoring Practices
wai-aria-practices-1.1
] for the use of roles in making interactive content accessible.
In addition to the prose documentation, the role taxonomy is provided in
Web Ontology Language (
OWL
owl-features
], which is expressed in
Resource Description Framework (
RDF
rdf-concepts
]. Tools can use these to validate the implementation of roles in a given content document. For example, instances of some roles are expected to be children of a specific parent role. Also, some roles may support a specific
state
or
property
that another role does not support.
Note
The use of
RDF
OWL
as a formal representation of roles may be used to support future extensibility. Standard
RDF
OWL
mechanisms can be used to define new roles that inherit from the roles defined in this specification. The mechanism to define and use role extensions in an interoperable manner, however, is not defined by this specification, and
RDF
OWL
processing is not essential to interoperable implementation of this specification. A future version of
WAI-ARIA
is expected to define how to extend roles.
Users of alternate input devices need
keyboard accessible
content. The new semantics, when combined with the recommended keyboard interactions provided in
WAI-ARIA
Authoring Practices
wai-aria-practices-1.1
], will allow alternate input solutions to facilitate command and control via an alternate input solution.
WAI-ARIA
introduces navigational
landmarks
through its taxonomy and the
XHTML
role landmarks, which can help persons with dexterity and vision impairments by providing for improved keyboard navigation.
WAI-ARIA
may also be used to assist persons with cognitive learning disabilities. The additional semantics allow authors to restructure and substitute alternative content as needed.
Assistive technologies
need the ability to support alternative inputs by getting and setting the current value of
widget
states and properties. Assistive technologies also need to determine what
objects
are selected and manage widgets that allow multiple selections, such as list boxes and grids.
Speech-based command and control systems can benefit from
WAI-ARIA
semantics like the
role
attribute to assist in conveying audio information to the user. For example, upon encountering an element with a role of
with child elements of role
menuitem
each containing text content representing a different flavor, a speech system might state to the user, "Select one of three choices: chocolate, strawberry, or vanilla."
WAI-ARIA
is intended to be used as a supplement for native language semantics, not a replacement. When the host language provides a feature that provides equivalent accessibility to the
WAI-ARIA
feature, use the host language feature.
WAI-ARIA
should only be used in cases where the host language lacks the needed
role
state
, and
property
indicators. Use a host language feature that is as similar as possible to the
WAI-ARIA
feature, then refine the meaning by adding
WAI-ARIA
. For instance, a multi-selectable grid could be implemented as a table, and then
WAI-ARIA
used to clarify that it is an interactive grid, not just a static data table. This allows for the best possible fallback for user agents that do not support
WAI-ARIA
and preserves the integrity of the host language semantics.
1.2
Target Audience
This specification defines the basic model for
WAI-ARIA
, including roles, states, properties, and values. It impacts several audiences:
User agents
that process content containing
WAI-ARIA
features;
Assistive technologies
that present content in special ways to user with disabilities;
Authors who create content;
Authoring tools that help authors create conforming content; and
Conformance checkers that verify appropriate use of
WAI-ARIA
Each conformance requirement indicates the audience to which it applies.
Although this specification is applicable to the above audiences, it is not specifically targeted to, nor is it intended to be the sole source of information for, any of these audiences. The following documents provide important supporting information:
1.3
User Agent Support
WAI-ARIA
relies on user agent support for its features in two ways:
Aside from using
WAI-ARIA
markup to improve what is exposed to accessibility
APIs
, user agents behave as they would natively. Assistive technologies react to the extra information in the accessibility
API
as they already do for the same information on non-web content. User agents that are not assistive technologies, however, need do nothing beyond providing appropriate updates to the accessibility
API
The
WAI-ARIA
specification neither requires nor forbids user agents from enhancing native presentation and interaction behaviors on the basis of
WAI-ARIA
markup. Mainstream user agents might expose
WAI-ARIA
navigational landmarks (for example, as a dialog box or through a keyboard command) with the intention to facilitate navigation for all users. User agents are encouraged to maximize their usefulness to users, including users without disabilities.
WAI-ARIA
is intended to provide missing semantics so that the intent of the author may be conveyed to assistive technologies. Generally, authors using
WAI-ARIA
will provide the appropriate presentation and interaction features. Over time, host languages may add
WAI-ARIA
equivalents, such as new form controls, that are implemented as standard accessible user interface controls by the user agent. This allows authors to use them instead of custom
WAI-ARIA
enabled user interface components. In this case the user agent would support the native host language feature. Developers of host languages that implement
WAI-ARIA
are advised to continue supporting
WAI-ARIA
semantics when they do not adversely conflict with implicit host language semantics, as
WAI-ARIA
semantics more clearly reflect the intent of the author if the host language features are inadequate to meet the author's needs.
1.4
Co-Evolution of
WAI-ARIA
and Host Languages
WAI-ARIA
is intended to augment semantics in supporting languages like [
html5
] and [
SVG2
], or to be used as an accessibility enhancement technology in other markup-based languages that do not explicitly include support for ARIA. It clarifies semantics to assistive technologies when authors create new types of objects, via style and script, that are not yet directly supported by the language of the page, because the invention of new types of objects is faster than standardized support for them appears in web languages.
It is not appropriate to create objects with style and script when the host language provides a semantic element for that type of object. While
WAI-ARIA
can improve the accessibility of these objects, accessibility is best provided by allowing the user agent to handle the object natively. For example, it's better to use an
h1
element in
HTML
than to use the
heading
role on a
div
element.
It is expected that, over time, host languages will evolve to provide semantics for objects that currently can only be declared with
WAI-ARIA
. This is natural and desirable, as one goal of
WAI-ARIA
is to help stimulate the emergence of more semantic and accessible markup. When native semantics for a given feature become available, it is appropriate for authors to use the native feature and stop using
WAI-ARIA
for that feature. Legacy content may continue to use
WAI-ARIA
, however, so the need for user agents to support
WAI-ARIA
remains.
While specific features of
WAI-ARIA
may lose importance over time, the general possibility of
WAI-ARIA
to add semantics to web pages is expected to be a persistent need. Host languages may not implement all the semantics
WAI-ARIA
provides, and various host languages may implement different subsets of the features. New types of objects are continually being developed, and one goal of
WAI-ARIA
is to provide a way to make such objects accessible, because web authoring practices often advance faster than host language standards. In this way,
WAI-ARIA
and host languages both evolve together but at different rates.
Some host languages exist to create semantics for features other than the user interface. For example,
SVG
expresses the semantics behind production of graphical objects, not of user interface components that those objects may represent; XForms provides semantics for form controls and does not provide wider user interface features. Host languages such as these might, by design, not provide native semantics that map to
WAI-ARIA
features. In these cases,
WAI-ARIA
could be adopted as a long-term approach to add semantic information to user interface components.
1.5
Authoring Practices
The accessibility of interactive content cannot be confirmed by static checks alone. Developers of interactive content should test for device-independent access to
widgets
and applications, and should verify accessibility
API
access to all content and changes during user interaction.
1.6
Assistive Technologies
Programmatic access to accessibility semantics is essential for assistive technologies. Most assistive technologies interact with user agents, like other applications, through a recognized accessibility
API
. Perceivable objects in the user interface are exposed to assistive technologies as accessible objects, defined by the accessibility
API
interfaces. To do this properly, accessibility information – role, states, properties as well as contextual information – needs to be accurately conveyed to the assistive technologies through the accessibility
API
. When a state change occurs, the user agent provides the appropriate event notification to the accessibility
API
. Contextual information, in many host languages like
HTML
, can be determined from the
DOM
itself as it provides a contextual tree hierarchy.
While some assistive technologies interact with these accessibility
APIs
, others may access the content directly from the
DOM
. These technologies can restructure, simplify, style, or reflow the content to help a different set of users. Common use cases for these types of adaptations may be the aging population, persons with cognitive impairments, or persons in environments that interfere with use of their tools. For example, the availability of regional navigational landmarks may allow for a mobile device adaptation that shows only portions of the content at any one time based on its semantics. This could reduce the amount of information the user needs to process at any one time. In other situations it may be appropriate to replace a custom user interface control with something that is easier to navigate with a keyboard, or touch screen device.
2.
Using
WAI-ARIA
This section is non-normative.
Complex web applications become inaccessible when
assistive technologies
cannot determine the
semantics
behind portions of a document or when the user is unable to effectively navigate to all parts of it in a usable way (see
WAI-ARIA
Authoring Practices
wai-aria-practices-1.1
]).
WAI-ARIA
divides the semantics into
roles
(the type defining a user interface element) and
states
and
properties
supported by the roles.
Authors need to associate
elements
in the document to a
WAI-ARIA
role and the appropriate states and properties (aria-*
attributes
) during its life-cycle, unless the elements already have the appropriate
implicit
WAI-ARIA
semantics
for states and properties. In these instances the equivalent host language states and properties take precedence to avoid a conflict while the role attribute will take precedence over the implicit role of the host language element.
2.1
WAI-ARIA
Roles
WAI-ARIA
role
is set on an
element
using a
role
attribute
, similar to the
role
attribute defined in
Role Attribute
role-attribute
].
Example 1
li
role
"menuitem"
Open file…
li
The roles defined in this specification include a collection of
document landmarks
and the
WAI-ARIA
role taxonomy
The roles in this
taxonomy
and their expected behaviors are modeled using
RDF
OWL
owl-features
]. Features of the role taxonomy provide the following information for each role:
an informative description of the role;
hierarchical information about related roles (e.g., a
directory
is a type of
list
);
context of the role (e.g., a
listitem
is contained inside a
list
);
references to related concepts in other specifications;
use of
OWL
to provide a type hierarchy allowing for
semantic
inheritance (similar to a
class
hierarchy); and
supported
states
and
properties
for each role (e.g., a
checkbox
supports being checked via
aria-checked
).
Attaching a role gives
assistive technologies
information about how to handle each element.
2.2
WAI-ARIA
States and Properties
WAI-ARIA
provides a collection of accessibility
states
and
properties
which are used to support platform
APIs
on various operating system platforms.
Assistive technologies
may access this information through an exposed
user agent
DOM
or through a mapping to the platform accessibility
API
. When combined with
roles
, the user agent can supply the assistive technologies with user interface information to convey to the user at any time. Changes in states or properties will result in a notification to assistive technologies, which could alert the user that a change has occurred.
In the following example, a list item (
html:li
) has been used to create a checkable menu item, and JavaScript
events
will capture mouse and keyboard events to toggle the value of
aria-checked
. A role is used to make the behavior of this simple
widget
known to the user agent.
Attributes
that change with user actions (such as
aria-checked
) are defined in the
states and properties
section.
Example 2
li
role
"menuitemcheckbox"
aria-checked
"true"
Sort by Last Modified
li
Some accessibility states, called
managed states
, are controlled by the user agent. Examples of managed state include keyboard focus and selection. Managed states often have corresponding
CSS
pseudo-classes (such as
:focus
and
::selection
) to define style changes. In contrast, the states in this specification are typically controlled by the author and are called
unmanaged states.
Some states are managed by the user agent, such as
aria-posinset
and
aria-setsize
, but the author can override them if the
DOM
is incomplete and would cause the user agent calculation to be incorrect. User agents map both managed and unmanaged states to the platform accessibility
APIs
Most modern user agents support
CSS
attribute selectors
([
css3-selectors
]), and can allow the author to create
UI
changes based on
WAI-ARIA
attribute information, reducing the amount of scripts necessary to achieve equivalent functionality. In the following example, a
CSS
selector is used to determine whether or not the text is bold and an image of a check mark is shown, based on the value of the
aria-checked
attribute.
Example 3
[aria-checked="true"] { font-weight: bold; }
[aria-checked="true"]::before { background-image: url(checked.gif); }
If
CSS
is not used to toggle the visual representation of the check mark, the author could include additional markup and scripts to manage an image that represents whether or not the
menuitemcheckbox
is checked.
Example 4

  • "menuitemcheckbox"
    aria-checked=
    "true"
    img
    src
    "checked.gif"
    role
    "presentation"
    alt
    ""
    Sort by Last Modified
    li
    2.3
    Managing Focus
    An
    application
    should always have an
    element
    with focus when in use, as applications require users to have a place to provide user input. Authors are advised to
    not
    destroy the element with focus or scroll it off-screen unless through user intervention. All interactive
    objects
    should be focusable. All parts of composite interactive controls need to be focusable or have a documented alternative method to achieve their function, such as a keyboard shortcut. Authors are advised to maintain an obvious, discoverable way, either through tabbing or other standard navigation techniques, for keyboard users to move the focus to any interactive element. See
    User Agent Accessibility Guidelines, Guideline 9
    ([
    UAAG10
    ], Guideline 9).
    When using standard
    HTML
    and basic
    WAI-ARIA
    widgets
    , application developers can simply manipulate the tab order or use a script to create keyboard shortcuts to elements in the document. Use of more complex widgets requires the author to manage focus within them.
    SVG
    Tiny provides a similar navigation "ring" mechanism that by default follows document order and which should be implemented using system dependent input facilities (the TAB key on most desktop computers).
    SVG
    authors may place elements in the navigation order by manipulating the
    focusable
    attribute and they may dynamically
    specify the navigation order
    by modifying elements'
    navigation attributes
    WAI-ARIA
    includes a number of "managing container" widgets, also known as "composite" widgets. When appropriate, the container is responsible for tracking the last descendant that was active (the default is usually the first item in the container). It is essential that a container maintain a usable and consistent strategy when focus leaves a container and is then later refocused. While there may be exceptions, it is recommended that when a previously focused container is refocused, the active descendant be the same element as the active descendant when the container was last focused. Exceptions include cases where the contents of a container widget have changed, and widgets like a menubar where the user expects to always return to the first item when focus leaves the menu bar. For example, if the second item of a tree group was the active descendant when the user tabbed out of the tree group, then the second item of the tree group remains the active descendant when the tree group gets focus again. The user may also activate the container by clicking on one of the descendants within it.
    When the container or its active descendant has focus, the user may navigate through the container by pressing additional keys, such as the arrow keys, to change the currently active descendant. Any additional press of the main navigation key (generally the
    TAB
    key) will move out of the container to the next widget.
    For example, a
    grid
    may be used as a spreadsheet with thousands of
    gridcell
    elements, all of which may not be present in the document at one time. This requires focus to be managed by the container using the
    aria-activedescendant
    attribute
    on the managing container element, or by the container managing the
    tabindex
    of its child elements and setting focus on the appropriate child.
    Content authors are required to manage focus on the following container roles:
    More information on managing focus can be found in the
    Developing a Keyboard Interface
    section of the
    WAI-ARIA
    Authoring Practices
    wai-aria-practices-1.1
    ].
    3.
    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
    MAY
    MUST
    MUST NOT
    SHOULD
    , and
    SHOULD NOT
    are
    to be interpreted as described in [
    RFC2119
    ].
    This specification indicates whether a section is
    normative
    or
    informative
    . Classifying a section as normative or informative applies to the entire section. A statement "This section is normative" or "This section is informative" applies to 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.
    Informative 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.1
    Non-interference with the Host Language
    WAI-ARIA
    processing by the
    user agent
    MUST NOT
    interfere with the normal operation of the built-in features of the host language.
    If a
    CSS
    selector includes a
    WAI-ARIA
    attribute (e.g.,
    input[aria-invalid="true"]
    ), user agents
    MUST
    update the visual display of any elements matching (or no longer matching) the selector any time the attribute is added/changed/removed in the
    DOM
    . The user agent
    MAY
    alter the mapping of the host language features into an
    API
    , but the user agent
    MUST NOT
    alter the
    DOM
    in order to remap
    WAI-ARIA
    markup into host language features.
    3.2
    All
    WAI-ARIA
    in
    DOM
    A conforming
    user agent
    which implements a document object model that does not conform to the
    W3C
    DOM
    specification
    MUST
    include the content attribute for role and its
    WAI-ARIA
    role values
    , as well as the
    WAI-ARIA
    States and Properties
    in the
    DOM
    as specified by the author, even though processing may affect how the elements are exposed to accessibility
    APIs
    . Doing so ensures that each role attribute and all
    WAI-ARIA
    states and properties, including their values, are in the document in an unmodified form so other tools, such as assistive technologies, can access them. A conforming
    W3C
    DOM
    meets this criterion.
    3.3
    Assistive Technology Notifications Communicated to Web Applications
    Assistive technologies
    , such as speech recognition systems and alternate input devices for users with mobility impairments, require the ability to control a web application in a device-independent way.
    WAI-ARIA
    states
    and
    properties
    reflect the current state of rich internet application components. The ability for assistive technologies to notify web applications of necessary changes is essential because it allows these alternative input solutions to control an application without being dependent on the standard input device which the user is unable to effectively control directly.
    User agents
    MUST
    provide a method to notify the web application when a change occurs to states or properties in the system accessibility
    API
    . Likewise, web application authors
    SHOULD
    update the web application accordingly when notified of a change request from the user agent or assistive technology.
    Note
    Many state and properties can be changed by assistive technologies through existing accessibility
    APIs
    by responding to a default action event. For example, the
    aria-selected
    state of a
    tab
    in a
    tabpanel
    can be changed by triggering the default action on the element.
    3.4
    Conformance Checkers
    Any application or script verifying document conformance or validity
    SHOULD
    include a test for all of the
    normative
    author requirements in this specification. If testing for a given requirement, conformance checkers
    MUST
    issue an error if an author "
    MUST
    " requirement isn't met, and
    MUST
    issue a warning if an author "
    SHOULD
    " requirement isn't met.
    3.5
    Deprecated Requirements
    As the technology evolves, sometimes new ways to meet a use case become available, that work better than a feature that was previously defined. But because of existing implementation of the older feature, that feature cannot be removed from the conformance model without rendering formerly conforming content non-conforming. In this case, the older feature is marked as "deprecated". This indicates that the feature is allowed in the conformance model and expected to be supported by user agents, but it is recommended that authors do not use it for new content. In future versions of the specification, if the feature is no longer widely used, the feature could be removed and no longer expected to be supported by user agents.
    5.
    The Roles Model
    This section defines the
    WAI-ARIA
    role
    taxonomy
    and describes the characteristics and properties of all
    roles
    . A formal
    RDF
    OWL
    representation of all the information presented here is available in
    Schemata Appendix
    The roles, their characteristics, the states and properties they support, and specification of how they may be used in markup, shall be considered normative. The
    RDF
    OWL
    representation used to model the taxonomy shall be considered informative. The
    RDF
    OWL
    taxonomy may be used as a vehicle to extend
    WAI-ARIA
    in the future or by tool manufacturers to validate states and properties applicable to roles per this specification.
    Roles are element types and authors
    MUST NOT
    change role values over time or with user actions. Authors wishing to change a role
    MUST
    do so by deleting the associated element and its children and replacing it with a new element with the appropriate role. Typically, platform accessibility
    APIs
    do not provide a vehicle to notify assistive technologies of a role value change, and consequently, assistive technologies may not update their cache with the new role attribute value.
    In order to reflect the content in the
    DOM
    , user agents
    SHOULD
    map the role attribute to the appropriate value in the implemented accessibility
    API
    , and user agents
    SHOULD
    update the mapping when the role attribute changes.
    5.1
    Relationships Between Concepts
    The
    role
    taxonomy
    uses the following relationships to relate
    WAI-ARIA
    roles to each other and to concepts from other specifications, such as
    HTML
    and XForms.
    5.1.1
    Superclass Role
    Inheritance is expressed in
    RDF
    using the
    RDF
    Schema 1.1
    subClassOf
    ([
    rdf-schema
    ]) property.
    RDF
    Property
    rdfs:subClassOf
    The
    role
    that the current subclassed role extends in the
    taxonomy
    . This extension causes all the properties and constraints of the superclass role to propagate to the subclass role. Other than well known stable specifications, inheritance may be restricted to items defined inside this specification, so that external items cannot be changed and affect inherited
    classes
    5.1.2
    Subclass Roles
    RDF
    Property

    Informative list of
    roles
    for which this role is the superclass. This is provided to facilitate reading of the specification but adds no new information.
    5.1.4
    Base Concept
    RDF
    Property
    role:baseConcept
    Informative data about
    objects
    that are considered prototypes for the
    role
    . Base concept is similar to type, but without inheritance of limitations and properties. Base concepts are designed as a substitute for inheritance for external concepts. A base concept is like a
    related concept
    except that the base concept is almost identical to the role definition.
    For example, the
    checkbox
    defined in this document has similar functionality and anticipated behavior to a
    checkbox defined in
    HTML
    . Therefore, a
    checkbox
    has an
    HTML
    checkbox
    as a
    baseConcept
    . However, if the original
    HTML
    checkbox baseConcept definition is modified, the definition of a
    checkbox
    in this document will not be affected, because there is no actual inheritance of the respective type.
    5.2
    Characteristics of Roles
    Roles are defined and described by their characteristics. Characteristics define the structural function of a role, such as what a role is, concepts behind it, and what instances the role can or must contain. In the case of
    widgets
    this also includes how it interacts with the
    user agent
    based on mapping to
    HTML
    forms and XForms. States and properties from
    WAI-ARIA
    that are supported by the role are also indicated.
    The roles
    taxonomy
    defines the following characteristics. These characteristics are implemented in
    RDF
    as properties of the
    OWL
    classes
    that describe the roles.
    5.2.1
    Abstract Roles
    RDF
    Property
    N/A
    Values
    Boolean
    Abstract
    roles
    are the foundation upon which all other
    WAI-ARIA
    roles are built. Content authors
    MUST NOT
    use abstract roles because they are not implemented in the
    API
    binding. User agents
    MUST NOT
    map abstract roles to the standard role mechanism of the accessibility
    API
    . Abstract roles are provided to help with the following:
    Organize the role
    taxonomy
    and provide roles with a meaning in the context of known concepts.
    Streamline the addition of roles that include necessary features.
    5.2.2
    Required States and Properties
    RDF
    Property
    role:requiredState
    Values
    Any valid
    RDF
    object reference, such as a
    URI
    States
    and
    properties
    specifically required for the
    role
    and subclass roles. Content authors
    MUST
    provide a non-empty
    value
    for required states and properties. Content authors
    MUST NOT
    use the value
    undefined
    for required states and properties, unless
    undefined
    is an explicitly-supported value of that state or property.
    When an
    object
    inherits from multiple ancestors and one ancestor indicates that property is supported while another ancestor indicates that it is required, the property is required in the inheriting object.
    5.2.3
    Supported States and Properties
    RDF
    Property
    role:supportedState
    Values
    Any valid
    RDF
    object reference, such as a
    URI
    States
    and
    properties
    specifically applicable to the
    role
    and child roles.
    User agents
    MUST
    map all supported states and properties for the role to an accessibility
    API
    . Content authors
    MAY
    provide
    values
    for supported states and properties, but need not in some cases where default values are sufficient.
    5.2.4
    Inherited States and Properties
    Informative list of properties that are inherited onto a
    role
    from superclass roles.
    States
    and
    properties
    are inherited from superclass roles in the role
    taxonomy
    , not from ancestor
    elements
    in the
    DOM
    tree. These properties are not explicitly defined on the role, as the inheritance of properties is automatic. This information is provided to facilitate reading of the specification. The set of supported states and properties combined with inherited states and properties forms the full set of states and properties supported by the role.
    5.2.5
    Required Owned Elements
    RDF
    Property
    role:mustContain
    Values
    Any valid
    RDF
    object reference, such as a
    URI
    Any
    element
    that will be
    owned
    by the element with this
    role
    . For example, an element with the role
    list
    will own at least one element with the role
    group
    or
    listitem
    When multiple roles are specified as
    required owned elements
    for a role, at least one instance of one required owned element is expected. This specification does
    not
    require an instance of each of the listed owned roles. For example, a
    should have at least one instance of a
    menuitem
    menuitemcheckbox
    or
    menuitemradio
    . The
    role does not require one instance of each.
    There may be times that required owned elements are missing, for example, while editing or while loading a data set. When a widget is missing
    required owned elements
    due to script execution or loading, authors
    MUST
    mark a containing element with
    aria-busy
    equal to
    true
    . For example, until a page is fully initialized and complete, an author could mark the document element as busy.
    Note
    A role that has 'required owned elements' does not imply the reverse relationship. While processing of a role may be incomplete without elements of given roles present as descendants, elements with roles in this list do not always have to be found within elements of the given role. See
    required context role
    for requirements about the context where elements of a given role will be contained.
    Note
    An element with a
    subclass role
    of the 'required owned element' does not fulfill this requirement. For example, the
    list
    role requires ownership of an element using either the
    listitem
    or
    group
    role. Although the
    group
    role is the superclass of
    row
    , adding a owned element with a role of
    row
    will not fulfill the requirement that
    list
    must own a
    listitem
    or a
    group
    5.2.6
    Required Context Role
    RDF
    Property
    role:scope
    Values
    Any valid
    RDF
    object reference, such as a
    URI
    The required context role defines the owning container where this
    role
    is allowed. If a role has a required context, authors
    MUST
    ensure that an element with the role is contained inside (or
    owned
    by) an element with the required context role. For example, an element with role
    listitem
    is only meaningful when contained inside (or owned by) an element with role
    list
    Note
    A role that has 'required context role' does not imply the reverse relationship. While an element with the given role needs to appear within an element of the listed role(s) in order to be meaningful, elements of the listed roles do not always need descendant elements of the given role in order to be meaningful. See
    required owned elements
    for requirements about elements that require presence of a given descendant to be processed properly.
    5.2.7
    Accessible Name Calculation
    RDF
    Property
    role:nameFrom
    Values
    One of the following values:
    author: name comes from values provided by the author in explicit markup features such as the
    aria-label
    attribute, the
    aria-labelledby
    attribute, or the host language labeling mechanism, such as the
    alt
    or
    title
    attributes in
    HTML
    , with
    HTML
    title
    attribute having the lowest precedence for specifying a text alternative.
    contents: name comes from the text value of the
    element
    node. Although this may be allowed in addition to "author" in some
    roles
    , this is used in content only if higher priority "author" features are not provided. Priority is defined by the
    text alternative computation
    algorithm.
    5.2.7.3
    Text Alternative Computation
    Text Alternative Computation
    is defined in the Accessible Name and Description specification [
    accname-aam-1.1
    ].
    5.2.7.4
    Roles Supporting Name from Author
    All roles support name from author with two exceptions. The roles that do not support name from author are
    presentation
    and
    none
    5.2.7.5
    Roles Supporting Name from Content
    5.2.8
    Presentational Children
    RDF
    Property
    role:childrenArePresentational
    Values
    Boolean (
    true
    false
    The
    DOM
    descendants are presentational.
    User agents
    SHOULD NOT
    expose descendants of this
    element
    through the platform
    API
    . If
    user agents
    do not hide the descendant nodes, some information may be read twice.
    5.2.9
    Implicit Value for Role
    Many states and properties have default values. Occasionally, the default value when used on a given role should be different from the usual default. Roles that require a state or property to have a non-standard default value indicate this in the "Implicit Value for Role". This is expressed in the form "
    state or property name
    is
    new default value
    ". Roles that define this have the new default value for the state or property if the author does not provide an explicit value.
    5.3
    Categorization of Roles
    To support the current user scenario, this specification categorizes
    roles
    that define user interface
    widgets
    (sliders, tree controls, etc.) and those that define page structure (sections, navigation, etc.). Note that some assistive technologies provide special modes of interaction for regions marked with role
    application
    or
    document
    Roles are categorized as follows:
    Abstract Roles
    Widget Roles
    Document Structure Roles
    Landmark Roles
    Live Region Roles
    Window Roles
    5.3.1
    Abstract Roles
    The following
    roles
    are used to support the
    WAI-ARIA
    role
    taxonomy
    for the purpose of defining general role concepts.
    Abstract roles are used for the ontology. Authors
    MUST NOT
    use abstract roles in content.
    5.3.3
    Document Structure
    The following
    roles
    describe structures that organize content in a page. Document structures are not usually interactive.
    5.3.4
    Landmark Roles
    The following
    roles
    are regions of the page intended as navigational
    landmarks
    . All of these roles inherit from the
    landmark
    base type and all are imported from the
    Role Attribute
    role-attribute
    ]. The roles are included here in order to make them clearly part of the
    WAI-ARIA
    Role
    taxonomy
    5.3.6
    Window Roles
    The following
    roles
    act as windows within the browser or application.
    5.4
    Definition of Roles
    Below is an alphabetical list of
    WAI-ARIA
    roles
    to be used by rich internet application authors.
    Abstract roles are used for the ontology. Authors
    MUST NOT
    use abstract roles in content.
    alert
    A type of
    live region
    with important, and usually time-sensitive, information. See related
    alertdialog
    and
    status
    alertdialog
    A type of dialog that contains an alert message, where initial focus goes to an
    element
    within the dialog. See related
    alert
    and
    dialog
    application
    structure
    containing one or more focusable elements requiring user input, such as keyboard or gesture events, that do not follow a standard interaction pattern supported by a
    widget
    role.
    article
    A section of a page that consists of a composition that forms an independent part of a document, page, or site.
    banner
    A region that contains mostly site-oriented content, rather than page-specific content.
    button
    An input that allows for user-triggered actions when clicked or pressed. See related
    link
    cell
    A cell in a tabular container. See related
    gridcell
    checkbox
    A checkable input that has three possible
    values
    true
    false
    , or
    mixed
    columnheader
    A cell containing header information for a column.
    combobox
    A composite
    widget
    containing a single-line
    textbox
    and another element, such as a
    listbox
    or
    grid
    , that can dynamically pop up to help the user set the value of the
    textbox
    command
    (abstract role)
    A form of widget that performs an action but does not receive input data.
    complementary
    A supporting section of the document, designed to be complementary to the main content at a similar level in the
    DOM
    hierarchy, but remains meaningful when separated from the main content.
    composite
    (abstract role)
    widget
    that may contain navigable descendants or owned children.
    contentinfo
    A large perceivable region that contains information about the parent document.
    definition
    A definition of a term or concept. See related
    term
    dialog
    A dialog is a descendant window of the primary window of a web application. For
    HTML
    pages, the primary application window is the entire web document, i.e., the
    body
    element.
    directory
    A list of references to members of a group, such as a static table of contents.
    document
    An
    element
    containing content that
    assistive technology
    users may want to browse in a reading mode.
    feed
    A scrollable
    list
    of
    articles
    where scrolling may cause
    articles
    to be added to or removed from either end of the list.
    figure
    A perceivable
    section
    of content that typically contains a
    graphical document
    , images, code snippets, or example text. The parts of a
    figure
    MAY
    be user-navigable.
    form
    landmark
    region that contains a collection of items and objects that, as a whole, combine to create a form. See related
    grid
    A composite
    widget
    containing a collection of one or more rows with one or more cells where some or all cells in the grid are focusable by using methods of two-dimensional navigation, such as directional arrow keys.
    gridcell
    cell
    in a
    grid
    or
    treegrid
    group
    A set of user interface
    objects
    which are not intended to be included in a page summary or table of contents by
    assistive technologies
    heading
    A heading for a section of the page.
    img
    A container for a collection of
    elements
    that form an image.
    input
    (abstract role)
    A generic type of
    widget
    that allows user input.
    landmark
    (abstract role)
    A perceivable
    section
    containing content that is relevant to a specific, author-specified purpose and sufficiently important that users will likely want to be able to navigate to the section easily and to have it listed in a summary of the page. Such a page summary could be generated dynamically by a user agent or assistive technology.
    link
    An interactive reference to an internal or external resource that, when activated, causes the user agent to navigate to that resource. See related
    button
    list
    section
    containing
    listitem
    elements. See related
    listbox
    listbox
    widget
    that allows the user to select one or more items from a list of choices. See related
    combobox
    and
    list
    listitem
    A single item in a list or directory.
    log
    A type of
    live region
    where new information is added in meaningful order and old information may disappear. See related
    marquee
    main
    The main content of a document.
    marquee
    A type of
    live region
    where non-essential information changes frequently. See related
    log
    math
    Content that represents a mathematical expression.
    A type of
    widget
    that offers a list of choices to the user.
    menubar
    A presentation of
    that usually remains visible and is usually presented horizontally.
    menuitem
    An option in a set of choices contained by a
    or
    menubar
    menuitemcheckbox
    menuitem
    with a checkable state whose possible
    values
    are
    true
    false
    , or
    mixed
    menuitemradio
    A checkable
    menuitem
    in a set of elements with the same role, only one of which can be checked at a time.
    A collection of navigational
    elements
    (usually links) for navigating the document or related documents.
    none
    An
    element
    whose implicit native role semantics will not be mapped to the
    API
    . See synonym
    presentation
    note
    A section whose content is parenthetic or ancillary to the main content of the resource.
    option
    A selectable item in a
    select
    list.
    presentation
    An
    element
    whose implicit native role semantics will not be mapped to the
    API
    . See synonym
    none
    progressbar
    An
    element
    that displays the progress status for tasks that take a long time.
    radio
    A checkable input in a group of elements with the same role, only one of which can be checked at a time.
    radiogroup
    A group of
    radio
    buttons.
    range
    (abstract role)
    An input representing a range of values that can be set by the user.
    region
    A perceivable
    section
    containing content that is relevant to a specific, author-specified purpose and sufficiently important that users will likely want to be able to navigate to the section easily and to have it listed in a summary of the page. Such a page summary could be generated dynamically by a user agent or assistive technology.
    roletype
    (abstract role)
    The base
    role
    from which all other roles in this
    taxonomy
    inherit.
    row
    A row of cells in a tabular container.
    rowgroup
    A structure containing one or more row elements in a tabular container.
    rowheader
    A cell containing header information for a row in a grid.
    scrollbar
    A graphical object that controls the scrolling of content within a viewing area, regardless of whether the content is fully displayed within the viewing area.
    landmark
    region that contains a collection of items and objects that, as a whole, combine to create a search facility. See related
    form
    and
    searchbox
    searchbox
    A type of textbox intended for specifying search criteria. See related
    textbox
    and
    section
    (abstract role)
    A renderable structural containment unit in a document or application.
    sectionhead
    (abstract role)
    A structure that labels or summarizes the topic of its related section.
    select
    (abstract role)
    A form widget that allows the user to make selections from a set of choices.
    separator
    A divider that separates and distinguishes sections of content or groups of menuitems.
    slider
    A user input where the user selects a value from within a given range.
    spinbutton
    A form of
    range
    that expects the user to select from among discrete choices.
    status
    A type of
    live region
    whose content is advisory information for the user but is not important enough to justify an
    alert
    , often but not necessarily presented as a status bar.
    structure
    (abstract role)
    A document structural
    element
    switch
    A type of checkbox that represents on/off values, as opposed to checked/unchecked values. See related
    checkbox
    tab
    A grouping label providing a mechanism for selecting the tab content that is to be rendered to the user.
    table
    section
    containing data arranged in rows and columns. See related
    grid
    tablist
    A list of
    tab
    elements
    , which are references to
    tabpanel
    elements.
    tabpanel
    A container for the resources associated with a
    tab
    , where each
    tab
    is contained in a
    tablist
    term
    A word or phrase with a corresponding definition. See related
    definition
    textbox
    A type of input that allows free-form text as its value.
    timer
    A type of
    live region
    containing a numerical counter which indicates an amount of elapsed time from a start point, or the time remaining until an end point.
    toolbar
    A collection of commonly used function buttons or controls represented in compact visual form.
    tooltip
    A contextual popup that displays a description for an element.
    tree
    A type of
    list
    that may contain sub-level nested groups that can be collapsed and expanded.
    treegrid
    grid
    whose rows can be expanded and collapsed in the same manner as for a
    tree
    treeitem
    An option item of a
    tree
    . This is an
    element
    within a tree that may be expanded or collapsed if it contains a sub-level group of tree item elements.
    widget
    (abstract role)
    An interactive component of a graphical user interface (
    GUI
    ).
    window
    (abstract role)
    A browser or application window.
    alert
    (role)
    A type of
    live region
    with important, and usually time-sensitive, information. See related
    alertdialog
    and
    status
    Alerts are used to convey messages to alert the user. In the case of audio warnings this is an accessible alternative for a hearing-impaired user. The
    alert
    role
    goes on the node containing the alert message. Alerts are specialized forms of the
    status
    role, which will be processed as an atomic
    live region
    Alerts are assertive live regions and will be processed as such by assistive technologies. Neither authors nor user agents are required to set or manage focus to them in order for them to be processed. Since alerts are not required to receive focus, content authors
    SHOULD NOT
    require users to close an alert. If the operating system allows, the
    user agent
    SHOULD
    fire a system alert
    event
    through the accessibility
    API
    when the
    WAI-ARIA
    alert is created. If an alert requires focus to close the alert, then content authors
    SHOULD
    use
    alertdialog
    instead.
    Elements with the role
    alert
    have an implicit
    aria-live
    value of
    assertive
    , and an implicit
    aria-atomic
    value of
    true
    alertdialog
    (role)
    A type of dialog that contains an alert message, where initial focus goes to an
    element
    within the dialog. See related
    alert
    and
    dialog
    Alert dialogs are used to convey messages to alert the user. The
    alertdialog
    role
    goes on the node containing both the alert message and the rest of the dialog. Content authors
    SHOULD
    make alert dialogs modal by ensuring that, while the
    alertdialog
    is shown, keyboard and mouse interactions only operate within the dialog. See
    aria-modal
    Unlike
    alert
    alertdialog
    can receive a response from the user. For example, to confirm that the user understands the alert being generated. When the alert dialog is displayed, authors
    SHOULD
    set focus to an active element within the alert dialog, such as a form edit field or an OK button. The
    user agent
    SHOULD
    fire a system alert
    event
    through the accessibility
    API
    when the alert is created, provided one is specified by the intended
    API
    Authors
    SHOULD
    use
    aria-describedby
    on an
    alertdialog
    to reference the alert message element in the dialog. If they do not, an
    assistive technology
    can resort to its internal recovery mechanism to determine the contents of the alert message.
    application
    (role)
    structure
    containing one or more focusable elements requiring user input, such as keyboard or gesture events, that do not follow a standard interaction pattern supported by a
    widget
    role.
    Some
    user agents
    and
    assistive technologies
    have a browse mode where standard input events, such as up and down arrow key events, are intercepted and used to control a reading cursor. This browse mode behavior prevents elements that do not have a
    widget
    role from receiving and using such keyboard and gesture events to provide interactive functionality.
    When there is a need to create an element with an interaction model that is not supported by any of the
    WAI-ARIA
    widget
    roles, authors
    MAY
    give that element role
    application
    . And, when a user navigates into an element with role
    application
    assistive technologies
    that intercept standard input events
    SHOULD
    switch to a mode that passes most or all standard input events through to the web application.
    For example, a presentation slide editor uses arrow keys to change the positions of textbox and image elements on the slide. There are not any
    WAI-ARIA
    widget
    roles that correspond to such an interaction model so an author could give the slide container role
    application
    , an
    aria-roledescription
    of "Slide Editor", and use
    aria-describedby
    to provide instructions.
    Because only the focusable elements contained in an
    application
    element are accessible to users of some assistive technologies, authors
    MUST
    use one of the following techniques to ensure all non-decorative static text or image content inside an application is accessible:
    Associate the content with a focusable element using
    aria-labelledby
    or
    aria-describedby
    Place the content in a focusable element that has role
    document
    or
    article
    Manage focus of descendants as described in
    Managing Focus
    , updating the value of
    aria-activedescendant
    to reference the
    element
    containing the focused content.
    article
    (role)
    A section of a page that consists of a composition that forms an independent part of a document, page, or site.
    An article is not a navigational
    landmark
    , but may be nested to form a discussion where assistive technologies could pay attention to article nesting to assist the user in following the discussion. An article could be a forum post, a magazine or newspaper article, a web log entry, a user-submitted comment, or any other independent item of content. It is
    independent
    in that its contents could stand alone, for example in syndication. However, the
    element
    is still associated with its ancestors; for instance, contact information that applies to a parent body element still covers the article as well. When nesting articles, the child articles represent content that is related to the content of the parent article. For instance, a web log entry on a site that accepts user-submitted comments could represent the comments as articles nested within the article for the web log entry. Author, heading, date, or other information associated with an article does not apply to nested articles.
    When the user navigates to an element assigned the role of
    article
    assistive technologies
    that typically intercept standard keyboard events
    SHOULD
    switch to document browsing mode, as opposed to passing keyboard events through to the web application. Assistive technologies
    MAY
    provide a feature allowing the user to navigate the hierarchy of any nested
    article
    elements.
    When an
    article
    is in the context of a
    feed
    , the author
    MAY
    specify values for
    aria-posinset
    and
    aria-setsize
    banner
    (role)
    A region that contains mostly site-oriented content, rather than page-specific content.
    Site-oriented content typically includes things such as the logo or identity of the site sponsor, and a site-specific search tool. A banner usually appears at the top of the page and typically spans the full width.
    User agents
    SHOULD
    treat elements with the role of
    banner
    as navigational
    landmarks
    Within any
    document
    or
    application
    , the author
    SHOULD
    mark no more than one
    element
    with the
    banner
    role
    Note
    Because
    document
    and
    application
    elements can be nested in the
    DOM
    , they may have multiple
    banner
    elements as
    DOM
    descendants, assuming each of those is associated with different document nodes, either by a
    DOM
    nesting (e.g.,
    document
    within
    document
    ) or by use of the
    aria-owns
    attribute
    button
    (role)
    An input that allows for user-triggered actions when clicked or pressed. See related
    link
    Buttons are mostly used for discrete actions. Standardizing the appearance of buttons enhances the user's recognition of the
    widgets
    as buttons and allows for a more compact display in toolbars.
    Buttons support the optional
    attribute
    aria-pressed
    . Buttons with a non-empty
    aria-pressed
    attribute are toggle buttons. When
    aria-pressed
    is
    true
    the button is in a "pressed"
    state
    , when
    aria-pressed
    is
    false
    it is not pressed. If the attribute is not present, the button is a simple command button.
    cell
    (role)
    A cell in a tabular container. See related
    gridcell
    Authors
    MUST
    ensure
    elements
    with
    role
    cell are contained in, or owned by, an element with the
    role
    row
    checkbox
    (role)
    A checkable input that has three possible
    values
    true
    false
    , or
    mixed
    The
    aria-checked
    attribute
    of a
    checkbox
    indicates whether the input is checked (
    true
    ), unchecked (
    false
    ), or represents a group of
    elements
    that have a mixture of checked and unchecked values (
    mixed
    ). Many checkboxes do not use the
    mixed
    value, and thus are effectively boolean checkboxes.
    columnheader
    (role)
    A cell containing header information for a column.
    columnheader
    can be used as a column header in a table or grid. It could also be used in a pie chart to show a similar
    relationship
    in the data.
    The
    columnheader
    establishes a relationship between it and all cells in the corresponding column. It is the structural equivalent to an
    HTML
    th
    element
    with a column scope.
    Authors
    MUST
    ensure
    elements
    with
    role
    columnheader
    are contained in, or owned by, an element with the role
    row
    Applying the
    aria-selected
    state on a columnheader
    MUST
    not cause the user agent to automatically propagate the
    aria-selected
    state to all the cells in the corresponding column. An author
    MAY
    choose to propagate selection in this manner depending on the specific application.
    While the
    columnheader
    role can be used in both interactive grids and non-interactive tables, the use of
    aria-readonly
    and
    aria-required
    is only applicable to interactive elements. Therefore, authors
    SHOULD NOT
    use
    aria-required
    or
    aria-readonly
    in a
    columnheader
    that descends from a
    table
    , and user agents
    SHOULD NOT
    expose either property to
    assistive technologies
    unless the
    columnheader
    descends from a
    grid
    Note
    Because cells are organized into rows, there is not a single container element for the column. The column is the set of
    gridcell
    elements in a particular position within their respective
    row
    containers.
    combobox
    (role)
    A composite
    widget
    containing a single-line
    textbox
    and another element, such as a
    listbox
    or
    grid
    , that can dynamically pop up to help the user set the value of the
    textbox
    Authors
    MUST
    ensure an element with role
    combobox
    contains or owns a text input element with role
    textbox
    or
    searchbox
    and that the text input has
    aria-multiline
    set to
    false
    . If the
    combobox
    provides autocompletion behavior for the text input as described in
    aria-autocomplete
    , authors
    MUST
    set
    aria-autocomplete
    on the
    textbox
    element to the value that corresponds to the provided behavior.
    Typically, the default state of a
    combobox
    is collapsed. In the collapsed state, only the
    textbox
    element of a
    combobox
    is visible. A
    combobox
    is said to be expanded when both the
    textbox
    and a secondary element that serves as its popup are visible. Authors
    MUST
    set
    aria-expanded
    to
    true
    on an element with role
    combobox
    when it is expanded and
    false
    when it is collapsed. Elements with the role
    combobox
    have an implicit
    aria-expanded
    value of
    false
    When a
    combobox
    is expanded, authors
    MUST
    ensure it contains or owns an element that has a role of
    listbox
    tree
    grid
    , or
    dialog
    . This element is the
    combobox
    popup. When the
    combobox
    is expanded, authors
    MUST
    set
    aria-controls
    on the
    textbox
    element to a value that refers to the
    combobox
    popup element.
    Elements with the role
    combobox
    have an implicit
    aria-haspopup
    value of
    listbox
    . If the
    combobox
    popup element has a role other than
    listbox
    , authors
    MUST
    specify a value for
    aria-haspopup
    that corresponds to the type of its popup.
    To be
    keyboard accessible
    , authors
    SHOULD
    manage focus of descendants for all instances of this
    role
    , as described in
    Managing Focus
    . When a
    combobox
    receives focus, authors
    SHOULD
    ensure focus is placed on the
    textbox
    element.
    Authors
    SHOULD
    provide keyboard mechanisms for moving focus between the
    textbox
    element and the elements contained in the popup. For example, one common convention is that
    Down Arrow
    moves focus from the text input to the first focusable descendant of the popup element. If the popup element supports
    aria-activedescendant
    , in lieu of moving focus, such keyboard mechanisms can control the value of
    aria-activedescendant
    on the
    textbox
    element. When a descendant of the popup element is active, authors
    MAY
    set
    aria-activedescendant
    on the
    textbox
    to a value that refers to the active element within the popup while focus remains on the
    textbox
    element.
    Example 5
    div
    aria-label
    "Tag"
    role
    "combobox"
    aria-expanded
    "true"
    aria-owns
    "owned_listbox"
    aria-haspopup
    "listbox"
    input
    type
    "text"
    aria-autocomplete
    "list"
    aria-controls
    "owned_listbox"
    aria-activedescendant
    "selected_option"
    div
    ul
    role
    "listbox"
    id
    "owned_listbox"
    li
    role
    "option"
    Zebra
    li
    li
    role
    "option"
    id
    "selected_option"
    Zoom
    li
    ul
    The ARIA 1.0 specification describes a
    combobox
    pattern where a text input element has the
    combobox
    role and owns a
    listbox
    element.
    User agents
    assistive technologies
    , and conformance checkers
    SHOULD
    continue to support the ARIA 1.0 pattern so that existing implementations of the ARIA 1.0 pattern remain functional.
    The features and behaviors of combobox implementations vary widely. Consequently, there are many important authoring considerations. See the
    WAI-ARIA
    Authoring Practices Guide
    wai-aria-practices-1.1
    ] for additional details on implementing combobox design patterns.
    command
    (abstract role)
    A form of widget that performs an action but does not receive input data.
    Note
    command
    is an abstract role used for the ontology. Authors should not use this role in content.
    complementary
    (role)
    A supporting section of the document, designed to be complementary to the main content at a similar level in the
    DOM
    hierarchy, but remains meaningful when separated from the main content.
    There are various types of content that would appropriately have this
    role
    . For example, in the case of a portal, this may include but not be limited to show times, current weather, related articles, or stocks to watch. The complementary role indicates that contained content is relevant to the main content. If the complementary content is completely separable from the main content, it may be appropriate to use a more general role.
    User agents
    SHOULD
    treat elements with the role of
    complementary
    as navigational
    landmarks
    composite
    (abstract role)
    widget
    that may contain navigable descendants or owned children.
    Authors
    SHOULD
    ensure that a composite widget exists as a single navigation stop within the larger navigation system of the web page. Once the composite widget has focus, authors
    SHOULD
    provide a separate navigation mechanism for users to navigate to
    elements
    that are descendants or owned children of the composite element.
    Note
    composite
    is an abstract role used for the ontology. Authors should not use this role in content.
    contentinfo
    (role)
    A large perceivable region that contains information about the parent document.
    Examples of information included in this region of the page are copyrights and links to privacy statements.
    User agents
    SHOULD
    treat elements with the role of
    contentinfo
    as navigational
    landmarks
    Within any
    document
    or
    application
    , the author
    SHOULD
    mark no more than one
    element
    with the
    contentinfo
    role.
    Note
    Because
    document
    and
    application
    elements can be nested in the
    DOM
    , they may have multiple
    contentinfo
    elements as
    DOM
    descendants, assuming each of those is associated with different document nodes, either by a
    DOM
    nesting (e.g.,
    document
    within
    document
    ) or by use of the
    aria-owns
    attribute.
    definition
    (role)
    A definition of a term or concept. See related
    term
    Authors
    SHOULD
    identify the
    element
    being defined by giving that element a role of
    term
    and referencing it with the
    aria-labelledby
    attribute
    dialog
    (role)
    A dialog is a descendant window of the primary window of a web application. For
    HTML
    pages, the primary application window is the entire web document, i.e., the
    body
    element.
    Dialogs are most often used to prompt the user to enter or respond to information. A dialog that is designed to interrupt workflow is usually modal. See related
    alertdialog
    Authors
    SHOULD
    provide a dialog label, which can be done with the
    aria-label
    or
    aria-labelledby
    attribute.
    Authors
    SHOULD
    ensure that all dialogs (both modal and non-modal) have at least one focusable descendant element. Authors
    SHOULD
    focus an element in the modal dialog when it is displayed, and authors
    SHOULD
    manage focus of modal dialogs.
    Note
    In the description of this role, the term "web application" does not refer to the
    application
    role, which specifies specific assistive technology behaviors.
    directory
    (role)
    A list of references to members of a group, such as a static table of contents.
    Authors
    SHOULD
    use this
    role
    for a static table of contents, whether linked or unlinked. This includes tables of contents built with lists, including nested lists. Dynamic tables of contents, however, might use a
    tree
    role instead.
    document
    (role)
    An
    element
    containing content that
    assistive technology
    users may want to browse in a reading mode.
    When
    user agent
    focus moves to an element assigned the role of
    document
    assistive technologies
    having a reading mode for browsing static content
    MAY
    switch to that reading mode and intercept standard input events, such as Up or Down arrow keyboard events, to control the reading cursor.
    Because
    assistive technologies
    that have a reading mode default to that mode for all elements except for those with either a
    widget
    or
    application
    role, the only circumstance where the
    document
    role is useful for changing assistive technology behavior is when the element with role
    document
    is a focusable child element of a
    widget
    or
    application
    . For example, given an
    application
    element which contains some static rich text, the author can apply role
    document
    to the element containing the text and give it a
    tabindex
    of
    . When a screen reader user presses the Tab key and places focus on the
    document
    element, the user will be able to read the text with the screen reader's reading cursor.
    feed
    (role)
    A scrollable
    list
    of
    articles
    where scrolling may cause
    articles
    to be added to or removed from either end of the list.
    feed
    enables users of
    assistive technologies
    that have a document browse mode, such as screen readers, to use the browse mode reading cursor to both read and scroll through a stream of rich content that may continue scrolling infinitely by loading more content as the user reads. In a
    feed
    assistive technologies
    provide a web application with signals of the user's reading cursor movement by moving
    user agent
    focus, enabling the application to both add new content and visually position content as the user browses the page. The
    feed
    also lets authors inform assistive technologies when additions and removals are occurring so assistive technologies can more reliably update their reading view without disrupting reading or degrading performance.
    For example, a
    feed
    could be used to present a stream of news stories where each
    article
    contains a story with text, links, images, and comments as well as widgets for sharing and commenting. As a screen reader user reads and interacts with each story and moves the screen reader reading cursor from story to story, each story scrolls into view and, as needed, new stories are loaded.
    feed
    is a container element whose children have role
    article
    . When
    articles
    are added or removed from either or both ends of a
    feed
    , authors
    SHOULD
    set
    aria-busy
    to
    true
    on the
    feed
    element before the changes are made and set it to
    false
    after the changes are complete. Authors
    SHOULD
    avoid inserting or removing
    articles
    in the middle of a
    feed
    . These requirements help
    assistive technologies
    gracefully respond to changes in the
    feed
    content that occur simultaneously with user commands to move the reading cursor within the
    feed
    Authors
    SHOULD
    make each
    article
    in a
    feed
    focusable and ensure that the application scrolls an
    article
    into view when
    user agent
    focus is set on the
    article
    or one of its descendant elements. For example, in
    HTML
    , each
    article
    element should have a
    tabindex
    value of either
    -1
    or
    When an
    assistive technology
    reading cursor moves from one
    article
    to another,
    assistive technologies
    SHOULD
    set user agent focus on the
    article
    that contains the reading cursor. If the reading cursor lands on a focusable element inside the
    article
    , the assistive technology
    MAY
    set focus on that element in lieu of setting focus on the containing
    article
    Because the ability to scroll to another
    article
    with an
    assistive technology
    reading cursor depends on the presence of another
    article
    in the page, authors
    SHOULD
    attempt to load additional
    articles
    before
    user agent
    focus reaches an
    article
    at either end of the set of
    articles
    that has been loaded. Alternatively, authors
    MAY
    include an
    article
    at either or both ends of the loaded set of
    articles
    that includes an element, such as a
    button
    , that lets the user request more
    articles
    to be loaded.
    In addition to providing a brief label, authors
    MAY
    apply
    aria-describedby
    to
    article
    elements in a
    feed
    to suggest to screen readers which elements to speak after the label when users navigate by
    article
    . Screen readers
    MAY
    provide users with a way to quickly scan
    feed
    content by speaking both the label and accessible description when navigating by
    article
    , enabling the user to ignore repetitive or less important elements, such as embedded interaction widgets, that the author has left out of the description.
    Authors
    SHOULD
    provide keyboard commands for moving focus among
    articles
    in a
    feed
    so users who do not utilize an assistive technology that provides
    article
    navigation features can use the keyboard to navigate the
    feed
    If the number of articles available in a
    feed
    supply is static, authors
    MAY
    specify
    aria-setsize
    on
    article
    elements in that
    feed
    . However, if the total number is extremely large, indefinite, or changes often, authors
    MAY
    set
    aria-setsize
    to
    -1
    to communicate the unknown size of the set.
    See the
    WAI-ARIA
    Authoring Practices
    wai-aria-practices-1.1
    ] for additional details on implementing a feed design pattern.
    figure
    (role)
    A perceivable
    section
    of content that typically contains a
    graphical document
    , images, code snippets, or example text. The parts of a
    figure
    MAY
    be user-navigable.
    Authors
    SHOULD
    provide a reference to the
    figure
    from the main text, but the
    figure
    need not be displayed at the same location as the referencing element. Authors
    MAY
    reference text serving as a caption using
    aria-describedby
    . Authors
    MAY
    provide a label using
    aria-label
    or
    MAY
    reference text serving as a label using
    aria-labelledby
    Assistive technologies
    SHOULD
    enable users to quickly navigate to figures. Mainstream
    user agents
    MAY
    enable users to quickly navigate to figures.
    form
    (role)
    landmark
    region that contains a collection of items and objects that, as a whole, combine to create a form. See related
    A form may be a mix of host language form controls, scripted controls, and hyperlinks. Authors are reminded to use native host language semantics to create form controls, whenever possible. For search facilities, authors
    SHOULD
    use the
    role and not the generic
    form
    role. Authors
    SHOULD
    provide a visible label for the form referenced with
    aria-labelledby
    . If an author uses a script to submit a form based on a user action that would otherwise not trigger an
    onsubmit
    event (for example, a form submission triggered by the user changing a form element's value), the author
    SHOULD
    provide the user with advance notification of the behavior.
    User agents
    SHOULD
    treat elements with the role of
    form
    as navigational
    landmarks
    grid
    (role)
    A composite
    widget
    containing a collection of one or more rows with one or more cells where some or all cells in the grid are focusable by using methods of two-dimensional navigation, such as directional arrow keys.
    The
    grid
    role does not imply a specific visual, e.g., tabular, presentation. It describes
    relationships
    among
    elements
    . It may be used for purposes as simple as grouping a collection of checkboxes or navigation links or as complex as creating a full-featured spreadsheet application.
    The cell elements of a
    grid
    have role
    gridcell
    . Authors
    MAY
    designate a cell as a row or column header by using either the
    rowheader
    or
    columnheader
    role
    in lieu of the
    gridcell
    role. Authors
    MUST
    ensure elements with role
    gridcell
    columnheader
    , or
    rowheader
    are
    owned
    by elements with role
    row
    , which are in turn owned by an element with role
    rowgroup
    , or
    grid
    To be
    keyboard accessible
    , authors
    SHOULD
    manage focus of descendants of a
    grid
    as described in
    Managing Focus
    . When a user is navigating the
    grid
    content with a keyboard, authors
    SHOULD
    set focus as follows:
    If a
    gridcell
    contains a single interactive
    widget
    that will not consume arrow key presses when it receives focus, such as a
    checkbox
    button
    , or
    link
    , authors
    MAY
    set focus on the interactive element contained in that cell. This allows the contained widget to be directly operable.
    Otherwise, authors
    SHOULD
    ensure the element that receives focus is a
    gridcell
    rowheader
    , or
    columnheader
    element.
    Authors
    SHOULD
    provide a mechanism for changing to an interaction or edit mode that allows users to navigate and interact with content contained inside a focusable cell if that focusable cell contains any of the following:
    a widget that requires arrow keys to operate, e.g., a
    combobox
    or
    radiogroup
    multiple interactive elements
    editable content
    For example, if a cell in a spreadsheet contains a
    combobox
    or editable text, the
    Enter
    key might be used to activate a cell interaction or editing mode when that cell has focus so the directional arrow keys can be used to operate the contained
    combobox
    or
    textbox
    . Depending on the implementation, pressing
    Enter
    again,
    Tab
    Escape
    , or another key may switch the application back to the grid navigation mode.
    Authors
    MAY
    use a
    gridcell
    to display the result of a formula, which could be editable by the user. In a spreadsheet application, for example, a
    gridcell
    may show a value calculated from a formula until the user activates the
    gridcell
    for editing when a
    textbox
    appears in the
    gridcell
    containing the formula in an editable state.
    If
    aria-readonly
    is set on an element with role
    grid
    user agents
    MUST
    propagate the value to all
    gridcell
    elements owned by the
    grid
    and expose the value in the accessibility
    API
    . An author
    MAY
    override the propagated value of
    aria-readonly
    for an individual
    gridcell
    element.
    In a
    grid
    that provides cell content editing functions, if the content of a focusable
    gridcell
    element is not editable, authors
    MAY
    set
    aria-readonly
    to
    true
    on the
    gridcell
    element. However, the value of
    aria-readonly
    , whether specified for a
    grid
    or individual cells, only indicates whether the content contained in cells is editable. It does not represent availability of functions for navigating or manipulating the
    grid
    itself.
    An unspecified value for
    aria-readonly
    does not imply that a
    grid
    or a
    gridcell
    contains editable content. For example, if a
    grid
    presents a collection of elements that are not editable, such as a collection of
    link
    elements representing dates in a datepicker, it is not necessary for the author to specify a value for
    aria-readonly
    Authors
    MAY
    indicate that a focusable
    gridcell
    is selectable as the object of an action with the
    aria-selected
    attribute. If the
    grid
    allows multiple
    gridcell
    s to be selected, the author
    SHOULD
    set
    aria-multiselectable
    to
    true
    on the element with role
    grid
    Since
    WAI-ARIA
    can augment an element of the host language, a
    grid
    can reuse the elements and attributes of a native table, such as an
    HTML
    table
    element. For example, if an author applies the
    grid
    role to an
    HTML
    table
    element, the author does not need to apply the
    row
    and
    gridcell
    roles to the descendant
    HTML
    tr
    and
    td
    elements because the
    user agent
    will automatically make the appropriate translations. When the author is reusing a native host language table element and needs a
    gridcell
    element to span multiple rows or columns, the author
    SHOULD
    apply the appropriate host language attributes instead of
    WAI-ARIA
    aria-rowspan
    or
    aria-colspan
    properties.
    See the
    WAI-ARIA
    Authoring Practices Guide
    wai-aria-practices-1.1
    ] for additional details on implementing grid design patterns.
    gridcell
    (role)
    cell
    in a
    grid
    or
    treegrid
    gridcell
    may be focusable, editable, and selectable. A
    gridcell
    may have
    relationships
    such as
    aria-controls
    to address the application of functional relationships.
    If an author intends a
    gridcell
    to have a row header, column header, or both, and if the relevant headers cannot be determined from the
    DOM
    structure, authors
    SHOULD
    explicitly indicate which header cells are relevant to the
    gridcell
    by applying
    aria-describedby
    on the
    gridcell
    and referencing
    elements
    with
    role
    rowheader
    or
    columnheader
    In a
    treegrid
    , authors
    MAY
    define a
    gridcell
    as expandable by using the
    aria-expanded
    attribute. If the
    aria-expanded
    attribute is provided, it applies only to the individual cell. It is not a proxy for the container
    row
    , which also can be expanded. The main use case for providing this attribute on a
    gridcell
    is pivot table behavior.
    Authors
    MUST
    ensure
    elements
    with
    role
    gridcell are contained in, or owned by, an element with the
    role
    row
    group
    (role)
    A set of user interface
    objects
    which are not intended to be included in a page summary or table of contents by
    assistive technologies
    Contrast with
    region
    which is a grouping of user interface objects that will be included in a page summary or table of contents.
    Authors
    SHOULD
    use a
    group
    to form logical collection of items in a
    widget
    such as children in a tree widget forming a collection of siblings in a hierarchy, or a collection of items having the same container in a directory. However, when a
    group
    is used in the context of list, authors
    MUST
    limit its children to
    listitem
    elements. Therefore, proper handling of
    group
    by authors and assistive technologies is determined by the context in which it is provided.
    Authors
    MAY
    nest
    group
    elements. If a section is significant enough to warrant inclusion in the web page's table of contents, the author
    SHOULD
    assign the section a
    role
    of
    region
    or a
    standard landmark role
    heading
    (role)
    A heading for a section of the page.
    Often,
    heading
    elements will be referenced with the
    aria-labelledby
    attribute
    of the section for which they serve as a heading. If headings are organized into a logical outline, the
    aria-level
    attribute is used to indicate the nesting level.
    img
    (role)
    A container for a collection of
    elements
    that form an image.
    An
    img
    can contain captions and descriptive text, as well as multiple image files that when viewed together give the impression of a single image. An
    img
    represents a single graphic within a document, whether or not it is formed by a collection of drawing
    objects
    . In order for elements with a
    role
    of
    img
    be
    perceivable
    , authors
    MUST
    provide alternative text or a label determined by the
    accessible name calculation
    input
    (abstract role)
    A generic type of
    widget
    that allows user input.
    landmark
    (abstract role)
    A perceivable
    section
    containing content that is relevant to a specific, author-specified purpose and sufficiently important that users will likely want to be able to navigate to the section easily and to have it listed in a summary of the page. Such a page summary could be generated dynamically by a user agent or assistive technology.
    Authors designate the purpose of the content by assigning a role that is a subclass of the landmark role and, when needed, by providing a brief, descriptive label.
    Elements with a role that is a subclass of the landmark role are known as landmark regions or navigational landmark regions.
    Assistive technologies
    SHOULD
    enable users to quickly navigate to landmark regions. Mainstream
    user agents
    MAY
    enable users to quickly navigate to landmark regions.
    Note
    landmark
    is an abstract role used for the ontology. Authors should not use this role in content.
    link
    (role)
    An interactive reference to an internal or external resource that, when activated, causes the user agent to navigate to that resource. See related
    button
    If this is a native link in the host language (such as an
    HTML
    anchor with an
    href
    value), activating the link causes the
    user agent
    to navigate to that resource. If this is a simulated link, the web application author is responsible for managing navigation.
    Note
    If pressing the link triggers an action but does not change browser focus or page location, authors are advised to consider using the
    button
    role instead of the
    link
    role.
    list
    (role)
    section
    containing
    listitem
    elements. See related
    listbox
    Lists contain children whose
    role
    is
    listitem
    , or elements whose
    role
    is
    group
    which in turn contains children whose
    role
    is
    listitem
    listbox
    (role)
    widget
    that allows the user to select one or more items from a list of choices. See related
    combobox
    and
    list
    Items within the list are static and, unlike standard
    HTML
    select
    elements
    , may contain images. List boxes contain children whose
    role
    is
    option
    To be
    keyboard accessible
    , authors
    SHOULD
    manage focus of descendants for all instances of this
    role
    , as described in
    Managing Focus
    Elements with the role
    listbox
    have an implicit
    aria-orientation
    value of
    vertical
    log
    (role)
    A type of
    live region
    where new information is added in meaningful order and old information may disappear. See related
    marquee
    Examples include chat logs, messaging history, game log, or an error log. In contrast to other live regions, in this
    role
    there is a
    relationship
    between the arrival of new items in the log and the reading order. The log contains a meaningful sequence and new information is added only to the end of the log, not at arbitrary points.
    Elements with the role
    log
    have an implicit
    aria-live
    value of
    polite
    main
    (role)
    The main content of a document.
    This marks the content that is directly related to or expands upon the central topic of the document. The
    main
    role
    is a non-obtrusive alternative for "skip to main content" links, where the navigation option to go to the main content (or other
    landmarks
    ) is provided by the
    user agent
    through a dialog or by
    assistive technologies
    User agents
    SHOULD
    treat elements with the role of
    main
    as navigational landmarks.
    Within any
    document
    or
    application
    , the author
    SHOULD
    mark no more than one
    element
    with the
    main
    role.
    Note
    Because
    document
    and
    application
    elements can be nested in the
    DOM
    , they may have multiple
    main
    elements as
    DOM
    descendants, assuming each of those is associated with different document nodes, either by a
    DOM
    nesting (e.g.,
    document
    within
    document
    ) or by use of the
    aria-owns
    attribute.
    marquee
    (role)
    A type of
    live region
    where non-essential information changes frequently. See related
    log
    Common usages of
    marquee
    include stock tickers and ad banners. The primary difference between a
    marquee
    and a
    log
    is that logs usually have a meaningful order or sequence of important content changes.
    Elements with the role
    marquee
    have an implicit
    aria-live
    value of
    off
    math
    (role)
    Content that represents a mathematical expression.
    Content with the role
    math
    is intended to be marked up in an accessible format such as
    MathML
    MathML3
    ], or with another type of textual representation such as TeX or LaTeX, which can be converted to an accessible format by native browser implementations or a polyfill library.
    While it is not ideal to use an image of a mathematical expression, there exists a significant amount of legacy content where images are used to represent mathematical expressions. Authors
    SHOULD
    ensure that images of math are labeled by text that describes the mathematical expression as it might be spoken.
    Note
    Browsers that support native implementations of
    MathML
    are able to provide a more robust, accessible math experience than can be accomplished with plain text approximations of math. Some rendering engines have close integration with screen readers that allow spacial touch exploration of the formula and refreshable braille display output in the
    Nemeth Braille
    format. This level of integration is not supported with images of mathematical formulas, even if the author provides a plain text approximation.
    At the time of this writing, some mainstream browsers do not support
    MathML
    natively, and must be retrofit using a JavaScript polyfill library. When authoring math content, use native
    MathML
    wherever possible, and test thoroughly. Use a polyfill library or provide a fallback image with a text alternative approximation if necessary.
    MathML
    Example with Embedded TeX Annotation
    Example 6
    math
    xmlns
    "http://www.w3.org/1998/Math/MathML"
    mrow
    mi
    mi
    mo
    mo
    mfrac
    mrow
    mo
    form
    "prefix"
    mo
    mi
    mi
    mo
    mo
    msqrt
    msup
    mi
    mi
    mn
    mn
    msup
    mo
    mo
    mn
    mn
    mo

    mo
    mi
    mi
    mo

    mo
    mi
    mi
    msqrt
    mrow
    mrow
    mn
    mn
    mo

    mo
    mi
    mi
    mrow
    mfrac
    mrow
    annotation
    encoding
    "TeX"
    x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
    annotation
    math
    Plain
    HTML
    or Polyfill
    DOM
    Result of the
    MathML
    Quadratic Formula
    If a rendering engine does not support a native math format such as
    MathML
    , authors
    MAY
    use JavaScript to downgrade the content to a format the browser can display, such as this
    HTML
    image using a data
    URI
    and plain text alternative.
    Example 7
    img
    role
    "math"
    src
    "..."
    alt
    "x=⟮−b±√⟮b²−4ac⟯⟯÷2a"
    (role)
    A collection of navigational
    elements
    (usually links) for navigating the document or related documents.
    User agents
    SHOULD
    treat elements with the role of
    as navigational
    landmarks
    none
    (role)
    An
    element
    whose implicit native role semantics will not be mapped to the
    API
    . See synonym
    presentation
    Note
    Note regarding the ARIA 1.1
    none
    role.
    In ARIA 1.1, the working group introduced
    none
    as a synonym to the
    presentation
    role, due to author confusion surrounding the intended meaning of the word "presentation" or "presentational." Many individuals erroneously consider
    role="presentation"
    to be synonymous with
    aria-hidden="true"
    , and we believe
    role="none"
    conveys the actual meaning more unambiguously.
    Until implementations include sufficient support for
    role="none"
    , web authors are advised to use the
    presentation
    role alone
    role="presentation"
    or redundantly as a fallback to the
    none
    role
    role="none presentation"
    note
    (role)
    A section whose content is parenthetic or ancillary to the main content of the resource.
    option
    (role)
    A selectable item in a
    select
    list.
    Authors
    MUST
    ensure
    elements
    with
    role
    option
    are contained in, or owned by, an element with the
    role
    listbox
    . Options not associated with a
    listbox
    might not be correctly mapped to an
    API
    Elements with the role
    option
    have an implicit
    aria-selected
    value of
    false
    presentation
    (role)
    An
    element
    whose implicit native role semantics will not be mapped to the
    API
    . See synonym
    none
    Note
    Note regarding the ARIA 1.1
    none
    role.
    In ARIA 1.1, the working group introduced
    none
    as a synonym to the
    presentation
    role, due to author confusion surrounding the intended meaning of the word "presentation" or "presentational." Many individuals erroneously consider
    role="presentation"
    to be synonymous with
    aria-hidden="true"
    , and we believe
    role="none"
    conveys the actual meaning more unambiguously.
    Until implementations include sufficient support for
    role="none"
    , web authors are advised to use the
    presentation
    role alone
    role="presentation"
    or redundantly as a fallback to the
    none
    role
    role="none presentation"
    The intended use is when an element is used to change the look of the page but does not have all the functional, interactive, or structural relevance implied by the element type, or may be used to provide for an accessible fallback in older browsers that do not support
    WAI-ARIA
    Example use cases:
    An element whose content is completely presentational (like a spacer image, decorative graphic, or clearing element);
    An image that is in a container with the
    img
    role
    and where the full text alternative is available and is marked up with
    aria-labelledby
    and (if needed)
    aria-describedby
    An element used as an additional markup "hook" for
    CSS
    ; or
    A layout table and/or any of its associated rows, cells, etc.
    For any element with a role of presentation and which is not focusable, the user agent
    MUST NOT
    expose the implicit native semantics of the element (the role and its states and properties) to accessibility
    APIs
    . However, the user agent
    MUST
    expose content and descendant elements that do not have an explicit or inherited role of presentation. Thus, the
    presentation
    role causes a given element to be treated as having no role or to be removed from the accessibility tree, but does not cause the content contained within the element to be removed from the accessibility tree.
    For example, according to an accessibility
    API
    , the following markup elements would appear to have identical role semantics (no role) and identical content.
    Example 8
    h1
    role
    "presentation"
    Sample Content
    h1
    span
    Sample Content
    span
    span
    role
    "presentation"
    Sample Content
    span
    Sample Content
    The
    presentation
    role is used on an element that has implicit native semantics, meaning that there is a default accessibility
    API
    role for the element. Some elements are only complete when additional descendant elements are provided. For example, in
    HTML
    , table elements (matching the
    grid
    role) require
    tr
    descendants (the
    row
    role
    ), which in turn require
    th
    or
    td
    children (the
    gridcell
    columnheader
    rowheader
    roles). Similarly, lists require list item children. The descendant elements that complete the semantics of an element are described in
    WAI-ARIA
    as
    required owned elements
    When an explicit or inherited role of
    presentation
    is applied to an element with the implicit semantic of a
    WAI-ARIA
    role that has
    required owned elements
    , in addition to the element with the explicit role of
    presentation
    , the user agent
    MUST
    apply an inherited role of presentation to any owned elements that do not have an explicit role defined. Also, when an explicit or inherited role of presentation is applied to a host language element which has required children as defined by the host language specification, in addition to the element with the explicit role of presentation, the user agent
    MUST
    apply an inherited role of presentation to any required children that do not have an explicit role defined.
    In
    HTML
    , the
    img
    element
    is treated as a single entity regardless of the type of image file. Consequently, using
    role="presentation"
    or
    role="none"
    on an
    HTML
    img
    is equivalent to using
    aria-hidden="true"
    . In order to make the image contents accessible, authors can embed the object using an
    object
    or
    iframe
    element
    , or use inline
    SVG
    code, and follow the accessibility guidelines for the image content.
    For any element with an explicit or inherited role of presentation and which is not focusable, user agents
    MUST
    ignore role-specific
    WAI-ARIA
    states and properties for that element. For example, in
    HTML
    , a
    ul
    or
    ol
    element with a role of
    presentation
    will have the implicit native semantics of its
    li
    elements removed because the
    list
    role to which the
    ul
    or
    ol
    corresponds has a
    required owned element
    of
    listitem
    . Likewise, although an
    HTML
    table
    element does not have an implicit native semantic role corresponding directly to a
    WAI-ARIA
    role, the implicit native semantics of its
    thead
    tbody
    tfoot
    tr
    th
    td
    descendants will also be removed, because the
    HTML
    specification indicates that these are required structural descendants of the
    table
    element.
    Note
    Only the implicit native semantics of elements that correspond to
    WAI-ARIA
    required owned elements
    are removed. All other content remains intact, including nested tables or lists, unless those elements also have a explicit role of
    presentation
    applied.
    For example, according to an accessibility
    API
    , the following markup elements would appear to have identical role semantics (no roles) and identical content.
    Example 9
    ul
    role
    "presentation"
    li
    Sample Content
    li
    li
    More Sample Content
    li
    ul
    foo
    foo
    Sample Content
    foo
    foo
    More Sample Content
    foo
    foo
    Note
    There are other
    WAI-ARIA
    roles with required children for which this situation is applicable (e.g., radiogroups and listboxes), but tables and lists are the most common real-world cases in which the presentation inheritance is likely to apply.
    For any element with an explicit or inherited role of
    presentation
    , user agents
    MUST
    apply an inherited role of
    presentation
    to all host-language-specific labeling elements for the presentational element. For example, a
    table
    element with a role of
    presentation
    will have the implicit native semantics of its
    caption
    element removed, because the caption is merely a label for the presentational table.
    Authors
    SHOULD NOT
    provide meaningful alternative text (for example, use
    alt=""
    in
    HTML
    ) when the
    presentation
    role is applied to an image.
    In the following code sample, the containing
    img
    and is appropriately labeled by the caption paragraph. In this example the
    img
    element can be marked as presentation because the role and the text alternatives are provided by the containing element.
    Example 10
    "img"
    aria-labelledby=
    "caption"
    img
    src
    "example.png"
    role
    "presentation"
    alt
    ""
    id
    "caption"
    A visible text caption labeling the image.
    div
    In the following code sample, because the anchor (
    HTML
    element) is acting as the treeitem, the list item (
    HTML
    li
    element) is assigned an explicit
    WAI-ARIA
    role of presentation to override the user agent's implicit native semantics for list items.
    Example 11
    ul
    role
    "tree"
    li
    role
    "presentation"
    role
    "treeitem"
    aria-expanded
    "true"
    An expanded tree node
    li
    ul
    Presentational Roles Conflict Resolution
    There are a number of ways presentational role conflicts are resolved.
    Host languages elements, having implicit presentational roles for which no roles, may be applied,
    MUST
    never be exposed to in the accessibility tree. With this exception, user agents
    MUST
    always expose global
    WAI-ARIA
    states and properties to accessibility
    APIs
    . In this case, the user agent ignores the
    presentation
    role and exposes the element according to its implicit native semantics. However, user agents
    MUST
    ignore any non-global, role-specific
    WAI-ARIA
    states and properties, unless it is on an inherited presentational role where an explicit role is applied.
    For example,
    aria-haspopup
    is a global attribute and would always be applied;
    aria-level
    is not a global attribute and would therefore only apply if the element was not in a presentational state.
    Example 12
    h1
    role
    "presentation"
    aria-haspopup
    "true"
    Sample Content
    h1
    h1
    role
    "presentation"
    aria-level
    "2"
    Sample Content
    h1
    Explicit roles on a descendant or
    owned
    element override the inherited role of
    presentation
    , and cause the owned element to behave as any other element with an explicit role. If the action of exposing the implicit role causes the accessibility tree to be malformed, the expected results are undefined and the user agent
    MAY
    resort to an internal recovery mechanism to repair the accessibility tree.
    If an element with a role of presentation is focusable, or otherwise interactive, user agents
    MUST
    ignore the normal effect of the role and expose the element with implicit native semantics, in order to ensure that the element is both
    understandable
    and
    operable
    User agents
    MUST
    always expose global
    WAI-ARIA
    states and properties to accessibility
    APIs
    , even if an element has an explicit or inherited role of presentation. In this case, the user agent ignores the
    presentation
    role and exposes the element according to its implicit native semantics. However, user agents
    MUST
    ignore any non-global, role-specific
    WAI-ARIA
    states and properties, unless it is on an inherited presentational role where an explicit role is applied.
    progressbar
    (role)
    An
    element
    that displays the progress status for tasks that take a long time.
    A progressbar indicates that the user's request has been received and the application is making progress toward completing the requested action. The author
    SHOULD
    supply
    values
    for
    aria-valuenow
    aria-valuemin
    , and
    aria-valuemax
    , unless the value is indeterminate, in which case the author
    SHOULD
    omit the
    aria-valuenow
    attribute. Authors
    SHOULD
    update these values when the visual progress indicator is updated. If the
    progressbar
    is describing the loading progress of a particular region of a page, the author
    SHOULD
    use
    aria-describedby
    to point to the status, and set the
    aria-busy
    attribute to
    true
    on the region until it is finished loading. It is not possible for the user to alter the value of a
    progressbar
    because it is always readonly.
    Note
    Assistive technologies generally will render the value of
    aria-valuenow
    as a percent of a range between the value of
    aria-valuemin
    and
    aria-valuemax
    , unless
    aria-valuetext
    is specified. It is best to set the values for
    aria-valuemin
    aria-valuemax
    , and
    aria-valuenow
    in a manner that is appropriate for this calculation.
    radio
    (role)
    A checkable input in a group of elements with the same role, only one of which can be checked at a time.
    Authors
    SHOULD
    ensure that
    elements
    with role
    radio
    are explicitly grouped in order to indicate which ones affect the same value. This is achieved by enclosing the radio elements in an element with role
    radiogroup
    . If it is not possible to make the radio buttons
    DOM
    children of the
    radiogroup
    , authors
    SHOULD
    use the
    aria-owns
    attribute
    on the
    radiogroup
    element to indicate the
    relationship
    to its children.
    radiogroup
    (role)
    A group of
    radio
    buttons.
    radiogroup
    is a type of
    select
    list that can only have a single entry checked at any one time. Authors
    SHOULD
    enforce that only one radio button in a group can be checked at the same time. When one item in the group is checked, the previously checked item becomes unchecked (its
    aria-checked
    attribute
    becomes
    false
    ).
    range
    (abstract role)
    An input representing a range of values that can be set by the user.
    Note
    range
    is an abstract role used for the ontology. Authors should not use this role in content.
    region
    (role)
    A perceivable
    section
    containing content that is relevant to a specific, author-specified purpose and sufficiently important that users will likely want to be able to navigate to the section easily and to have it listed in a summary of the page. Such a page summary could be generated dynamically by a user agent or assistive technology.
    Authors
    SHOULD
    limit use of the region role to sections containing content with a purpose that is not accurately described by one of the other
    landmark
    roles, such as
    main
    complementary
    , or
    Authors
    MUST
    give each element with role region a brief label that describes the purpose of the content in the region. Authors
    SHOULD
    reference a visible label with
    aria-labelledby
    if a visible label is present. Authors
    SHOULD
    include the label inside of a heading whenever possible. The heading
    MAY
    be an instance of the standard host language heading element or an instance of an element with role
    heading
    Assistive technologies
    SHOULD
    enable users to quickly navigate to elements with role region. Mainstream
    user agents
    MAY
    enable users to quickly navigate to elements with role region.
    roletype
    (abstract role)
    The base
    role
    from which all other roles in this
    taxonomy
    inherit.
    Properties of this role describe the structural and functional purpose of
    objects
    that are assigned this role (known in
    RDF
    terms as "instances"). A role is a concept that can be used to understand and operate instances.
    Note
    roletype
    is an abstract role used for the ontology. Authors should not use this role in content.
    row
    (role)
    A row of cells in a tabular container.
    Rows contain
    cell
    or
    gridcell
    elements
    , and thus serve to organize the
    table
    or
    grid
    In a
    treegrid
    , authors
    MAY
    mark rows as expandable, using the
    aria-expanded
    attribute
    to indicate the present status. This is not the case for an ordinary
    table
    or
    grid
    , in which the
    aria-expanded
    attribute is not present.
    Authors
    MUST
    ensure
    elements
    with
    role
    row
    are contained in, or
    owned
    by, an element with the role
    table
    grid
    rowgroup
    , or
    treegrid
    rowgroup
    (role)
    A structure containing one or more row elements in a tabular container.
    The
    rowgroup
    role establishes a
    relationship
    between
    owned
    row
    elements. It is a structural equivalent to the
    thead
    tfoot
    , and
    tbody
    elements in an
    HTML
    table
    element
    Authors
    MUST
    ensure
    elements
    with
    role
    rowgroup
    are contained in, or
    owned
    by, an element with the role
    table
    or
    grid
    Note
    The
    rowgroup
    role exists, in part, to support role symmetry in
    HTML
    , and allows for the propagation of presentation inheritance on
    HTML
    table
    elements with an explicit
    presentation
    role applied.
    Note
    This role does not differentiate between types of row groups (e.g.,
    thead
    vs.
    tbody
    ), but an issue has been raised for
    WAI-ARIA
    2.0.
    (role)
    landmark
    region that contains a collection of items and objects that, as a whole, combine to create a search facility. See related
    form
    and
    searchbox
    A search region may be a mix of host language form controls, scripted controls, and hyperlinks.
    User agents
    SHOULD
    treat elements with the role of
    as navigational
    landmarks
    searchbox
    (role)
    A type of textbox intended for specifying search criteria. See related
    textbox
    and
    section
    (abstract role)
    A renderable structural containment unit in a document or application.
    Note
    section
    is an abstract role used for the ontology. Authors should not use this role in content.
    sectionhead
    (abstract role)
    A structure that labels or summarizes the topic of its related section.
    Note
    sectionhead
    is an abstract role used for the ontology. Authors should not use this role in content.
    select
    (abstract role)
    A form widget that allows the user to make selections from a set of choices.
    Note
    select
    is an abstract role used for the ontology. Authors should not use this role in content.
    separator
    (role)
    A divider that separates and distinguishes sections of content or groups of menuitems.
    There are two types of separators: a static
    structure
    that provides only a visible boundary and a focusable, interactive
    widget
    that is also moveable. If a
    separator
    is not focusable, it is revealed to
    assistive technologies
    as a static structural element. For example, a static
    separator
    can be used to help visually divide two groups of menu items in a menu or to provide a horizontal rule between two sections of a page.
    Authors
    MAY
    make a
    separator
    focusable to create a
    widget
    that both provides a visible boundary between two sections of content and enables the user to change the relative size of the sections by changing the position of the
    separator
    . A variable
    separator
    widget can be moved continuously within a range, whereas a fixed
    separator
    widget supports only two discrete positions. Typically, a fixed
    separator
    widget is used to toggle one of the sections between expanded and collapsed states.
    If the
    separator
    is focusable, authors
    MUST
    set the value of
    aria-valuenow
    to a
    number
    reflecting the current position of the
    separator
    and update that value when it changes. Authors
    SHOULD
    also provide the value of
    aria-valuemin
    if it is not
    and the value of
    aria-valuemax
    if it is not
    100
    . If missing or not a number, the implicit values of these attributes are as follows:
    The implicit value of
    aria-valuemin
    is
    The implicit value of
    aria-valuemax
    is
    100
    The implicit value of
    aria-valuenow
    is
    50
    In applications where there is more than one focusable
    separator
    , authors
    SHOULD
    provide an accessible name for each one.
    Elements with the role
    separator
    have an implicit
    aria-orientation
    value of
    horizontal
    slider
    (role)
    A user input where the user selects a value from within a given range.
    A slider represents the current value and range of possible values via the size of the slider and position of the thumb. It is typically possible to add or subtract to the value by using directional keys such as arrow keys.
    Authors
    MUST
    set the
    aria-valuemin
    aria-valuemax
    , and
    aria-valuenow
    attributes. If missing, their implicit values follow the same rules as the
    HTML
    range input type
    If
    aria-valuemin
    is missing or not a
    number
    , it defaults to 0 (zero).
    If
    aria-valuemax
    is missing or not a
    number
    , it defaults to 100.
    If
    aria-valuenow
    is missing or not a
    number
    , it defaults to the value half way between
    aria-valuemin
    and
    aria-valuemax
    If
    aria-valuenow
    is present but less than
    aria-valuemin
    , it defaults to the value of
    aria-valuemin
    If
    aria-valuenow
    is present but greater than
    aria-valuemax
    , it defaults to the value of
    aria-valuemax
    Elements with the role
    slider
    have an implicit
    aria-orientation
    value of
    horizontal
    spinbutton
    (role)
    A form of
    range
    that expects the user to select from among discrete choices.
    spinbutton
    typically allows the user to select from the given range through the use of an up and down button on the keyboard. Visibly, the current value is incremented or decremented until a maximum or minimum value is reached. Authors
    SHOULD
    ensure this functionality is accomplished programmatically through the use of
    up
    and
    down
    arrows on the keyboard.
    Although a
    spinbutton
    is similar in appearance to many presentations of
    select
    , it is advisable to use
    spinbutton
    when working with known ranges (especially in the case of large ranges) as opposed to distinct options. For example, a
    spinbutton
    representing a range from 1 to 1,000,000 would provide much better performance than a
    select
    widget
    representing the same values.
    Authors
    MAY
    create a
    spinbutton
    with children or owned elements, but
    MUST
    limit those elements to a
    textbox
    and/or two
    buttons
    To be
    keyboard accessible
    , authors
    SHOULD
    manage focus of descendants for all instances of this
    role
    , as described in
    Managing Focus
    . When a
    spinbutton
    receives focus, authors
    SHOULD
    ensure focus is placed on the
    textbox
    element if one is present, and on the
    spinbutton
    itself otherwise. Authors
    SHOULD NOT
    include contained
    button
    elements in the primary navigation ring, e.g., the Tab ring in
    HTML
    , because they are superfluous for people using keyboard devices.
    Authors
    MUST
    set the
    aria-valuenow
    attribute. Authors
    SHOULD
    set the
    aria-valuemin
    attribute when there is a minimum value, and the
    aria-valuemax
    attribute when there is a maximum value. If missing or not a
    number
    , the implicit values of these attributes are as follows:
    The implicit value of
    aria-valuemin
    is that there is no minimum value.
    The implicit value of
    aria-valuemax
    is that there is no maximum value.
    The implicit value of
    aria-valuenow
    is
    status
    (role)
    A type of
    live region
    whose content is advisory information for the user but is not important enough to justify an
    alert
    , often but not necessarily presented as a status bar.
    Authors
    SHOULD
    ensure an element with role
    status
    does not receive focus as a result of change in status.
    Status is a form of
    live region
    . If another part of the page controls what appears in the status, authors
    SHOULD
    make the
    relationship
    explicit with the
    aria-controls
    attribute
    Assistive technologies
    MAY
    reserve some cells of a Braille display to render the status.
    Elements with the role
    status
    have an implicit
    aria-live
    value of
    polite
    and an implicit
    aria-atomic
    value of
    true
    structure
    (abstract role)
    A document structural
    element
    Roles
    for document structure support the accessibility of dynamic web content by helping
    assistive technologies
    determine active content versus static document content. Structural roles by themselves do not all map to
    APIs
    , but are used to create
    widget
    roles or assist content adaptation for assistive technologies.
    Note
    structure
    is an abstract role used for the ontology. Authors should not use this role in content.
    switch
    (role)
    A type of checkbox that represents on/off values, as opposed to checked/unchecked values. See related
    checkbox
    The
    aria-checked
    attribute
    of a
    switch
    indicates whether the input is on (
    true
    ) or off (
    false
    ). The
    mixed
    value is invalid, and user agents
    MUST
    treat a
    mixed
    value as equivalent to
    false
    for this role.
    Note
    switch
    provides approximately the same functionality as a
    checkbox
    and toggle
    button
    , but makes it possible for assistive technologies to present the widget in a fashion consistent with its on-screen appearance.
    tab
    (role)
    A grouping label providing a mechanism for selecting the tab content that is to be rendered to the user.
    If a
    tabpanel
    or item in a
    tabpanel
    has focus, the associated
    tab
    is the currently active tab in the
    tablist
    , as defined in
    Managing Focus
    tablist
    elements, which contain a set of associated
    tab
    elements, are typically placed near a series of
    tabpanel
    elements, usually preceding it. See the
    WAI-ARIA
    Authoring Practices
    wai-aria-practices-1.1
    ] for details on implementing a tab set design pattern.
    Authors
    MUST
    ensure
    elements
    with
    role
    tab
    are contained in, or
    owned
    by, an element with the role
    tablist
    Authors
    SHOULD
    ensure the
    tabpanel
    associated with the currently active tab is
    perceivable
    to the user.
    For a single-selectable
    tablist
    , authors
    SHOULD
    hide other
    tabpanel
    elements
    from the user until the user selects the tab associated with that tabpanel. For a multi-selectable
    tablist
    , authors
    SHOULD
    ensure each visible
    tabpanel
    has its
    aria-expanded
    attribute
    set to
    true
    , and that the remaining hidden
    tabpanel
    elements have their
    aria-expanded
    attributes set to
    false
    In either case, authors
    SHOULD
    ensure that a selected tab has its
    aria-selected
    attribute set to
    true
    , that inactive tab elements have their
    aria-selected
    attribute set to
    false
    , and that the currently selected tab provides a visual indication that it is selected. In the absence of an
    aria-selected
    attribute on the current tab,
    user agents
    SHOULD
    indicate to
    assistive technologies
    through the platform
    API
    that the currently focused tab is selected.
    table
    (role)
    section
    containing data arranged in rows and columns. See related
    grid
    The
    table
    role is intended for tabular containers which are not interactive. If the tabular container maintains a selection state, provides its own two-dimensional navigation, or allows the user to rearrange or otherwise manipulate its contents or the display thereof, authors
    SHOULD
    use
    grid
    or
    treegrid
    instead.
    Authors
    SHOULD
    prefer the use of the host language's semantics for table whenever possible, such as the
    HTML
    table
    element.
    tablist
    (role)
    A list of
    tab
    elements
    , which are references to
    tabpanel
    elements.
    To be
    keyboard accessible
    , authors
    SHOULD
    manage focus of descendants for all instances of this
    role
    , as described in
    Managing Focus
    For a single-selectable
    tablist
    , authors
    SHOULD
    hide other
    tabpanel
    elements
    from the user until the user selects the tab associated with that tabpanel. For a multi-selectable
    tablist
    , authors
    SHOULD
    ensure each visible
    tabpanel
    has its
    aria-expanded
    attribute
    set to
    true
    , and that the remaining hidden
    tabpanel
    elements have their
    aria-expanded
    attributes set to
    false
    tablist
    elements are typically placed near usually preceding, a series of
    tabpanel
    elements. See the
    WAI-ARIA
    Authoring Practices
    wai-aria-practices-1.1
    ] for details on implementing a tab set design pattern.
    Elements with the role
    tablist
    have an implicit
    aria-orientation
    value of
    horizontal
    tabpanel
    (role)
    A container for the resources associated with a
    tab
    , where each
    tab
    is contained in a
    tablist
    Authors
    SHOULD
    associate a
    tabpanel
    element
    with its
    tab
    , either by using the
    aria-controls
    attribute on the tab to reference the tab panel, or by using the
    aria-labelledby
    attribute on the tab panel to reference the tab.
    tablist
    elements are typically placed near, usually preceding, a series of
    tabpanel
    elements. See the
    WAI-ARIA
    Authoring Practices
    wai-aria-practices-1.1
    ] for details on implementing a tab set design pattern.
    term
    (role)
    A word or phrase with a corresponding definition. See related
    definition
    The
    term
    role is used to explicitly identify a word or phrase for which a
    definition
    has been provided by the author or is expected to be provided by the user.
    Authors
    SHOULD NOT
    use the
    term
    role on interactive elements such as links because doing so could prevent users of
    assistive technologies
    from interacting with those elements.
    textbox
    (role)
    A type of input that allows free-form text as its value.
    If the
    aria-multiline
    attribute
    is
    true
    , the
    widget
    accepts line breaks within the input, as in an
    HTML
    textarea
    . Otherwise, this is a simple text box. The intended use is for languages that do not have a text input
    element
    , or cases in which an element with different
    semantics
    is repurposed as a text field.
    Note
    In most user agent implementations, the default behavior of the
    ENTER
    or
    RETURN
    key is different between the single-line and multi-line text fields in
    HTML
    . When user has focus in a single-line

    element, the keystroke usually submits the form. When user has focus in a multi-line