ARIA roles and states and MSAA events exposed via MSAA by browsers on Windows - IE 8, Firefox 3, Opera 10, Chrome 5, and Safari 5

Author: Phil Richards
Contact: phrichards@gmail.com

Roles & Inspect 32

These tests are updates of those performed by Steve Faulkner, detailed at The Paciello Group Blog. As all five of the browsers tested by Steve have been updated since those tests were performed, these tests were conducted with the latest version of each browser, specifically:

Test methodology for ARIA roles exposed by MSAA was identical to the methodology used in Steve's tests, and the expected MSAA roles presented here are taken from Steve's tests. The Inspect 32 software used to conduct these tests is available here.

The updated summary is as follows:

WAI-ARIA has 59 possible role values (excluding abstract roles):

The current versions of IE, Firefox, and Safari perform slightly poorer than the versions used in Steve's tests, while Opera and Chrome perform slightly better. There are no dramatic changes in performance for any browser.

ARIA Role Expected MSAA Role IE 8.0.6 Reported Role Firefox 3.6.3 Reported Role Opera 10.53 Reported Role Chrome 5.0.375.55 Reported Role Safari 5.0 Reported Role
alert alert alert alert alert cell client
alertdialog dialog dialog dialog dialog cell client
application application pane application application cell client
article None cell document cell cell client
banner None cell cell cell cell client
button push button push button push button row cell client
checkbox check box check box check box row cell client
columnheader column header column header column header row cell client
combobox combo box combo box combo box combo box cell client
complementary None cell cell cell cell client
contentinfo None cell cell cell cell client
definition None cell cell cell cell client
dialog dialog dialog dialog dialog cell client
directory list list cell unknown object list list
document client client document unknown object cell client
grid table table table table table table
gridcell cell cell cell cell cell client
group grouping grouping grouping grouping cell client
heading text? heading? editable text heading cell cell client
img graphic graphic graphic graphic cell client
label text cell text text cell client
link link link link link cell client
list list list list list list list
listbox list list list list cell client
listitem list item list item list item list item cell client
log log? cell cell unknown object cell client
main None cell cell cell cell client
marquee animation? marquee? animation cell cell cell client
math equation? cell equation cell cell client
menu pop up menu popup menu popup menu row cell client
menubar menu bar menu bar menu bar menu bar cell client
menuitem menu item menu item menu item row cell client
menuitemcheckbox menu item menu item menu item row cell client
menuitemradio menu item menu item menu item row cell client
navigation None cell cell cell cell client
note None cell cell cell cell client
option list item list item list item list item cell client
presentation no object exposed Error presentation cell cell client
progressbar progress bar progress bar progress bar progress bar cell client
radio radio button radio button radio button row cell client
radiogroup grouping grouping grouping grouping cell client
row row cell row list item row row
region pane? pane grouping unknown object cell client
rowheader row header row header row header row cell client
search None cell cell cell cell client
separator separator separator separator row cell client
slider slider slider slider row cell client
spinbutton spin box spin box spin box progress bar cell client
status status bar status bar status bar cell cell client
tab page tab page tab page tab page tab cell client
tablist page tab list page tab list page tab list grouping cell client
tabpanel property page pane property page grouping cell client
textbox editable text editable text editable text row cell client
timer timer cell cell cell cell client
toolbar tool bar tool bar tool bar tool bar cell client
tooltip tool tip tool tip tool tip cell cell client
tree outline outline outline outline cell client
treegrid outline cell outline outline table table
treeitem outline item outline item outline item list item cell client








Legend correct incorrect partial/unsure

Roles & Accessibility Probe

These tests are identical to those performed with Inspect 32, but here Accessibility Probe is used to confirm the results displayed by Inspect 32. Accessibility Probe is available here. According to Accessibility Probe:

The only difference here is Chrome, but as the reported role for every case in Chrome is "grouping", this is likely due to an incompatibility of the Chrome browser with Accessibility Probe. Otherwise, the reported roles in Accessibility Probe confirm those displayed by Inspect 32.

ARIA Role Expected MSAA Role IE 8.0.6 Reported Role Firefox 3.6.3 Reported Role Opera 10.53 Reported Role Chrome 5.0.375.55 Reported Role Safari 5.0 Reported Role
alert alert alert alert alert grouping clientArea
alertdialog dialog dialog dialog dialog grouping clientArea
application application pane application application grouping clientArea
article None tableCell document cell grouping clientArea
banner None tableCell tableCell cell grouping clientArea
button push button pushButton pushButton row grouping clientArea
checkbox check box checkBox checkBox row grouping clientArea
columnheader column header tableColumnHeader tableColumnHeader row grouping clientArea
combobox combo box comboBox comboBox comboBox grouping clientArea
complementary None tableCell tableCell tableCell grouping clientArea
contentinfo None tableCell tableCell tableCell grouping clientArea
definition None tableCell tableCell tableCell grouping clientArea
dialog dialog dialog dialog dialog grouping clientArea
directory list list tableCell <null> grouping list
document client clientArea document <null> grouping clientArea
grid table table table table grouping table
gridcell cell tableCell tableCell tableCell grouping clientArea
group grouping grouping grouping grouping grouping clientArea
heading text? heading? text heading tableCell grouping clientArea
img graphic graphic graphic graphic grouping clientArea
label text tableCell staticText staticText grouping clientArea
link link link link link grouping clientArea
list list list list list grouping list
listbox list list list list grouping clientArea
listitem list item listItem listItem listItem grouping clientArea
log log? tableCell tableCell <null> grouping clientArea
main None tableCell tableCell tableCell grouping clientArea
marquee animation? marquee? animation tableCell tableCell grouping clientArea
math equation? tableCell equation tableCell grouping clientArea
menu pop up menu menuPopup menuPopup row grouping clientArea
menubar menu bar menuBar menuBar menuBar grouping clientArea
menuitem menu item menuItem menuItem row grouping clientArea
menuitemcheckbox menu item menuItem menuItem row grouping clientArea
menuitemradio menu item menuItem menuItem row grouping clientArea
navigation None tableCell tableCell tableCell grouping clientArea
note None tableCell tableCell tableCell grouping clientArea
option list item listItem listItem listItem grouping clientArea
presentation no object exposed table presentation tableCell grouping clientArea
progressbar progress bar progressBar progressBar progressBar grouping clientArea
radio radio button radioButton radioButton row grouping clientArea
radiogroup grouping grouping grouping grouping grouping clientArea
row row tableCell row listItem grouping row
region pane? pane grouping <null> grouping clientArea
rowheader row header tableRowHeader tableRowHeader row grouping clientArea
search None tableCell tableCell tableCell grouping clientArea
separator separator separator separator row grouping clientArea
slider slider slider slider row grouping clientArea
spinbutton spin box spinBox spinButton progressBar grouping clientArea
status status bar statusBar statusBar tableCell grouping clientArea
tab page tab pageTab pageTab pageTab grouping clientArea
tablist page tab list pageTabList pageTabList grouping grouping clientArea
tabpanel property page pane propertyPage grouping grouping clientArea
textbox editable text text text row grouping clientArea
timer timer tableCell tableCell tableCell grouping clientArea
toolbar tool bar toolBar toolBar toolBar grouping clientArea
tooltip tool tip toolTip toolTip tableCell grouping clientArea
tree outline outline outline outline grouping clientArea
treegrid outline tableCell outline outline grouping table
treeitem outline item outlineItem outlineItem listItem grouping clientArea








Legend correct incorrect partial/unsure

States & Inspect 32

I was unable to find published tests of the reported ARIA states for specific broswers or a list of expected states. For these tests, I considered a reported state to be correct if the name of the state was displayed by Inspect 32 in at least one of the test item's possible states. For example, the "aria-checked" state test item could be either checked or unchecked; while checked, Inspect 32 reports the state as "checked, marqueed, focusable" so the reported state is considered correct even though the unchecked item does not specifically report that it is not checked. This decision was made because no browser reported both positive and negative states of a particular test item, with the exception of the expanded/collapsed state. In all other cases, only the positive (checked, pressed, selected) state was reported as such.

Test examples were taken from the Illinois Center for Information Technology and Web Accessibility and the Codetalks wiki.

Methodology:

Note:

Of the five states that were tested ("aria-checked", "aria-expanded", "aria-grabbed", "aria-pressed", and "aria-selected"), the summary is as follows:

ARIA State Specific State Firefox 3.6.3 Reported State IE 8.0.6001.18702 Reported State Opera 10.53 Reported State Chrome 5.0.375.70 Reported State Safari 5.0 Reported State
busy
unable to test



checked checked checked, marqueed, focusable focused, checked, focusable focused focused, checked, read only, focusable read only, checked, hot tracked, focusable
unchecked marqueed, focusable focused, focusable focused focused, read only, focusable read only, hot tracked, focusable
disabled
unable to test



expanded expanded expanded, focusable, selectable focused, expanded, focusable focused focused, read only, focusable focused, read only, focusable

collapsed collapsed, focusable, selectable focused, collapsed, focusable focused focused, read only, focusable focused, read only, focusable
grabbed
focused, floating, focusable focused, focusable focused focused, read only, focusable focused, read only, focusable
hidden
unable to test



invalid
unable to test



pressed pressed pressed, floating, marqueed, focusable focused, pressed, focusable focused focused, pressed, read only, focusable focused, pressed, read only, focusable

unpressed floating, maruqeed, focusable focused, focusable hot tracked, focusable focused, read only, focusable focused, read only, focusable
selected selected selected, focused, focusable, selectable IE is unresponsive; cannot move focus to cells in table selectable focused, read only, focusable selected, focused, read only, focusable

unselected focused, focusable, selectable selectable focused, read only, focusable focused, read only, focusable








Legend correct incorrect partial/unsure browser error/incompatibility unable to find test example

Events & AccEvent

Similarly to states, I was unable to find published tests of the reported MSAA events fired for ARIA states. For these tests, I matched ARIA states with MSAA events as presented in the W3C's WAI-ARIA User Agent Implementation Guide, and used the ARIA state examples from the Illinois Center for Information Technology and Web Accessibility and the Codetalks wiki along with AccEvent software to monitor the events fired for each change of ARIA state. The AccEvent software used to conduct these tests available here.

Methodology:

Note:

Of the four state-event pairs that were tested ("aria-checked", "aria-expanded", "aria-grabbed", and "aria-hidden"), the summary is as follows:

ARIA State Expected MSAA Event(s) Firefox 3.6.3 Reported Event IE 8.0.6001.18702 Reported Event Opera 10.53 Reported Event Chrome 5.0.375.70 Reported Event Safari 5.0 Reported Event
checked STATECHANGE STATECHANGE IE unresponsive on test example none none none
disabled STATECHANGE unable to test



expanded STATECHANGE STATECHANGE, HIDE, SHOW IE unresponsive on test example none none none
grabbed SELECTION STATECHANGE, HIDE, SHOW IE unresponsive on test example none none none
hidden SELECTION, HIDE, SHOW HIDE, SHOW IE unresponsive on test example none HIDE, SHOW none
readonly STATECHANGE unable to test











Legend correct incorrect partial/unsure browser error unable to find test example