Copyright © 2006 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
Accessibility is often dependent on Assistive Technology (AT), tools that provide alternate modes of access for people with disabilities by transforming complex user interfaces into an alternate presentation. This transformation requires information about the role, state, and other semantics of specific portions of a document to be able to transform them appropriately. Rich Web applications typically rely on hybrid technologies such as DHTML and AJAX that combine multiple technologies: SVG, HTML, CSS, and JavaScript for example. The various technologies provide much but not all of the information needed to support AT adequately. This specification provides a Web-standard way to identify roles in dynamic Web content. The result is an interoperable way to associate behaviors and structure with existing markup.
This document and the States and Properties Module for Accessible Rich Internet Applications (WAI-ARIA States and Properties) [ARIA-STATE] fill information gaps identified by the Roadmap for Accessible Rich Internet Applications (WAI-ARIA Roadmap) [ARIA-ROADMAP]. The role attribute defined in the XHTML Role Attribute Module [XHTML-ROLES] is the preferred way to expose these roles in XHTML applications. This specification provides an ontology of roles that can be used to improve the accessibility and interoperability of Web Content and Applications.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This document is a Working Draft by the Protocols & Formats Working Group of the Web Accessibility Initiative. This version provides incremental new features described in the history of changes to WAI-ARIA Roles. Feedback on the model set out here is important to the success of the Web community in creating Rich Internet Applications with full and facile accessibility. The PFWG would like to know, in particular, if:
When addressing these questions, please consider them in the context of the companion documents mentioned above in the abstract. Comments on this document may be sent to public-pfwg-comments@w3.org (Archive).
To assist you in your review, refer to the history of changes to WAI-ARIA Roles.
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
The disclosure obligations of the Participants of this group are described in the charter.
This section is informative.
Roles are a simple way for an author to make custom widgets (new interactive elements) accessible, usable and interoperable.
Complex user interfaces become inaccessible because adaptive technologies, that provide alternative access, are often left guessing at the semantics behind portions of a document (see the Roadmap for Accessible Rich Internet Applications [ARIA-ROADMAP]). Using this specification you can assign a role name to an object that maps the object to the accessibility framework on the native platform and provides semantics needed by adaptive technologies.
This role taxonomy currently includes interaction widget and structural document objects. The supporting taxonomy is encoded in Resource Description Framework (RDF) [RDF] and Web Ontology Language (OWL) [OWL]. The role taxonomy encodes inheritance information and details of what states and properties each role support. When possible, role information is mapped to platform accessibility API's.
Roles are element types and should not change with time or user actions. For assigning meaningful properties that change with time and events see States and Properties Module for Accessible Rich Internet Applications [ARIA-STATE].
This section is informative.
In this example, a table has been assigned the role of a grid or spreadsheet.
<table id="table1" role="wairole:grid" > ... </table>
Encapsulated in the role information is information for the platform accessibility infrastructure and/or accessibility tooling that enables it to be properly treated. (In this case that multiselectable is supported and cells may be editable.)
A full spreadsheet example is available online at http://www.mozilla.org/access/dhtml/spreadsheet
Roles can be embedded in any host language, e.g. XHTML 1.1 [XHTML]. In many case Roles will work well with other supporting technologies, such as States and Properties for Accessible Rich Internet Applications [ARIA-STATE] and XML Events [XML-EVENTS]
This section is informative.
While some terms are defined in place, the following definitions are used throughout this document. Familiarity with W3C XHTML 1.1 Recommendation [XHTML] and the W3C XML 1.0 Recommendation [XML] is highly recommended.
This section is informative.
This draft currently handles two aspects of roles - GUI functionality and structural relationships of the element. For more information see the Roadmap for Accessible Rich Internet Applications [ARIA-ROADMAP] implementation examples for the use of roles making dynamically generated content accessible.
This taxonomy is designed in-part to support the common roles found in platform accessibility API (Accessible Programmable Interfaces) frameworks. Reference to roles found in this taxonomy by dynamic Web content may be used to support dynamic accessible content authoring, interoperability with assistive technologies.
The schema to support this standard has been designed to be extended so that custom roles can be created while providing a common schema for describing how to interact accessibly with a custom role. Note that much of this could be formalized in XML Schema [XSD]. However, being able to define similarities between roles, such as baseConcepts and more descriptive definitions would not be available in XSD.
At some point the working group intends to add roles for A, Adding concepts in the type of content for adaptation to the user scenario and B, Knowledge representation of Web content.
This section is normative.
This specification defines a Taxonomy called Roles. The Roles Taxonomy uses the XML Namespace [XMLNAMES] identifier
http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#
All examples are informative. Examples in this document that use the XML Namespace prefix "wairoles" all assume a valid xmlns declaration such as
xmlns:wairoles="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
in the document involved.
The remainder of this section describes the class's instances and properties in this taxonomy, the semantics, and provides an RDF [RDF] Schema.
Editorial Note: We need to look at what changes need to be made to the namespaces as a result of the name change to ARIA.
In this example a span has been used to create a tri-state checkbox (a checkbox control that has three possible states). A role is used to make the behavior of this simple widget known to the user agent. Properties that may change with user actions (such as checked) use States and Properties Module for Accessible Rich Internet Applications ([ARIA-STATE], Section 3.1.1.1).
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wairole="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
xmlns:aaa="http://www.w3.org/2005/07/aaa" >
<head>...</head>
<body>
...
<span class="checkboxtristate" id="chbox1" role="wairole:checkboxtristate" aaa:checked="mixed"
onkeydown="return checkBoxEvent(event);" onclick="return checkBoxEvent(event);" tabindex="0" >
A checkbox label
</span>
...
</body>
</html>
In this example the support schema will define a checkboxtristate as a type of checkbox (which itself is defined as a type of select). Although it inherits all the supported states of a select, we also expect it to support multiselect and checked set to mixed.
Roles are defined and described by their properties. Properties define the structural function of a role, such as: What a roles is, concepts behind it , what it can contain, what it 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, allowed states and required states.
The are three properties that describe the relationship between concepts. They are:
Type and subclasses - (from RDF Schema [RDFS]) this implies inheritance, which means, among other things, the inheritance of limitations and properties. Other than well known stable specifications, inheritance may be restricted to items defined inside this specification so that items can not be changed and affect inherited classes.
For example: Buttonundo is a subclass or type of a button. If we change the properties and expected behavior of a button then the properties and behavior of buttonundo will also change.
relatedConcept - A relatedConcept is a similar or related idea from other specifications. Concepts that are related are not necessarily identical. relatedConcepts do not inherit properties from each other. Hence if the definition of a type changes, the properties, behavior and definition of a relatedConcept is not affected.
For example: A grid is like a table. Therefore, a grid has a relatedConcept of a table as defined at http://www.w3.org/TR/html4/struct/tables.html#edef-TABLE. However if the definition of table is modified our definition of a grid will not be affected.
baseConcept - A baseConcept is like a relatedConcept except that baseConcepts are almost identical. BaseConcept is similar to type, but without inheritance of limitations and properties. baseConcepts are designed as a substitute for inheritance for external concepts.
For example: the checkbox defined in this document has the same functionality and anticipated behavior as a checkbox defined in http://www.w3.org/MarkUp/HTML#checkbox.
Therefore, a checkbox has a baseConcept of a checkbox as defined at http://www.w3.org/MarkUp/HTML#checkbox. However, if http://www.w3.org/MarkUp/HTML#checkbox is modified, the definition of a checkbox in this document will not be not affected.
The Roles Taxonomy supports the following additional properties:
|
Property |
Description |
Values |
|---|---|---|
|
a supportedState must be supported by this role. Typically refers to states from the aaa namespace |
Any valid [RDF] object reference, such as a URI. |
|
|
A child element that must be contained by this role. For example a list must contain a listitem. |
Any valid [RDF] object reference, such as a URI or [RDF] ID. |
|
|
Context, where this role is allowed. For example a list item is allowed inside a list. |
Any valid [RDF] object reference, such as a URI or [RDF] ID. | |
|
The media type, where the Role is allowed - a type of scope |
Any valid [RDF] object reference, such as a URI or [RDF] ID. | |
|
Computational mechanism for determine the accessible name of the object to which the role applies. This may be computed from the children of the object or the title attribute. |
Any valid [RDF] object reference, such as a URI or [RDF] Node ID. Recommended values: Child, title, content. |
To support the current user scenario this specification defines roles that A, help define Widgets (For example, a tristate Checkbox) and B, help define page structure (for example, a section header).
Graph of the data model—Picture of the relationships described in the role data model (large)
*Note: More base types will be added as the working group adds user cases
The following roles are used as base types for applied roles. They are not used by Web Authors and would not be exposed as role definitions for incorporation into a Web page. Base classes are referenced within the taxonomy and are used to build a picture of the role taxonomy class hierarchy within the taxonomy.
|
Role |
Description |
Inherited Category |
Base and Related Concepts |
Supported
states and
properties
|
Inherited supported |
|
|---|---|---|---|---|---|---|
|
Describes the structural and functional purpose of an element. A Role is also a concept. |
[HTML] role DC:Type |
|||||
|
A component of a GUI (graphical user interface) |
||||||
| Generic type for widgets that can have a value | widget | [XFORMS] input |
datatype
|
Title | ||
|
Generic type for the inputs that allow free-form text as their value |
[XFORMS] input |
readonly (default set to false) |
datatype
|
Title | ||
|
A form control that allows the user to make selections from a set of choices |
datatype
|
Title | ||||
|
Represents a range of values that can be set by the user. |
datatype
|
Title |
||||
|
A logical part of a DeliveryUnit (page or a document) |
datatype
describedby |
Child content or title attribute | ||||
|
A heading without level |
roletype | hasparent |
datatype
describedby |
Child content or title attribute |
||
|
A software unit executing a set of tasks for its users The intent is to hint to the assistive technology to switch its normal browsing mode functionality to one in which they would for an application. Use case: In an email application it has a document and an application in it. The author would want to use typical application navigation mode to cycle through the list of emails. Much of this navigation would be defined by the application author. However, when reading an email message the user may want to switch to a document mode where they control browsing navigation. |
roletype | [DI-GLOSS]: Task/ deliveryunit |
Name from title attribute |
|||
|
Content that contains related information, such as a book. The document role is used to tell the screen reader to use a document browsing mode. (Screen readers use most of the keyboard navigation keys to provide its own keyboard user interface for this type of navigation.) Documents must also have an labelledby attribute leading to one or more elements with non-empty text content. This text should be suitable for use as a navigation preview or table-of-contents entry for the page section in question. Exceptions: There may be a few exceptions where the host-language provides a useful label mechanism, such as:
|
subpageof
[DI-GLOSS]: Task/ deliveryunit |
Name from title attribute |
||||
|
Browser or application window |
datatype
|
Child content or title attribute |
Widget Roles all map to accessibility API's.
|
Widget Role |
Description |
Inherited Concepts |
Base and Related Concepts |
New supported states (beyond inherited states) |
Inherited states (other then describedby) |
|
|---|---|---|---|---|---|---|
|
Interactive reference to a resource (note, that in [XHTML] 2.0 any element can have an href attribute and thus be a link) |
[HTML] Link |
Child content |
||||
|
Combobox is a presentation of a select, where you can type to locate a selected item. NOTE: In [XFORMS] the same select can have one of 3 appearances: combo-box, drop-down box or group of radio-buttons. Besides, many browsers (if not all of them) allow users to type in a drop-down select as well. |
[HTML] select |
datatype
|
Title |
|||
|
A selectable item in a list represented by a Select. |
datatype
|
Child content |
||||
|
A control that has two possible value states (an equivalent to a boolean). |
[HTML] input (type : checkbox) |
checked
|
datatype
|
Child content |
||
|
A control that has three possible values, (1 0 -1) Often found in installer where an option has been partially installed. |
checked
|
datatype
|
Child content |
|||
|
A radio is an option in single-select list. Only one radio control in a radiogroup can be selected at the same time. |
[HTML] input (type : radio) |
datatype
|
Child content |
|||
|
A group of radio controls. |
datatype
|
Title |
||||
|
Allows for user-triggered actions. Buttons are mostly used for discrete, atomic actions. Its value is cognitive; the idea that this is a user action opportunity is made very clear by making it look like a front-panel button on a device. The animation of the button in response to indirect (by mouse) manipulation fosters the illusion of direct manipulation and keeps user cognition in sync with the user interface perception of user action events. Standardizing the appearance of buttons enhances recognition as buttons and arraying them compactly in toolbars, for example. |
[XFORMS] trigger |
Child content |
||||
|
Indicates that you have a menu item which is part of a group of menuitemradio roles. Checking of one menuitemradio in a group will unchecked the other group members. Menuitems should also be separated into a group by a separator. |
datatype
|
Child content |
||||
|
Defines a menuitem which is checkable (tri-state). |
datatype
|
Child content |
||||
|
Used by applications for tasks that take a long time to execute, to show the execution progress. This lets the user know that the user's action request has been accepted and that the application continues (or ceases, in the case of a static display) to make progress toward completing the requested action. |
Title |
|||||
|
Provides the user with the ability to supply information to the system in a manner that makes it difficult for someone else (who may be watching) to discern the value that is being supplied. Disadvantage: Passwords have to be typed blind without the usual echo to the screen. Web users get used to having their input echoed, type badly, and in particular not having people able to confirm what is entered runs risk such as having account locked if three non-accepted tries happen in some time window. Disadvantage: Policy not to display is usually taken to be absolute; whereas a user with screen blank and earphone in use can get the typing echoed privately not subject to having a lurker purloin the password. |
[HTML] input (type : password) |
datatype
|
Title |
|||
|
A line or bar that separates and distinguishes sections of content. This is a visual separator between sections of content. Separators are found between lists of menu items in a menu. |
[HTML] hr |
Title |
||||
|
A user input where the user selects an input in a given range. This form of range expects an analog keyboard interface. A slider has the added functionality of being able to select a value through the use of a visible slider. The slider would be keyboard accessible and provide a visible thumb position that represents the current position within the slider. |
datatype
|
Title |
||||
|
A form of Range that expects a user selecting from discreet choices. A spinbutton allows the user to select from the given range through the use of an up and down button. Visibly, the current value is incremented or decremented until a maximum or minimum value is reached. This functionality should be accomplished programmatically through the use of up and down arrows on the keyboard. |
datatype
|
Title |
||||
|
This is a multi-line editable text box. For use when no standard form element exists with this functionality. Intended use is in languages that do not have a textarea object (such as SVG). The user would use this role when additional states or properties are applied to a standard textarea control. This is to indicate to the user agent that it must process additional states and properties such as invalid and required. |
[HTML] textarea |
datatype
|
Title |
|||
|
Free-form data entry for short on-line content. Intended use is in languages that do not have a textfield object (such as SVG). The user would use this role when additional states or properties are applied to a standard textarea control. Textfield is used to indicate to the user agent that it must process additional states and properties such as invalid and required. |
[HTML] input (type : text) |
datatype
valuenow disabled activedescendent labelledby tabindex readonly |
Child content |
|||
|
A form of a Select (or, generally, of a list having groups inside groups) - where sub trees can be collapsed and expanded |
datatype
disabled activedescendent labelledby tabindex multiselectable hasparent flowto posinset setsize owns |
Child content title |
||||
|
This is a group of sibling treeitems that have a common parent. The intended use is for creating groups of treeitems within a tree container. |
datatype
disabled activedescendent labelledby tabindex hasparent flowto multiselectable posinset setsize owns |
Child content title |
||||
|
An option item of a tree. This is an element within a tree may also be expanded or collapsed |
datatype
|
Content |
||||
|
Process--advisory information. This is a container for process advisory information to give feedback to the user. It must have a subtree. This object typically does not receive focus. Some cells of a Braille display may be reserved to render the status. |
||||||
|
A message with an alert or error information. 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 container of the document subtree containing the alert message. |
[XFORMS] alert |
live |
Title |
|||
|
A window with an alert or error information. 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 container of the subtree containing the alert message. |
[XFORMS] alert |
datatype
|
Title |
|||
|
A dialog is a small application window that sits above the application and is designed to interrupt the current processing of an application in order to prompt the user to enter information or require a response. Dialog boxes should have a title. They must have a focused item. |
datatype
|
Title |
Roles for document structure are also required to support the accessibility of dynamic Web content to assist adaptive technology in determining active content vs. static document content. Structural Roles, by themselves do not all map to accessibility API's, but are used to create widget roles or assist content adaptation.
This schema is likely to evolve as new use cases are added to the scope of this specification.
|
Roles |
Description |
Inherited Category |
Base and Related Concepts |
nameRef or Not Mapped to Accessibility API's |
Supported states
|
|
|---|---|---|---|---|---|---|
|
An element who's role is Presentational does not need to be mapped to the accessibility API. 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. Example use cases:
The user agent may remove all structural aspects of the element being repurposed. For example, a table marked as presentation would remove the table, td, th, tr, etc. elements while preserving the individual text elements within it. Because the user agent knows to ignore the structural aspects implied in a table, no harm is done by using a table for layout. |
[DI-GLOSS]: Task |
Not Mapped |
||||
|
A group is a collection of sections or user interface objects that should be presented to the user in a coherent fashion. Group members that are outside the [DOM] subtree of the group would need to have explicit relationships assigned to participate in the group. Groups may be nested. |
DC: Collection, Dataset |
Name from title attribute |
mustContain sections |
|||
|
An imggroup is a container for a collection elements that form an image. An imggroup can contain captions, descriptive text as well as multiple image files that when viewed together give the impression of a single image. |
DAISY , [DTB] imggroup |
Name from title attribute |
mustContain sections |
|||
|
A list of references to members of a single group. |
Name from child content or title attribute |
|||||
|
A group of elements that together form a perceivable unit, that the author feels should be included in a summary of page features. A region must have a title. A region does not necessarily follow the logical structure of the content, but follows the perceivable structure of the page. [XHTML] standard document roles would be considered regions. Each region must have a title. |
[HTML] Frame
device independence glossary: perceivable unit. related concept: section |
Name from title attribute |
live
|
|||
|
A region where new information is added and old information may disappear such as; chat logs, messaging, game log or an error log. |
Name from title attribute |
live
atomic relevant expanded labelledby controls hasparent flowto |
||||
|
A grid is a table type that may be editable. Grids contain cells that may be focusable. Grids allow the user to move focus between grid cells with 2-D navigation. Grids may have row and column headers which also have functional value based on the implementation. Grid cells may have values determined by an equation. Grids are single selectable or multiselectable. Properties for selectable or multiselectable must be provided by the author. Grids may be used for spreadsheets such as in Open Office, Microsoft Office, etc. |
[HTML] table |
Name from title attribute |
datatype
|
mustcontain: gridcells |
||
|
A cell in a grid. Cells may have relationships such as controls
|
[HTML] td |
Name from child content or title attribute |
datatype
|
|||
|
A tabcontainer is a container for tabs, a tablist, and tabpanels that belong together. Tabpanels are commonly used in applications that have a large number of options that can be categorized in logical groups. Each tab in a tablist serves as both a menu item and as a title for the tab content associated with the tab. In graphical renderings the selected tab and tabpanels usually share the same background color and the non-selected tabs have a different background color to make the selected tab and tabpanel stand out visually. This also provides a visual association with the tab and tabcontent. Only one tabpanel's contents is visible at a time. |
Name from title attribute |
|||||
|
A tab is a tabpanel header. Tab is used as a grouping label, providing a link for selecting the tabcontent to be rendered to the user. The currently selected tab should be marked with selected=true. Tablist is the container role for a set of elements with the role attribute set to tab. Only one tab may be selected at a time. At any time, one tab must be selected. One of the tabs in tablist must be the current tab. The tabpanel associated with the current tab, must be rendered to the user. Other tabpanels are typically hidden from the user until the user selects the tab associated with that tabpanel. |
Name from child content or title attribute |
scope: tabPanel |
||||
|
Tabpanel is a container for the resources associated with a tab. Note: There must be a means to associate a content container element with its associated tab in a tablist. |
Name from title attribute |
live
|
||||
|
A list of references to tabpanels of a tabcontainer. |
Name from child content or title attribute |
|||||
|
A table contains cells of tabular data arranged in rows and columns. This does not imply presentation.The table role is used as a container for tabular data. The table construct describes relationships between data such that it may be used for different presentations. For example, the role of a table could be added to a pie chart. It is structural equivalent to an [XHTML] table. In [XHTML], the author should use the table element. |
[HTML] table |
Name from title attribute |
||||
|
A table cell containing data. |
[HTML] td |
Name from child content or title attribute | ||||
|
A table cell containing header information. |
[HTML] th |
Name from child content or title attribute |
||||
|
A table cell containing header information for a row. Rowheader can be used as a row header in a table or grid. It also could be used in a pie chart to show a similar relationship in the data. The rowheader establishes a relationship between it and all cells in the corresponding row. It is a structural equivalent to an [HTML] th element with a row scope. |
[HTML] th with scope= row |
Name from child content or title attribute |
||||
|
A table 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 row. It is a structural equivalent to an [HTML] th element with a column scope. |
[HTML] th with scope= column |
Name from child content or title attribute |
||||
|
Group of small items |
[HTML] list |
Name from title attribute |
||||
|
A single item in a list. |
[XFORMS] item [HTML] li |
Name from child content or title attribute |
||||
|
Offers a list of choices to the user.A menu is often a list of links to important sections of a Document or a Site. |
navigation in [HTML] roles [XFORMS] select |
Name from title attribute |
mustcontain: menuitems |
|||
|
A toolbar is a collection of commonly used functions represented in compact visual form. The toolbar is often a subset of functions found in a menubar designed to reduced user effort in using these functions. If this is not keyboard accessible the actions defined in the toolbar must be reproduced in an accessible, device independent fashion. |
Name from title attribute |
|||||
|
A menubar is a container of menu items. Each menu item may activate a new sub-menu. Navigation behavior should be similar to the typical menu bar graphical user interface. Menubar is used to create a menubar similar to those found in Windows, the Mac, and Gnome desktops. A menubar is used to create a consistent climate of frequently used commands. |
Name from title attribute |
|||||
|
A link in a menu. This is an option in a group of choices contained in a menu. It may be disabled or active. It may also have a popup. |
[XFORMS] option |
Name from child content or title attribute |
||||
|
Bread crumb navigation list. Each element in the list is a representation of the navigational hierarchy, represented linearly. The logical order of the text begins with the root element. |
Name from child content or title attribute |
scope: links |
This section is informative.
An application becomes accessible when:
Roles make the different elements in the application semantically rich. User agents use the role semantics to understand how to handle each element. Roles can be used to build accessible applications by providing any missing information that the assistive technology needs to anticipate the behavior of the elements inside the application.
For example, to support accessibility the browser may create accessible objects of a Web page through the Accessibility API of the operating system. When the full semantics are provided and understood by the browser, the application will properly map the page to accessible objects of the operating system.
This section is informative.
Use the semantic elements that are defined in the native markup language. For example, if you are using XHTML it is better to use the checkbox than to use a div element with role checkbox. Because properly used content is already repurposable, roles are best used when the mark up language does not support all the semantics that you need. When a role is used the semantics and behavior of the element are overridden by the role behavior.
Set roles to make sure elements behave predictably and correctly describe the behavior of each element within your application (unless elements behaviors are fully described by the native markup language). Roles for interactive elements should support all the states that the element could use.
Look for groups within a page, and mark them using the most appropriate role that best describes their usage.
For example: a region of the page that contains a group of elements that are likely to change through an AJAX application could be tagged as a "region".
Look for relationships between groups and mark them using the most appropriate property or attribute.
Sometimes the relationships can be made clear via the native mark up language, such as the label tag in HTML.
Sometimes this can be implied via the DOM. For example, when a well marked up list contains list items it is known that they belong to the containing list. In such cases you do not need to set additional properties to make that explicit.
In other cases use the States and Properties Module for Accessible Rich Internet Applications to state relationships. For example: If container A contains search results, and container B contains the search controls, then mark each container as a region and set the aaa: property in region B to reference region A.
Extra states and properties have been provided by the States and Properties Module for Accessible Rich Internet Applications [ARIA-STATE].