Mapping ARIA Roles, States, and Properties to UI Automation

The World Wide Web Consortium (W3C) defines Accessible Rich Internet Applications (ARIA) as a syntax for making dynamic Web content and custom UI accessible. Windows Internet Explorer 8 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
"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
"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
"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) World Wide Web link, 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

Community Additions