Outdated Content!
The Protocols and Formats Working Group is no longer chartered to operate. Its work will continue in two new Working Groups:
- https://www.w3.org/WAI/APA/ Accessible Platform Architectures, to review specifications, develop technical support materials, collaborate with other Working Groups on technology accessibility, and coordinate harmonized accessibility strategies within W3C; and
- https://www.w3.org/WAI/ARIA/ Accessible Rich Internet Applications, to continue development of the Accessible Rich Internet Applications (WAI-ARIA) suite of technologies and other technical specifications when needed to bridge known gaps.
Resources from the PFWG remain available to support long-term institutional memory, but this information is of historical value only.
This Wiki page was edited by participants of the Protocols and Formats Working Group. It does not necessarily represent consensus and it may have incorrect information or information that is not supported by other Working Group participants, WAI, or W3C. It may also have some very useful information.
ARIA Normative
WAI-ARIA role | MSAA role | IAccessible2 role (if different from MSAA) | UIA Control Type | ATK role | Mac 'role' | NSAccessibility Role |
---|---|---|---|---|---|---|
"alert" | ROLE_SYSTEM_ALERT | ATK_ROLE_ALERT | ||||
"alertdialog" | ROLE_SYSTEM_ALERT | ATK_ROLE_ALERT | ||||
"application" | ROLE_SYSTEM_APPLICATION | ATK_ROLE_EMBEDDED | ||||
"article" | ||||||
"banner" | ||||||
"button" | <a href="http://www.w3.org/WAI/PF/aria/#aria-haspopup">
ROLE_SYSTEM_PUSHBUTTON. If a "button" has the state aria-haspopup="true" it should be exposed as a ROLE_SYSTEM_BUTTONMENU</a> |
<a href="http://www.w3.org/WAI/PF/aria/#aria-pressed">If
a "button" and aria-pressed is not undefined, it should be exposed in IA2 as IA2_ROLE_TOGGLE_BUTTON</a> |
ATK_ROLE_PUSH_BUTTON | NSAccessibilityButtonRole | ||
"checkbox" | ROLE_SYSTEM_CHECKBUTTON + object attribute checkable="true" | ATK_ROLE_CHECK_BOX + object attribute checkable="true" | NSAccessibilityCheckBoxRole | |||
"columnheader" | ROLE_SYSTEM_COLUMNHEADER | ATK_ROLE_COLUMN_HEADER | ||||
"combobox" | <a href="http://www.w3.org/WAI/PF/aria/#aria-expanded">
ROLE_SYSTEM_COMBOBOX + STATE_SYSTEM_HASPOPUP. If aria-expanded != "true", expose STATE_SYSTEM_COLLAPSED</a> |
ATK_ROLE_COMBO_BOX + ATK_STATE_EXPANDABLE + object attribute haspopup="true" | NSAccessibilityComboBoxRole | |||
"complementary" | ||||||
"contentinfo" | ||||||
"definition" | ||||||
"description" | No role mapping, use xml-roles | IA2_ROLE_TEXT_FRAME | ATK_ROLE_TEXT | |||
"dialog" | ROLE_SYSTEM_DIALOG | ATK_ROLE_DIALOG | ||||
"document" | ROLE_SYSTEM_DOCUMENT | ATK_ROLE_DOCUMENT_FRAME | ||||
"directory" | ||||||
"grid" | ROLE_SYSTEM_TABLE | ATK_ROLE_TABLE | ||||
"gridcell" | ROLE_SYSTEM_CELL | ATK_ROLE_TABLE_CELL | ||||
"group" | ROLE_SYSTEM_GROUPING | ATK_ROLE_PANEL | NSAccessibilityGroupRole | |||
"heading" | None, use xml-roles | IA2_ROLE_HEADING | ATK_ROLE_HEADING | |||
"img" | ROLE_SYSTEM_GRAPHIC | ATK_ROLE_IMAGE | NSAccessibilityImageRole | |||
"label" | ROLE_SYSTEM_STATICTEXT | IA2_ROLE_LABEL | ATK_ROLE_LABEL | |||
"link" | ROLE_SYSTEM_LINK. Also, apply special rule to expose STATE_LINKED to link and all its descendants. | ATK_ROLE_LINK | NSAccessibilityLinkRole | |||
"list" | ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY | ATK_ROLE_LIST | ||||
"listbox" | ROLE_SYSTEM_LIST | <a href="http://www.w3.org/WAI/PF/aria/#aria-owns">
ATK_ROLE_LIST. Special case: if a "listbox" has a parent or is owned by (via aria-owns) a "combobox", it should be exposed with ATK_ROLE_MENU.</a> |
NSAccessibilityListRole | |||
"listitem" | ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY | ATK_ROLE_LISTITEM | ||||
"log" | ||||||
"main" | ||||||
"marquee" | No role mapping, use xml-roles | ATK_ROLE_PANE | ||||
"math" | ||||||
"menu" | ROLE_SYSTEM_MENUPOPUP | ATK_ROLE_MENU. These objects should not be exposed for a submenu if there is a parent menu item spawning the submenu. | NSAccessibilityMenuRole | |||
"menubar" | ROLE_SYSTEM_MENUBAR | ATK_ROLE_MENU_BAR | NSAccessibilityGroupRole | |||
"menuitem" | ROLE_SYSTEM_MENUITEM | ATK_ROLE_MENU_ITEM | <a href="http://www.w3.org/WAI/PF/aria/#group">If the
option's parent has a group role, then role="menuitem" maps to NSAccessibilityMenuButtonRole</a> |
|||
<a href="http://www.w3.org/WAI/PF/aria/#aria-checked">If
aria-checked is not undefined, support object attribute "checkable"="true"</a> |
<a href="http://www.w3.org/WAI/PF/aria/#menu">If the
option's parent has a menu role, then role="menuitem" maps to NSAccessibilityMenuItemRole</a> |
|||||
"menuitemcheckbox" | ROLE_SYSTEM_MENUITEM + object attribute checkable=true | IA2_ROLE_CHECK_MENU_ITEM + object attribute checkable="true" | ATK_ROLE_CHECK_MENU_ITEM + object attribute checkable="true" | NSAccessibilityMenuItemRole | ||
"menuitemradio" | ROLE_SYSTEM_MENUITEM + object attribute checkable=true | IA2_ROLE_RADIO_MENU_ITEM + object attribute checkable="true" | ATK_ROLE_RADIO_MENU_ITEM + object attribute checkable="true" | NSAccessibilityMenuItemRole | ||
"navigation" | ||||||
"note" | ||||||
"option" |
<a href="http://www.w3.org/WAI/PF/aria/#aria-checked"> ROLE_SYSTEM_LISTITEM + if aria-checked is not undefined, support object attribute "checkable"="true"</a> |
ATK_ROLE_LIST_ITEM | <a href="http://www.w3.org/WAI/PF/aria/#menu">If the
option's parent has a menu role, then role="option" maps to NSAccessibilityMenuItemRole</a> |
|||
<a href="http://www.w3.org/WAI/PF/aria/#aria-checked">If
aria-checked is not undefined, support object attribute "checkable"="true"</a> |
<a href="http://www.w3.org/WAI/PF/aria/#listbox">If the
option's parent has a listbox role, then role="option" maps to NSAccessibilityStaticTextRole</a> |
|||||
Special case: if an "option" has a parent that was
exposed as an ATK_ROLE_MENU, it should be exposed as an ATK_ROLE_MENU_ITEM |
||||||
"presentation" | Do not expose this object unless it is focusable | Do not expose this object unless it is focusable | ||||
"progressbar" | ROLE_SYSTEM_PROGRESSBAR + READONLY | ATK_ROLE_PROGRESS_BAR + READONLY | NSAccessibilityProgressIndicatorRole | |||
"radio" | ROLE_SYSTEM_RADIOBUTTON | ATK_ROLE_RADIO_BUTTON | NSAccessibilityRadioButtonRole | |||
"radiogroup" | ROLE_SYSTEM_GROUPING | ATK_ROLE_PANE | NSAccessibilityRadioGroupRole | |||
"region" | ROLE_SYSTEM_PANE | ATK_ROLE_PANE | ||||
"row" | ROLE_SYSTEM_ROW unless inside a "tree" or "treegrid", in which case ROLE_SYSTEM_OUTLINEITEM | ATK_ROLE_LIST_ITEM | ||||
"rowheader" | ROLE_SYSTEM_ROWHEADER | ATK_ROLE_ROW_HEADER | ||||
"search" | ||||||
"section" | None, use xml-roles | IA2_ROLE_SECTION | ATK_ROLE_SECTION | |||
"separator" | ROLE_SYSTEM_SEPARATOR | ATK_ROLE_SEPARATOR | ||||
"slider" | ROLE_SYSTEM_SLIDER | ATK_ROLE_SLIDER | NSAccessibilitySliderRole | |||
"spinbutton" | ROLE_SYSTEM_SPINBUTTON | ATK_ROLE_SPIN_BUTTON | NSAccessibilityProgressIndicatorRole | |||
"status" | ROLE_SYSTEM_STATUSBAR | ATK_ROLE_STATUSBAR | ||||
"tab" |
<a href="http://www.w3.org/WAI/PF/aria/#aria-labelledby"> ROLE_SYSTEM_PAGETAB. Expose SELECTED state if focus is inside tabpanel associated with aria-labelledby.</a> |
<a href="http://www.w3.org/WAI/PF/aria/#aria-labelledby"> ATK_ROLE_PAGE_TAB. Expose SELECTED state if focus is inside tabpanel associated with aria-labelledby.</a> |
||||
"tablist" | ROLE_SYSTEM_PAGETABLIST | ATK_ROLE_PAGE_TAB_LIST | ||||
"tabpanel" | ROLE_SYSTEM_PROPERTYPAGE | ATK_ROLE_SCROLL_PANE | ||||
"textbox" | <a href="http://www.w3.org/WAI/PF/aria/#aria-multiline"> ROLE_SYSTEM_TEXT + IA2_STATE_SINGLE_LINE of aria-multiline is not "true"</a> | <a href="http://www.w3.org/WAI/PF/aria/#aria-multiline"> ATK_ROLE_ENTRY + ATK_STATE_SINGLE_LINE of aria-multiline is not "true"</a> | NSAccessibilityTextAreaRole | |||
"timer" | ||||||
"toolbar" | ROLE_SYSTEM_TOOLBAR | ATK_ROLE_TOOL_BAR | ||||
"tooltip" | ROLE_SYSTEM_TOOLTIP | ATK_ROLE_TOOL_TIP | ||||
"tree" | ROLE_SYSTEM_OUTLINE | ATK_ROLE_TREE | ||||
"treegrid" | ROLE_SYSTEM_OUTLINE | ATK_ROLE_TREE_TABLE | ||||
"treeitem" | <a href="http://www.w3.org/WAI/PF/aria/#aria-checked">
ROLE_SYSTEM_OUTLINEITEM + if aria-checked is not undefined, support object attribute "checkable"="true"</a> |
<a href="http://www.w3.org/WAI/PF/aria/#aria-checked">
ATK_ROLE_LIST_ITEM + if aria-checked is not undefined, support object attribute "checkable"="true"</a> |