Export (0) Print
Expand All

UI Automation for W3C Accessible Rich Internet Applications Specification

Websites increase their utility with dynamic content and advanced UI controls supported by technologies like Asynchronous JavaScript and XML (AJAX), DHTML, and JavaScript. However, assistive technologies frequently cannot interact with these complex controls or expose dynamic content to users. Accessible Rich Internet Applications (ARIA) is a W3C technical specification for developing web content and applications so that they are accessible to people with disabilities.

To support the ARIA specification, the Microsoft UI Automation specification enables developers to associate UI Automation AriaRole and AriaProperties attributes with W3C ARIA roles and states, or properties. This helps user applications such as Microsoft Internet Explorer support the ARIA object model in the context of UI Automation while keeping a baseline accessibility object model.

This appendix provides the suggested mapping of W3C information to Microsoft Active Accessibility and UI Automation specifications, leveraging the two new UI Automation properties.

This topic contains the following sections:

W3C ARIA Role Mapped to Microsoft Active Accessibility and UI Automation

W3C ARIA roles can map to Microsoft Active Accessibility roles or UI Automation control types. With UI Automation, the original W3C ARIA role may also be supported by the AriaRole property. User agents can offer a localized description of the W3C ARIA role with the UI Automation LocalizedControlType property; however, that is optional. When a localized string is not specified, the system will supply the default LocalizedControlType string. User agents may also offer secondary roles in the AriaRole property by using space as a separator, as defined in the ARIA W3C standard.

W3C ARIA Role Attribute (DRAFT)Microsoft Active Accessibility RoleUI Automation Control TypeUI Automation AriaRole Property
alertROLE_SYSTEM_ALERT Text alert
alertdialogROLE_SYSTEM_DIALOG Window alertdialog
applicationROLE_SYSTEM_PANE Pane application
buttonROLE_SYSTEM_PUSHBUTTON Button button
checkboxROLE_SYSTEM_CHECKBUTTON CheckBox checkbox
columnheaderROLE_SYSTEM_COLUMNHEADER DataItem columnheader
comboboxROLE_SYSTEM_COMBOBOX ComboBox combobox
descriptionROLE_SYSTEM_TEXT Text description
dialogROLE_SYSTEM_DIALOG Window dialog
directoryROLE_SYSTEM_LIST List directory
documentROLE_SYSTEM_CLIENT Document document
gridROLE_SYSTEM_TABLE DataGrid grid
gridcellROLE_SYSTEM_CELL DataItem gridcell
groupROLE_SYSTEM_GROUPING Group group
headingROLE_SYSTEM_TEXT Text heading
imgROLE_SYSTEM_GRAPHIC Image img
linkROLE_SYSTEM_LINK Hyperlink link
listROLE_SYSTEM_LIST List list
listboxROLE_SYSTEM_LIST List listbox
listitemROLE_SYSTEM_LISTITEM ListItem listitem
logROLE_SYSTEM_PANE Pane log
marqueeROLE_SYSTEM_ANIMATION Text marquee
menuROLE_SYSTEM_MENUPOPUP Menu menu
menubarROLE_SYSTEM_MENUBAR MenuBar menubar
menuitemROLE_SYSTEM_MENUITEM MenuItem menuitem
menuitemcheckboxROLE_SYSTEM_CHECKBUTTON CheckBox menuitemcheckbox
menuitemradioROLE_SYSTEM_RADIOBUTTON RadioButton menuitemradio
optionROLE_SYSTEM_LISTITEM ListItem option
presentationROLE_SYSTEM_PANE Pane presentation
progressbarROLE_SYSTEM_PROGRESSBAR ProgressBar progressbar
radioROLE_SYSTEM_RADIOBUTTON RadioButton radio
radiogroupROLE_SYSTEM_GROUPING Group radiogroup
regionROLE_SYSTEM_PANE Pane region
rowROLE_SYSTEM_ROW DataItem row
rowheaderROLE_SYSTEM_ROWHEADER DataItem rowheader
sectionROLE_SYSTEM_GROUPING Group section
separatorROLE_SYSTEM_SEPARATOR Separator separator
sliderROLE_SYSTEM_SLIDER Slider slider
spinbuttonROLE_SYSTEM_SPINBUTTON Spinner spinbutton
statusROLE_SYSTEM_STATUSBAR StatusBar status
tabROLE_SYSTEM_PAGETAB TabItem tab
tablistROLE_SYSTEM_PAGETABLIST Tab tablist
tabpanelROLE_SYSTEM_PANE Pane tabpanel
textboxROLE_SYSTEM_TEXT Document textbox
timerROLE_SYSTEM_CLOCK Pane timer
toolbarROLE_SYSTEM_TOOLBAR ToolBar toolbar
tooltipROLE_SYSTEM_TOOLTIP ToolTip tooltip
treeROLE_SYSTEM_OUTLINE Tree tree
treegridROLE_SYSTEM_TABLE DataGrid treegrid
treeitemROLE_SYSTEM_OUTLINEITEM TreeItem treeitem

 

W3C ARIA States and Properties Mapped to Microsoft Active Accessibility and UI Automation

W3C ARIA states and properties map to various Microsoft Active Accessibility and UI Automation properties and functions. Most of the ARIA states and properties are supported by the UI Automation AriaProperties property. The exceptions are ARIA properties that take object references (for example, the describedby ARIA property), and ARIA properties that are supported by the accessibility object model. For example, the ARIA activedescendent property is expected to be represented as the element with focus in the accessibility object model. The ARIA owns property should be also 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 the equal sign (=) and the semicolon (;), for example, "checked=true;disabled=false". A backslash (\) is used as an escape when these delimiter characters, or a backslash, appear in the values. The provider code can add verification to validate the original ARIA properties in the Document Object Model, but it is not required.

W3C ARIA States and PropertiesMicrosoft Active Accessibility PropertiesUI Automation PropertiesUI Automation AriaProperties Property
activedescendentSTATE_SYSTEM_FOCUSED (accState)HasKeyboardFocus (a property of the child element that is designated to receive the focus)n/a
atomicn/an/aatomic
busySTATE_SYSTEM_BUSY (accState)n/abusy
channeln/an/achannel
checkedSTATE_SYSTEM_CHECKED (accState)ToggleState (Toggle control pattern)checked
controlsn/aControllerForn/a
describedbyn/aDescribedByn/a
disabledSTATE_SYSTEM_UNAVAILABLE (accState)IsEnableddisabled
dropeffectn/an/adropeffect
expandedSTATE_SYSTEM_COLLAPSED or STATE_SYSTEM_EXPANDED (accState)ExpandCollapseState (ExpandCollapse control pattern)expanded
flowton/aFlowsTon/a
grabn/an/agrab
haspopupSTATE_SYSTEM_HASPOPUP (accState)n/ahaspopup
hiddenSTATE_SYSTEM_INVISIBLE (accState)IsOffscreenhidden
invalidn/aIsDataValidForForminvalid
labelledbyn/aLabeledByn/a
LevelaccValuen/a (represented by automation element tree structure)level
liven/an/alive
multilinen/a Document control typemultiline
multiselectableSTATE_SYSTEM_EXTSELECTABLE (accState)CanSelectMultiple (Selection control pattern)multiselectable
ownsn/a (should be reflected in the accessible object tree)n/a (should be reflected in the automation element tree)n/a
Posinsetn/a (represented in the accessible object tree structure or by childId)n/a (represented in automation element tree structure)posinset
pressedSTATE_SYSTEM_PRESSEDToggleState (Toggle control pattern)pressed
readonlySTATE_SYSTEM_READONLYIsReadOnlyreadonly
relevantn/an/arelevant
requiredn/aIsRequiredForFormrequired
secretSTATE_SYSTEM_PROTECTEDIsPasswordsecret
selectedSTATE_SYSTEM_SELECTEDIsSelected (SelectionItem control pattern)selected
setsizen/an/a (child count in automation element tree structure)setsize
sortn/an/asort
tabindexSTATE_SYSTEM_FOCUSABLEIsKeyboardFocusabletabindex
valuemaxn/aMaximum (RangeValue control pattern)valuemax
valueminn/aMinimum (RangeValue control pattern)valuemin
valuenow IAccessible::get_accValue Value (RangeValue control pattern)valuenow
valuetext

IAccessible::get_accValue

NOTE: When both the valuenow and valuetext ARIA properties are set, accValue holds the data from the ARIA valuetext property.

Value (Value control pattern)

NOTE: The RangeValue and Value control patterns can coexist with UI Automation when both valuetext and valuenow are specified.

valuetext

 

Additional Considerations

UI Automation also offers a simple text object model with the Text control pattern, which supports embedding objects in a Document object. This enables user agents and client applications to treat web content as an HTML document or as a traditional desktop UI, depending on the end-user scenarios.

 

 

Community Additions

ADD
Show:
© 2014 Microsoft