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

From Protocols and Formats Working Group Wiki
Jump to: navigation, search
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>