.gif)
The World Wide Web Consortium (W3C) defines Accessible Rich Internet Applications (ARIA) as a syntax for making dynamic Web content and custom user interface (UI) accessible. Internet Explorer 8 Beta recognizes the ARIA role, state, and property information and exposes it to assistive technologies, which in turn can use the Microsoft Active Accessibility and/or Microsoft UI Automation APIs to retrieve the information. Instead of building separate simplified Web pages for accessibility, you can use ARIA to mark up your rich Web applications with roles, states, and properties. For example, to match the behavior you create through a script, you can define a div element as a button, checkbox, or another ARIA role.
This topic contains the following sections:
W3C ARIA Roles
W3C ARIA roles are mapped to a Microsoft Active Accessibility role or to a UI Automation control type. The original W3C ARIA role can be supported by the UI AutomationAriaRole property. Optionally, user agents can also offer localized descriptions of the W3C ARIA role by using the LocalizedControlType property of the UI Automation control. When the localized string is not specified, a default LocalizedControlType string is supplied by the system.
| W3C ARIA Role Attribute (Draft 4) | Microsoft Active Accessibility accRole Property | UI Automation ControlType Property | UI Automation AriaRole Property |
|---|
| "alert" | ROLE_SYSTEM_ALERT | Text | alert |
| "alertdialog" | ROLE_SYSTEM_DIALOG | Window | alertdialog |
| "application" | ROLE_SYSTEM_PANE | pane | application |
| "button" | ROLE_SYSTEM_PUSHBUTTON | button | button |
| "checkbox" | ROLE_SYSTEM_CHECKBUTTON | Checkbox | checkbox |
| "columnheader" | ROLE_SYSTEM_COLUMNHEADER | DataItem | columnheader |
| "combobox" | ROLE_SYSTEM_COMBOBOX | Combobox | combobox |
| "description" | ROLE_SYSTEM_TEXT | Text | description |
| "dialog" | ROLE_SYSTEM_DIALOG | Window | dialog |
| "directory" | ROLE_SYSTEM_LIST | List | directory |
| "document" | ROLE_SYSTEM_CLIENT | Document | document |
| "grid" | ROLE_SYSTEM_TABLE | DataGrid | grid |
| "gridcell" | ROLE_SYSTEM_CELL | DataItem | gridcell |
| "group" | ROLE_SYSTEM_GROUPING | Grouping | group |
| "heading" | ROLE_SYSTEM_TEXT | Text | heading |
| "img" | ROLE_SYSTEM_GRAPHIC | Image | img |
| "link" | ROLE_SYSTEM_LINK | HyperLink | link |
| "list" | ROLE_SYSTEM_LIST | List | list |
| "listbox" | ROLE_SYSTEM_LIST | List | listbox |
| "listitem" | ROLE_SYSTEM_LISTITEM | ListItem | listitem |
| "log" | ROLE_SYSTEM_PANE | Pane | log |
| "marquee" | ROLE_SYSTEM_ANIMATION | Text | marquee |
| "menu" | ROLE_SYSTEM_MENUPOPUP | Menu | menu |
| "menubar" | ROLE_SYSTEM_MENUBAR | MenuBar | menubar |
| "menuitem" | ROLE_SYSTEM_MENUITEM | MenuItem | menuitem |
| "menuitemcheckbox" | ROLE_SYSTEM_CHECKBUTTON | CheckBox | menuitemcheckbox |
| "menuitemradio" | ROLE_SYSTEM_RADIOBUTTON | RadioButton | menuitemradio |
| "option" | ROLE_SYSTEM_LISTITEM | ListItem | option |
| "presentation" | ROLE_SYSTEM_PANE | Pane | presentation |
| "progressbar" | ROLE_SYSTEM_PROGRESSBAR | ProgressBar | progressbar |
| "radio" | ROLE_SYSTEM_RADIOBUTTON | RadioButton | radio |
| "radiogroup" | ROLE_SYSTEM_GROUPING | Group | radiogroup |
| "region" | ROLE_SYSTEM_PANE | Pane | region |
| "row" | ROLE_SYSTEM_ROW | DataItem | row |
| "rowheader" | ROLE_SYSTEM_ROWHEADER | DataItem | rowheader |
| "separator" | ROLE_SYSTEM_SEPARATOR | Separator | separator |
| "slider" | ROLE_SYSTEM_SLIDER | Slider | slider |
| "spinbutton" | ROLE_SYSTEM_SPINBUTTON | Spinner | spinbutton |
| "status" | ROLE_SYSTEM_STATUSBAR | Status Bar | status |
| "tab" | ROLE_SYSTEM_PAGETAB | TabItem | tab |
| "tablist" | ROLE_SYSTEM_PAGETABLIST | Tab | tablist |
| "tabpanel" | ROLE_SYSTEM_PANE | Pane | tabpanel |
| "textbox" | ROLE_SYSTEM_TEXT | Document | textbox |
| "timer" | ROLE_SYSTEM_CLOCK | Pane | timer |
| "toolbar" | ROLE_SYSTEM_TOOLBAR | Toolbar | toolbar |
| "tooltip" | ROLE_SYSTEM_TOOLTIP | Tooltip | tooltip |
| "tree" | ROLE_SYSTEM_OUTLINE | Tree | tree |
| "treegrid" | ROLE_SYSTEM_TABLE | DataGrid | treegrid |
| "treeitem" | ROLE_SYSTEM_OUTLINEITEM | TreeItem | treeitem |
W3C ARIA States and Properties
W3C ARIA States and Properties by Microsoft Active Accessibility and UI Automation are mapped to various properties and functions of Microsoft Active Accessibility and UI Automation. With few exceptions, most of the ARIA States and Properties are supported by the UI Automation AriaProperties property.
The exceptions are as follows:
- ARIA properties that take object references, such as described by the ARIA property
- ARIA properties that are supported by the accessibility object model
For example, the ARIA aria-activedescendant property is always expected to be represented as a focused element in the accessibility object model. The ARIA aria-owns property must also be reflected in the accessibility object model when it is specified.
AriaProperties is a string property that has a collection of name/value pairs whose delimiters are "=" (equals) and ";" (semicolon); for example, checked=true;disabled=false. The backslash character ("\") is used as an escape when these delimiter characters or "\" appear in the values. The UI Automation provider code can add verification to validate the original ARIA properties in the Document Object Model (DOM)
, but it is not required.
| W3C ARIA States and Properties | Microsoft Active Accessibility Properties | UI Automation Properties | UI Automation ARIA AriaProperties Property |
|---|
| aria-activedescendant | STATE_SYSTEM_FOCUSED (IAccessible::get_accState) | HasKeyboardFocus (a property of the child element that is designated to receive the focus) | N/A |
| aria-atomic | N/A | N/A | atomic |
| aria-busy | STATE_SYSTEM_BUSY (get_accState) | N/A | busy |
| aria-channel | N/A | N/A | channel |
| aria-checked | STATE_SYSTEM_CHECKED (get_accState) | ToggleState (Toggle Pattern) | checked |
| aria-controls | N/A | ControllerFor | N/A |
| aria-describedby | N/A | DescribedBy | N/A |
| aria-disabled | STATE_SYSTEM_UNAVAILABLE (get_accState) | IsEnabled | disabled |
| aria-dropeffect | N/A | N/A | dropeffect |
| aria-expanded | STATE_SYSTEM_COLLAPSED or STATE_SYSTEM_EXPANDED (get_accState) | ExpandCollapseState (ExpandCollapse Pattern) | expanded |
| aria-flowto | N/A | FlowsTo | N/A |
| aria-grab | N/A | N/A | grab |
| aria-haspopup | STATE_HASPOPUP | N/A | haspopup |
| aria-hidden | STATE_SYSTEM_INVISIBLE | IsOffscreen | hidden |
| aria-invalid | N/A | IsDataInvalidForForm | invalid |
| aria-labelledby | N/A | LabeledBy | N/A |
| aria-level | IAccessible::get_accValue | N/A (represented by automation element tree structure) | level |
| aria-live | N/A | N/A | live |
| aria-multiline | N/A | Document Control Type | multiline |
| aria-multiselect | STATE_SYSTEM_EXTSELECTABLE (get_accState) | CanSelectMultiple (Selection Pattern) | multiselectable |
| aria-owns | N/A (should be reflected in the accessible object tree) | N/A (should be reflected in the automation element tree) | N/A |
| aria-posinset | N/A (represented in the accessible object tree structure or by childId) | N/A (represented in automation element tree structure) | posinset |
| aria-pressed | STATE_SYSTEM_PRESSED (get_accState) | ToggleState (Toggle Pattern) | pressed |
| aria-readonly | STATE_SYSTEM_READONLY (get_accState) | IsReadOnly | readonly |
| aria-relevant | N/A | N/A | relevant |
| aria-required | N/A | IsRequiredForForm | required |
| aria-secret | STATE_SYSTEM_PROTECTED (get_accState) | IsPassword | secret |
| aria-selected | STATE_SYSTEM_SELECTED (get_accState) | IsSelected (SelectionItem Pattern) | selected |
| aria-setsize | N/A | N/A (child count in automation element tree structure) | setsize |
| aria-sort | N/A | N/A | sort |
| tabIndex | STATE_SYSTEM_FOCUSABLE (get_accState) | IsKeyboardFocusable | tabindex |
| aria-valuemax | N/A | MaximumProperty (RangeValue Pattern) | valuemax |
| aria-valuemin | N/A | MinimumProperty (RangeValue Pattern) | valuemin |
| aria-valuenow | get_accValue | ValueProperty (RangeValue Pattern) | valuenow |
| aria-valuetext | get_accValue NOTE: when both aria-valuenow and aria-valuetext ARIA properties are set, get_accValue will hold the data from the aria-valuetext property. | ValueProperty (Value Pattern) NOTE: RangeValue and Value Pattern can coexist with UI in case both aria-valuetext and aria-valuenow are specified. | valuetext |
Not implemented in Internet Explorer 8.
Related Topics
Microsoft Active Accessibility and UI Automation
ARIA Specification Sources