tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

RoleMap.h (52043B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 // clang-format off
      6 /**
      7 * Usage: declare the macro ROLE()with the following arguments:
      8 * ROLE(geckoRole, stringRole, ariaRole, atkRole, macRole, macSubrole, msaaRole, ia2Role, iosIsElement, uiaControlType, nameRule)
      9 */
     10 
     11 ROLE(NOTHING,
     12     "nothing",
     13     nullptr,
     14     ATK_ROLE_UNKNOWN,
     15     NSAccessibilityUnknownRole,
     16     NSAccessibilityUnknownSubrole,
     17     ROLE_SYSTEM_CLIENT,
     18     IA2_ROLE_UNKNOWN,
     19     java::SessionAccessibility::CLASSNAME_VIEW,
     20     IsAccessibilityElementRule::No,
     21     UIA_CustomControlTypeId,
     22     eNameFromSubtreeIfReqRule)
     23 
     24 ROLE(MENUBAR,
     25     "menubar",
     26     nsGkAtoms::menubar,
     27     ATK_ROLE_MENU_BAR,
     28     NSAccessibilityMenuBarRole,  //Irrelevant on OS X; the menubar will always be native and on the top of the screen.
     29     NSAccessibilityUnknownSubrole,
     30     ROLE_SYSTEM_MENUBAR,
     31     ROLE_SYSTEM_MENUBAR,
     32     java::SessionAccessibility::CLASSNAME_VIEW,
     33     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
     34     UIA_MenuBarControlTypeId,
     35     eNoNameRule)
     36 
     37 ROLE(SCROLLBAR,
     38     "scrollbar",
     39     nsGkAtoms::scrollbar,
     40     ATK_ROLE_SCROLL_BAR,
     41     NSAccessibilityScrollBarRole,  //We might need to make this its own mozAccessible, to support the children objects (valueindicator, down/up buttons).
     42     NSAccessibilityUnknownSubrole,
     43     ROLE_SYSTEM_SCROLLBAR,
     44     ROLE_SYSTEM_SCROLLBAR,
     45     java::SessionAccessibility::CLASSNAME_VIEW,
     46     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
     47     UIA_ScrollBarControlTypeId,
     48     eNameFromValueRule)
     49 
     50 ROLE(ALERT,
     51     "alert",
     52     nsGkAtoms::alert,
     53     ATK_ROLE_ALERT,
     54     NSAccessibilityGroupRole,
     55     @"AXApplicationAlert",
     56     ROLE_SYSTEM_ALERT,
     57     ROLE_SYSTEM_ALERT,
     58     java::SessionAccessibility::CLASSNAME_VIEW,
     59     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
     60     UIA_GroupControlTypeId,
     61     eNameFromSubtreeIfReqRule)
     62 
     63 ROLE(INTERNAL_FRAME,
     64     "internal frame",
     65     nullptr,
     66     ATK_ROLE_INTERNAL_FRAME,
     67     NSAccessibilityScrollAreaRole,
     68     NSAccessibilityUnknownSubrole,
     69     ROLE_SYSTEM_GROUPING,
     70     IA2_ROLE_INTERNAL_FRAME,
     71     java::SessionAccessibility::CLASSNAME_VIEW,
     72     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
     73     UIA_PaneControlTypeId,
     74     eNoNameRule)
     75 
     76 ROLE(MENUPOPUP,
     77     "menupopup",
     78     nsGkAtoms::menu,
     79     ATK_ROLE_MENU,
     80     NSAccessibilityMenuRole,  //The parent of menuitems.
     81     NSAccessibilityUnknownSubrole,
     82     ROLE_SYSTEM_MENUPOPUP,
     83     ROLE_SYSTEM_MENUPOPUP,
     84     java::SessionAccessibility::CLASSNAME_VIEW,
     85     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
     86     UIA_MenuControlTypeId,
     87     eNoNameRule)
     88 
     89 ROLE(MENUITEM,
     90     "menuitem",
     91     nsGkAtoms::menuitem,
     92     ATK_ROLE_MENU_ITEM,
     93     NSAccessibilityMenuItemRole,
     94     NSAccessibilityUnknownSubrole,
     95     ROLE_SYSTEM_MENUITEM,
     96     ROLE_SYSTEM_MENUITEM,
     97     java::SessionAccessibility::CLASSNAME_MENUITEM,
     98     IsAccessibilityElementRule::Yes,
     99     UIA_MenuItemControlTypeId,
    100     eNameFromSubtreeRule)
    101 
    102 ROLE(TOOLTIP,
    103     "tooltip",
    104     nsGkAtoms::tooltip,
    105     ATK_ROLE_TOOL_TIP,
    106     NSAccessibilityGroupRole,
    107     @"AXUserInterfaceTooltip",
    108     ROLE_SYSTEM_TOOLTIP,
    109     ROLE_SYSTEM_TOOLTIP,
    110     java::SessionAccessibility::CLASSNAME_VIEW,
    111     IsAccessibilityElementRule::Yes,
    112     UIA_ToolTipControlTypeId,
    113     eNameFromSubtreeRule)
    114 
    115 ROLE(APPLICATION,
    116     "application",
    117     nsGkAtoms::application,
    118     ATK_ROLE_EMBEDDED,
    119     NSAccessibilityGroupRole,  //Unused on OS X. the system will take care of this.
    120     @"AXLandmarkApplication",
    121     ROLE_SYSTEM_APPLICATION,
    122     ROLE_SYSTEM_APPLICATION,
    123     java::SessionAccessibility::CLASSNAME_VIEW,
    124     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    125     UIA_PaneControlTypeId,
    126     eNoNameRule)
    127 
    128 ROLE(DOCUMENT,
    129     "document",
    130     nsGkAtoms::document,
    131     ATK_ROLE_DOCUMENT_WEB,
    132     @"AXWebArea",
    133     NSAccessibilityUnknownSubrole,
    134     ROLE_SYSTEM_DOCUMENT,
    135     ROLE_SYSTEM_DOCUMENT,
    136     java::SessionAccessibility::CLASSNAME_VIEW,
    137     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    138     UIA_DocumentControlTypeId,
    139     eNoNameRule)
    140 
    141 /**
    142 *  msaa comment:
    143 *   We used to map to ROLE_SYSTEM_PANE, but JAWS would
    144 *   not read the accessible name for the contaning pane.
    145 *   However, JAWS will read the accessible name for a groupbox.
    146 *   By mapping a PANE to a GROUPING, we get no undesirable effects,
    147 *   but fortunately JAWS will then read the group's label,
    148 *   when an inner control gets focused.
    149 */
    150 ROLE(PANE,
    151     "pane",
    152     nullptr,
    153     ATK_ROLE_PANEL,
    154     NSAccessibilityGroupRole,
    155     NSAccessibilityUnknownSubrole,
    156     ROLE_SYSTEM_GROUPING,
    157     ROLE_SYSTEM_GROUPING,
    158     java::SessionAccessibility::CLASSNAME_VIEW,
    159     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    160     UIA_PaneControlTypeId,
    161     eNoNameRule)
    162 
    163 ROLE(DIALOG,
    164     "dialog",
    165     nsGkAtoms::dialog,
    166     ATK_ROLE_DIALOG,
    167     NSAccessibilityGroupRole,  //There's a dialog subrole.
    168     NSAccessibilityUnknownSubrole,
    169     ROLE_SYSTEM_DIALOG,
    170     ROLE_SYSTEM_DIALOG,
    171     java::SessionAccessibility::CLASSNAME_DIALOG,
    172     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    173     UIA_PaneControlTypeId,
    174     eNoNameRule)
    175 
    176 ROLE(GROUPING,
    177     "grouping",
    178     nsGkAtoms::group,
    179     ATK_ROLE_PANEL,
    180     NSAccessibilityGroupRole,
    181     NSAccessibilityUnknownSubrole,
    182     ROLE_SYSTEM_GROUPING,
    183     ROLE_SYSTEM_GROUPING,
    184     java::SessionAccessibility::CLASSNAME_VIEW,
    185     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    186     UIA_GroupControlTypeId,
    187     eNameFromSubtreeIfReqRule)
    188 
    189 ROLE(SEPARATOR,
    190     "separator",
    191     nsGkAtoms::separator,
    192     ATK_ROLE_SEPARATOR,
    193     NSAccessibilitySplitterRole,
    194     @"AXContentSeparator",
    195     ROLE_SYSTEM_SEPARATOR,
    196     ROLE_SYSTEM_SEPARATOR,
    197     java::SessionAccessibility::CLASSNAME_VIEW,
    198     IsAccessibilityElementRule::Yes,
    199     UIA_SeparatorControlTypeId,
    200     eNoNameRule)
    201 
    202 ROLE(TOOLBAR,
    203     "toolbar",
    204     nsGkAtoms::toolbar,
    205     ATK_ROLE_TOOL_BAR,
    206     NSAccessibilityToolbarRole,
    207     NSAccessibilityUnknownSubrole,
    208     ROLE_SYSTEM_TOOLBAR,
    209     ROLE_SYSTEM_TOOLBAR,
    210     java::SessionAccessibility::CLASSNAME_VIEW,
    211     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    212     UIA_ToolBarControlTypeId,
    213     eNoNameRule)
    214 
    215 ROLE(STATUSBAR,
    216     "statusbar",
    217     nsGkAtoms::status,
    218     ATK_ROLE_STATUSBAR,
    219     NSAccessibilityGroupRole,
    220     @"AXApplicationStatus",
    221     ROLE_SYSTEM_STATUSBAR,
    222     ROLE_SYSTEM_STATUSBAR,
    223     java::SessionAccessibility::CLASSNAME_VIEW,
    224     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    225     UIA_GroupControlTypeId,
    226     eNoNameRule)
    227 
    228 ROLE(TABLE,
    229     "table",
    230     nsGkAtoms::table,
    231     ATK_ROLE_TABLE,
    232     NSAccessibilityTableRole,
    233     NSAccessibilityUnknownSubrole,
    234     ROLE_SYSTEM_TABLE,
    235     ROLE_SYSTEM_TABLE,
    236     java::SessionAccessibility::CLASSNAME_GRIDVIEW,
    237     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    238     UIA_TableControlTypeId,
    239     eNameFromSubtreeIfReqRule)
    240 
    241 ROLE(COLUMNHEADER,
    242     "columnheader",
    243     nsGkAtoms::columnheader,
    244     ATK_ROLE_COLUMN_HEADER,
    245     NSAccessibilityCellRole,
    246     NSAccessibilityUnknownSubrole,
    247     ROLE_SYSTEM_COLUMNHEADER,
    248     ROLE_SYSTEM_COLUMNHEADER,
    249     java::SessionAccessibility::CLASSNAME_VIEW,
    250     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    251     UIA_DataItemControlTypeId,
    252     eNameFromSubtreeRule)
    253 
    254 ROLE(ROWHEADER,
    255     "rowheader",
    256     nsGkAtoms::rowheader,
    257     ATK_ROLE_ROW_HEADER,
    258     NSAccessibilityCellRole,
    259     NSAccessibilityUnknownSubrole,
    260     ROLE_SYSTEM_ROWHEADER,
    261     ROLE_SYSTEM_ROWHEADER,
    262     java::SessionAccessibility::CLASSNAME_VIEW,
    263     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    264     UIA_HeaderItemControlTypeId,
    265     eNameFromSubtreeRule)
    266 
    267 ROLE(ROW,
    268     "row",
    269     nsGkAtoms::row,
    270     ATK_ROLE_TABLE_ROW,
    271     NSAccessibilityRowRole,
    272     NSAccessibilityUnknownSubrole,
    273     ROLE_SYSTEM_ROW,
    274     ROLE_SYSTEM_ROW,
    275     java::SessionAccessibility::CLASSNAME_VIEW,
    276     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    277     UIA_DataItemControlTypeId,
    278     eNameFromSubtreeRule)
    279 
    280 ROLE(CELL,
    281     "cell",
    282     nsGkAtoms::cell,
    283     ATK_ROLE_TABLE_CELL,
    284     NSAccessibilityCellRole,
    285     NSAccessibilityUnknownSubrole,
    286     ROLE_SYSTEM_CELL,
    287     ROLE_SYSTEM_CELL,
    288     java::SessionAccessibility::CLASSNAME_VIEW,
    289     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    290     UIA_DataItemControlTypeId,
    291     eNameFromSubtreeRule)
    292 
    293 ROLE(LINK,
    294     "link",
    295     nsGkAtoms::link,
    296     ATK_ROLE_LINK,
    297     NSAccessibilityLinkRole,
    298     NSAccessibilityUnknownSubrole,
    299     ROLE_SYSTEM_LINK,
    300     ROLE_SYSTEM_LINK,
    301     java::SessionAccessibility::CLASSNAME_VIEW,
    302     IsAccessibilityElementRule::IfBrokenUp,
    303     UIA_HyperlinkControlTypeId,
    304     eNameFromSubtreeRule)
    305 
    306 ROLE(LIST,
    307     "list",
    308     nsGkAtoms::list,
    309     ATK_ROLE_LIST,
    310     NSAccessibilityListRole,
    311     NSAccessibilityContentListSubrole,
    312     ROLE_SYSTEM_LIST,
    313     ROLE_SYSTEM_LIST,
    314     java::SessionAccessibility::CLASSNAME_LISTVIEW,
    315     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    316     UIA_ListControlTypeId,
    317     eNameFromSubtreeIfReqRule)
    318 
    319 ROLE(LISTITEM,
    320     "listitem",
    321     nsGkAtoms::listitem,
    322     ATK_ROLE_LIST_ITEM,
    323     NSAccessibilityGroupRole,
    324     NSAccessibilityUnknownSubrole,
    325     ROLE_SYSTEM_LISTITEM,
    326     ROLE_SYSTEM_LISTITEM,
    327     java::SessionAccessibility::CLASSNAME_VIEW,
    328     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    329     UIA_ListItemControlTypeId,
    330     eNameFromSubtreeRule)
    331 
    332 ROLE(OUTLINE,
    333     "outline",
    334     nsGkAtoms::tree,
    335     ATK_ROLE_TREE,
    336     NSAccessibilityOutlineRole,
    337     NSAccessibilityUnknownSubrole,
    338     ROLE_SYSTEM_OUTLINE,
    339     ROLE_SYSTEM_OUTLINE,
    340     java::SessionAccessibility::CLASSNAME_VIEW,
    341     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    342     UIA_TreeControlTypeId,
    343     eNoNameRule)
    344 
    345 ROLE(OUTLINEITEM,
    346     "outlineitem",
    347     nsGkAtoms::treeitem,
    348     ATK_ROLE_TREE_ITEM,
    349     NSAccessibilityRowRole,
    350     NSAccessibilityOutlineRowSubrole,
    351     ROLE_SYSTEM_OUTLINEITEM,
    352     ROLE_SYSTEM_OUTLINEITEM,
    353     java::SessionAccessibility::CLASSNAME_VIEW,
    354     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    355     UIA_TreeItemControlTypeId,
    356     eNameFromSubtreeRule)
    357 
    358 ROLE(PAGETAB,
    359     "pagetab",
    360     nsGkAtoms::tab,
    361     ATK_ROLE_PAGE_TAB,
    362     NSAccessibilityRadioButtonRole,
    363     @"AXTabButton", // Can be upgraded to NSAccessibilityTabButtonSubrole in 10.13
    364     ROLE_SYSTEM_PAGETAB,
    365     ROLE_SYSTEM_PAGETAB,
    366     java::SessionAccessibility::CLASSNAME_VIEW,
    367     IsAccessibilityElementRule::Yes,
    368     UIA_TabItemControlTypeId,
    369     eNameFromSubtreeRule)
    370 
    371 ROLE(PROPERTYPAGE,
    372     "propertypage",
    373     nsGkAtoms::tabpanel,
    374     ATK_ROLE_SCROLL_PANE,
    375     NSAccessibilityGroupRole,
    376     @"AXTabPanel",
    377     ROLE_SYSTEM_PROPERTYPAGE,
    378     ROLE_SYSTEM_PROPERTYPAGE,
    379     java::SessionAccessibility::CLASSNAME_VIEW,
    380     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    381     UIA_PaneControlTypeId,
    382     eNoNameRule)
    383 
    384 ROLE(GRAPHIC,
    385     "graphic",
    386     nsGkAtoms::image,
    387     ATK_ROLE_IMAGE,
    388     NSAccessibilityImageRole,
    389     NSAccessibilityUnknownSubrole,
    390     ROLE_SYSTEM_GRAPHIC,
    391     ROLE_SYSTEM_GRAPHIC,
    392     java::SessionAccessibility::CLASSNAME_IMAGE,
    393     IsAccessibilityElementRule::Yes,
    394     UIA_ImageControlTypeId,
    395     eNoNameRule)
    396 
    397 ROLE(STATICTEXT,
    398     "statictext",
    399     nullptr,
    400     ATK_ROLE_UNKNOWN,
    401     NSAccessibilityStaticTextRole,
    402     NSAccessibilityUnknownSubrole,
    403     ROLE_SYSTEM_STATICTEXT,
    404     ROLE_SYSTEM_STATICTEXT,
    405     java::SessionAccessibility::CLASSNAME_VIEW,
    406     IsAccessibilityElementRule::IfParentIsntElementWithName,
    407     UIA_TextControlTypeId,
    408     eNoNameRule)
    409 
    410 ROLE(TEXT_LEAF,
    411     "text leaf",
    412     nullptr,
    413     ATK_ROLE_UNKNOWN,
    414     NSAccessibilityStaticTextRole,
    415     NSAccessibilityUnknownSubrole,
    416     ROLE_SYSTEM_TEXT,
    417     ROLE_SYSTEM_TEXT,
    418     java::SessionAccessibility::CLASSNAME_VIEW,
    419     IsAccessibilityElementRule::IfParentIsntElementWithName,
    420     UIA_TextControlTypeId,
    421     eNoNameRule)
    422 
    423 ROLE(PUSHBUTTON,
    424     "pushbutton",
    425     nsGkAtoms::button,
    426     ATK_ROLE_PUSH_BUTTON,
    427     NSAccessibilityButtonRole,
    428     NSAccessibilityUnknownSubrole,
    429     ROLE_SYSTEM_PUSHBUTTON,
    430     ROLE_SYSTEM_PUSHBUTTON,
    431     java::SessionAccessibility::CLASSNAME_BUTTON,
    432     IsAccessibilityElementRule::Yes,
    433     UIA_ButtonControlTypeId,
    434     eNameFromSubtreeRule)
    435 
    436 ROLE(CHECKBUTTON,
    437     "checkbutton",
    438     nsGkAtoms::checkbox,
    439     ATK_ROLE_CHECK_BOX,
    440     NSAccessibilityCheckBoxRole,
    441     NSAccessibilityUnknownSubrole,
    442     ROLE_SYSTEM_CHECKBUTTON,
    443     ROLE_SYSTEM_CHECKBUTTON,
    444     java::SessionAccessibility::CLASSNAME_CHECKBOX,
    445     IsAccessibilityElementRule::Yes,
    446     UIA_CheckBoxControlTypeId,
    447     eNameFromSubtreeRule)
    448 
    449 ROLE(RADIOBUTTON,
    450     "radiobutton",
    451     nsGkAtoms::radio,
    452     ATK_ROLE_RADIO_BUTTON,
    453     NSAccessibilityRadioButtonRole,
    454     NSAccessibilityUnknownSubrole,
    455     ROLE_SYSTEM_RADIOBUTTON,
    456     ROLE_SYSTEM_RADIOBUTTON,
    457     java::SessionAccessibility::CLASSNAME_RADIOBUTTON,
    458     IsAccessibilityElementRule::Yes,
    459     UIA_RadioButtonControlTypeId,
    460     eNameFromSubtreeRule)
    461 
    462 // Equivalent of HTML select element with size="1". See also EDITCOMBOBOX.
    463 ROLE(COMBOBOX,
    464     "combobox",
    465     nsGkAtoms::combobox,
    466     ATK_ROLE_COMBO_BOX,
    467     NSAccessibilityPopUpButtonRole,
    468     NSAccessibilityUnknownSubrole,
    469     ROLE_SYSTEM_COMBOBOX,
    470     ROLE_SYSTEM_COMBOBOX,
    471     java::SessionAccessibility::CLASSNAME_SPINNER,
    472     IsAccessibilityElementRule::Yes,
    473     UIA_ComboBoxControlTypeId,
    474     eNameFromValueRule)
    475 
    476 ROLE(PROGRESSBAR,
    477     "progressbar",
    478     nsGkAtoms::progressbar,
    479     ATK_ROLE_PROGRESS_BAR,
    480     NSAccessibilityProgressIndicatorRole,
    481     NSAccessibilityUnknownSubrole,
    482     ROLE_SYSTEM_PROGRESSBAR,
    483     ROLE_SYSTEM_PROGRESSBAR,
    484     java::SessionAccessibility::CLASSNAME_PROGRESSBAR,
    485     IsAccessibilityElementRule::Yes,
    486     UIA_ProgressBarControlTypeId,
    487     eNameFromValueRule)
    488 
    489 ROLE(SLIDER,
    490     "slider",
    491     nsGkAtoms::slider,
    492     ATK_ROLE_SLIDER,
    493     NSAccessibilitySliderRole,
    494     NSAccessibilityUnknownSubrole,
    495     ROLE_SYSTEM_SLIDER,
    496     ROLE_SYSTEM_SLIDER,
    497     java::SessionAccessibility::CLASSNAME_SEEKBAR,
    498     IsAccessibilityElementRule::Yes,
    499     UIA_SliderControlTypeId,
    500     eNameFromValueRule)
    501 
    502 ROLE(SPINBUTTON,
    503     "spinbutton",
    504     nsGkAtoms::spinbutton,
    505     ATK_ROLE_SPIN_BUTTON,
    506     NSAccessibilityIncrementorRole,  //Subroles: Increment/Decrement.
    507     NSAccessibilityUnknownSubrole,
    508     ROLE_SYSTEM_SPINBUTTON,
    509     ROLE_SYSTEM_SPINBUTTON,
    510     java::SessionAccessibility::CLASSNAME_EDITTEXT,
    511     IsAccessibilityElementRule::Yes,
    512     UIA_SpinnerControlTypeId,
    513     eNameFromValueRule)
    514 
    515 ROLE(DIAGRAM,
    516     "diagram",
    517     nsGkAtoms::graphicsDocument,
    518     ATK_ROLE_IMAGE,
    519     NSAccessibilityImageRole,
    520     NSAccessibilityUnknownSubrole,
    521     ROLE_SYSTEM_DIAGRAM,
    522     ROLE_SYSTEM_DIAGRAM,
    523     java::SessionAccessibility::CLASSNAME_IMAGE,
    524     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    525     UIA_ImageControlTypeId,
    526     eNoNameRule)
    527 
    528 ROLE(ANIMATION,
    529     "animation",
    530     nsGkAtoms::marquee,
    531     ATK_ROLE_ANIMATION,
    532     NSAccessibilityUnknownRole,
    533     @"AXApplicationMarquee",
    534     ROLE_SYSTEM_ANIMATION,
    535     ROLE_SYSTEM_ANIMATION,
    536     java::SessionAccessibility::CLASSNAME_VIEW,
    537     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    538     UIA_GroupControlTypeId,
    539     eNoNameRule)
    540 
    541 ROLE(BUTTONDROPDOWN,
    542     "buttondropdown",
    543     nullptr,
    544     ATK_ROLE_PUSH_BUTTON,
    545     NSAccessibilityPopUpButtonRole,
    546     NSAccessibilityUnknownSubrole,
    547     ROLE_SYSTEM_BUTTONDROPDOWN,
    548     ROLE_SYSTEM_BUTTONDROPDOWN,
    549     java::SessionAccessibility::CLASSNAME_VIEW,
    550     IsAccessibilityElementRule::Yes,
    551     UIA_SplitButtonControlTypeId,
    552     eNameFromSubtreeRule)
    553 
    554 ROLE(BUTTONMENU,
    555     "buttonmenu",
    556     nsGkAtoms::button,
    557     ATK_ROLE_PUSH_BUTTON,
    558     NSAccessibilityMenuButtonRole,
    559     NSAccessibilityUnknownSubrole,
    560     ROLE_SYSTEM_BUTTONMENU,
    561     ROLE_SYSTEM_BUTTONMENU,
    562     java::SessionAccessibility::CLASSNAME_SPINNER,
    563     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    564     UIA_ButtonControlTypeId,
    565     eNameFromSubtreeRule)
    566 
    567 ROLE(WHITESPACE,
    568     "whitespace",
    569     nullptr,
    570     ATK_ROLE_UNKNOWN,
    571     NSAccessibilityUnknownRole,
    572     NSAccessibilityUnknownSubrole,
    573     ROLE_SYSTEM_WHITESPACE,
    574     ROLE_SYSTEM_WHITESPACE,
    575     java::SessionAccessibility::CLASSNAME_VIEW,
    576     IsAccessibilityElementRule::No,
    577     UIA_TextControlTypeId,
    578     eNoNameRule)
    579 
    580 ROLE(PAGETABLIST,
    581     "pagetablist",
    582     nsGkAtoms::tablist,
    583     ATK_ROLE_PAGE_TAB_LIST,
    584     NSAccessibilityTabGroupRole,
    585     NSAccessibilityUnknownSubrole,
    586     ROLE_SYSTEM_PAGETABLIST,
    587     ROLE_SYSTEM_PAGETABLIST,
    588     java::SessionAccessibility::CLASSNAME_TABWIDGET,
    589     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    590     UIA_TabControlTypeId,
    591     eNoNameRule)
    592 
    593 ROLE(CANVAS,
    594     "canvas",
    595     nullptr,
    596     ATK_ROLE_CANVAS,
    597     NSAccessibilityImageRole,
    598     NSAccessibilityUnknownSubrole,
    599     ROLE_SYSTEM_GRAPHIC,
    600     IA2_ROLE_CANVAS,
    601     java::SessionAccessibility::CLASSNAME_IMAGE,
    602     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    603     UIA_ImageControlTypeId,
    604     eNoNameRule)
    605 
    606 ROLE(CHECK_MENU_ITEM,
    607     "check menu item",
    608     nsGkAtoms::menuitemcheckbox,
    609     ATK_ROLE_CHECK_MENU_ITEM,
    610     NSAccessibilityMenuItemRole,
    611     NSAccessibilityUnknownSubrole,
    612     ROLE_SYSTEM_MENUITEM,
    613     IA2_ROLE_CHECK_MENU_ITEM,
    614     java::SessionAccessibility::CLASSNAME_MENUITEM,
    615     IsAccessibilityElementRule::Yes,
    616     UIA_MenuItemControlTypeId,
    617     eNameFromSubtreeRule)
    618 
    619 ROLE(DATE_EDITOR,
    620     "date editor",
    621     nullptr,
    622     ATK_ROLE_DATE_EDITOR,
    623     @"AXGroup",
    624     NSAccessibilityUnknownSubrole,
    625     ROLE_SYSTEM_GROUPING,
    626     IA2_ROLE_DATE_EDITOR,
    627     java::SessionAccessibility::CLASSNAME_SPINNER,
    628     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    629     UIA_GroupControlTypeId,
    630     eNoNameRule)
    631 
    632 ROLE(CHROME_WINDOW,
    633     "chrome window",
    634     nullptr,
    635     ATK_ROLE_FRAME,
    636     NSAccessibilityGroupRole,  //Contains the main Firefox UI
    637     NSAccessibilityUnknownSubrole,
    638     ROLE_SYSTEM_APPLICATION,
    639     IA2_ROLE_FRAME,
    640     java::SessionAccessibility::CLASSNAME_VIEW,
    641     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    642     UIA_WindowControlTypeId,
    643     eNoNameRule)
    644 
    645 ROLE(LABEL,
    646     "label",
    647     nullptr,
    648     ATK_ROLE_LABEL,
    649     NSAccessibilityGroupRole,
    650     NSAccessibilityUnknownSubrole,
    651     ROLE_SYSTEM_STATICTEXT,
    652     IA2_ROLE_LABEL,
    653     java::SessionAccessibility::CLASSNAME_VIEW,
    654     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    655     UIA_GroupControlTypeId,
    656     eNameFromSubtreeRule)
    657 
    658 ROLE(PASSWORD_TEXT,
    659     "password text",
    660     nullptr,
    661     ATK_ROLE_PASSWORD_TEXT,
    662     NSAccessibilityTextFieldRole,
    663     NSAccessibilitySecureTextFieldSubrole,
    664     ROLE_SYSTEM_TEXT,
    665     ROLE_SYSTEM_TEXT,
    666     java::SessionAccessibility::CLASSNAME_EDITTEXT,
    667     IsAccessibilityElementRule::Yes,
    668     UIA_EditControlTypeId,
    669     eNoNameRule)
    670 
    671 ROLE(RADIO_MENU_ITEM,
    672     "radio menu item",
    673     nsGkAtoms::menuitemradio,
    674     ATK_ROLE_RADIO_MENU_ITEM,
    675     NSAccessibilityMenuItemRole,
    676     NSAccessibilityUnknownSubrole,
    677     ROLE_SYSTEM_MENUITEM,
    678     IA2_ROLE_RADIO_MENU_ITEM,
    679     java::SessionAccessibility::CLASSNAME_MENUITEM,
    680     IsAccessibilityElementRule::Yes,
    681     UIA_MenuItemControlTypeId,
    682     eNameFromSubtreeRule)
    683 
    684 ROLE(TEXT_CONTAINER,
    685     "text container",
    686     nsGkAtoms::generic,
    687     ATK_ROLE_SECTION,
    688     NSAccessibilityGroupRole,
    689     NSAccessibilityUnknownSubrole,
    690     ROLE_SYSTEM_GROUPING,
    691     IA2_ROLE_TEXT_FRAME,
    692     java::SessionAccessibility::CLASSNAME_VIEW,
    693     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    694     UIA_GroupControlTypeId,
    695     eNameFromSubtreeIfReqRule)
    696 
    697 ROLE(TOGGLE_BUTTON,
    698     "toggle button",
    699     nsGkAtoms::button,
    700     ATK_ROLE_TOGGLE_BUTTON,
    701     NSAccessibilityCheckBoxRole,
    702     NSAccessibilityToggleSubrole,
    703     ROLE_SYSTEM_PUSHBUTTON,
    704     IA2_ROLE_TOGGLE_BUTTON,
    705     java::SessionAccessibility::CLASSNAME_TOGGLEBUTTON,
    706     IsAccessibilityElementRule::Yes,
    707     UIA_ButtonControlTypeId,
    708     eNameFromSubtreeRule)
    709 
    710 ROLE(TREE_TABLE,
    711     "tree table",
    712     nsGkAtoms::treegrid,
    713     ATK_ROLE_TREE_TABLE,
    714     NSAccessibilityTableRole,
    715     NSAccessibilityUnknownSubrole,
    716     ROLE_SYSTEM_OUTLINE,
    717     ROLE_SYSTEM_OUTLINE,
    718     java::SessionAccessibility::CLASSNAME_GRIDVIEW,
    719     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    720     UIA_DataGridControlTypeId,
    721     eNoNameRule)
    722 
    723 ROLE(PARAGRAPH,
    724     "paragraph",
    725     nsGkAtoms::paragraph,
    726     ATK_ROLE_PARAGRAPH,
    727     NSAccessibilityGroupRole,
    728     NSAccessibilityUnknownSubrole,
    729     ROLE_SYSTEM_GROUPING,
    730     IA2_ROLE_PARAGRAPH,
    731     java::SessionAccessibility::CLASSNAME_VIEW,
    732     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    733     UIA_TextControlTypeId,
    734     eNameFromSubtreeIfReqRule)
    735 
    736 ROLE(ENTRY,
    737     "entry",
    738     nsGkAtoms::textbox,
    739     ATK_ROLE_ENTRY,
    740     NSAccessibilityTextFieldRole,
    741     NSAccessibilityUnknownSubrole,
    742     ROLE_SYSTEM_TEXT,
    743     ROLE_SYSTEM_TEXT,
    744     java::SessionAccessibility::CLASSNAME_EDITTEXT,
    745     IsAccessibilityElementRule::Yes,
    746     UIA_EditControlTypeId,
    747     eNameFromValueRule)
    748 
    749 ROLE(CAPTION,
    750     "caption",
    751     nsGkAtoms::caption,
    752     ATK_ROLE_CAPTION,
    753     NSAccessibilityGroupRole,
    754     NSAccessibilityUnknownSubrole,
    755     ROLE_SYSTEM_GROUPING,
    756     IA2_ROLE_CAPTION,
    757     java::SessionAccessibility::CLASSNAME_VIEW,
    758     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    759     UIA_TextControlTypeId,
    760     eNameFromSubtreeIfReqRule)
    761 
    762 ROLE(NON_NATIVE_DOCUMENT,
    763     "non-native document",
    764     nsGkAtoms::document,
    765     ATK_ROLE_DOCUMENT_FRAME,
    766     NSAccessibilityGroupRole,
    767     @"AXDocument",
    768     ROLE_SYSTEM_DOCUMENT,
    769     ROLE_SYSTEM_DOCUMENT,
    770     java::SessionAccessibility::CLASSNAME_VIEW,
    771     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    772     UIA_DocumentControlTypeId,
    773     eNoNameRule)
    774 
    775 ROLE(HEADING,
    776     "heading",
    777     nsGkAtoms::heading,
    778     ATK_ROLE_HEADING,
    779     @"AXHeading",
    780     NSAccessibilityUnknownSubrole,
    781     ROLE_SYSTEM_GROUPING,
    782     IA2_ROLE_HEADING,
    783     java::SessionAccessibility::CLASSNAME_VIEW,
    784     IsAccessibilityElementRule::IfChildless,
    785     UIA_TextControlTypeId,
    786     eNameFromSubtreeRule)
    787 
    788 ROLE(SECTION,
    789     "section",
    790     nsGkAtoms::generic,
    791     ATK_ROLE_SECTION,
    792     NSAccessibilityGroupRole,
    793     NSAccessibilityUnknownSubrole,
    794     ROLE_SYSTEM_GROUPING,
    795     IA2_ROLE_SECTION,
    796     java::SessionAccessibility::CLASSNAME_VIEW,
    797     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    798     UIA_GroupControlTypeId,
    799     eNameFromSubtreeIfReqRule)
    800 
    801 ROLE(FORM,
    802     "form",
    803     nsGkAtoms::form,
    804     ATK_ROLE_FORM,
    805     NSAccessibilityGroupRole,
    806     NSAccessibilityUnknownSubrole,
    807     ROLE_SYSTEM_GROUPING,
    808     IA2_ROLE_FORM,
    809     java::SessionAccessibility::CLASSNAME_VIEW,
    810     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    811     UIA_GroupControlTypeId,
    812     eNoNameRule)
    813 
    814 ROLE(APP_ROOT,
    815     "app root",
    816     nullptr,
    817     ATK_ROLE_APPLICATION,
    818     NSAccessibilityUnknownRole,  //Unused on OS X
    819     NSAccessibilityUnknownSubrole,
    820     ROLE_SYSTEM_APPLICATION,
    821     ROLE_SYSTEM_APPLICATION,
    822     java::SessionAccessibility::CLASSNAME_VIEW,
    823     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    824     UIA_WindowControlTypeId,
    825     eNoNameRule)
    826 
    827 ROLE(PARENT_MENUITEM,
    828     "parent menuitem",
    829     nsGkAtoms::menuitem,
    830     ATK_ROLE_MENU,
    831     NSAccessibilityMenuItemRole,
    832     NSAccessibilityUnknownSubrole,
    833     ROLE_SYSTEM_MENUITEM,
    834     ROLE_SYSTEM_MENUITEM,
    835     java::SessionAccessibility::CLASSNAME_MENUITEM,
    836     IsAccessibilityElementRule::Yes,
    837     UIA_MenuItemControlTypeId,
    838     eNameFromSubtreeRule)
    839 
    840 ROLE(COMBOBOX_LIST,
    841     "combobox list",
    842     nsGkAtoms::listbox,
    843     ATK_ROLE_MENU,
    844     NSAccessibilityMenuRole,
    845     NSAccessibilityUnknownSubrole,
    846     ROLE_SYSTEM_LIST,
    847     ROLE_SYSTEM_LIST,
    848     java::SessionAccessibility::CLASSNAME_VIEW,
    849     IsAccessibilityElementRule::No,
    850     UIA_ListControlTypeId,
    851     eNoNameRule)
    852 
    853 ROLE(COMBOBOX_OPTION,
    854     "combobox option",
    855     nsGkAtoms::option,
    856     ATK_ROLE_MENU_ITEM,
    857     NSAccessibilityMenuItemRole,
    858     NSAccessibilityUnknownSubrole,
    859     ROLE_SYSTEM_LISTITEM,
    860     ROLE_SYSTEM_LISTITEM,
    861     java::SessionAccessibility::CLASSNAME_MENUITEM,
    862     IsAccessibilityElementRule::Yes,
    863     UIA_ListItemControlTypeId,
    864     eNameFromSubtreeRule)
    865 
    866 ROLE(IMAGE_MAP,
    867     "image map",
    868     nsGkAtoms::img,
    869     ATK_ROLE_IMAGE,
    870     @"AXImageMap",
    871     NSAccessibilityUnknownSubrole,
    872     ROLE_SYSTEM_GRAPHIC,
    873     ROLE_SYSTEM_GRAPHIC,
    874     java::SessionAccessibility::CLASSNAME_IMAGE,
    875     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    876     UIA_ImageControlTypeId,
    877     eNoNameRule)
    878 
    879 ROLE(OPTION,
    880     "listbox option",
    881     nsGkAtoms::option,
    882     ATK_ROLE_LIST_ITEM,
    883     NSAccessibilityStaticTextRole,
    884     NSAccessibilityUnknownSubrole,
    885     ROLE_SYSTEM_LISTITEM,
    886     ROLE_SYSTEM_LISTITEM,
    887     java::SessionAccessibility::CLASSNAME_VIEW,
    888     IsAccessibilityElementRule::Yes,
    889     UIA_ListItemControlTypeId,
    890     eNameFromSubtreeRule)
    891 
    892 ROLE(RICH_OPTION,
    893     "listbox rich option",
    894     nullptr,
    895     ATK_ROLE_LIST_ITEM,
    896     NSAccessibilityRowRole,
    897     NSAccessibilityUnknownSubrole,
    898     ROLE_SYSTEM_LISTITEM,
    899     ROLE_SYSTEM_LISTITEM,
    900     java::SessionAccessibility::CLASSNAME_VIEW,
    901     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    902     UIA_ListItemControlTypeId,
    903     eNameFromSubtreeRule)
    904 
    905 ROLE(LISTBOX,
    906     "listbox",
    907     nsGkAtoms::listbox,
    908     ATK_ROLE_LIST_BOX,
    909     NSAccessibilityListRole,
    910     NSAccessibilityUnknownSubrole,
    911     ROLE_SYSTEM_LIST,
    912     ROLE_SYSTEM_LIST,
    913     java::SessionAccessibility::CLASSNAME_LISTVIEW,
    914     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    915     UIA_ListControlTypeId,
    916     eNameFromValueRule)
    917 
    918 ROLE(FLAT_EQUATION,
    919     "flat equation",
    920     nsGkAtoms::math,
    921     ATK_ROLE_UNKNOWN,
    922     NSAccessibilityUnknownRole,
    923     @"AXDocumentMath",
    924     ROLE_SYSTEM_EQUATION,
    925     ROLE_SYSTEM_EQUATION,
    926     java::SessionAccessibility::CLASSNAME_VIEW,
    927     IsAccessibilityElementRule::Yes,
    928     UIA_GroupControlTypeId,
    929     eNoNameRule)
    930 
    931 ROLE(GRID_CELL,
    932     "gridcell",
    933     nsGkAtoms::gridcell,
    934     ATK_ROLE_TABLE_CELL,
    935     NSAccessibilityCellRole,
    936     NSAccessibilityUnknownSubrole,
    937     ROLE_SYSTEM_CELL,
    938     ROLE_SYSTEM_CELL,
    939     java::SessionAccessibility::CLASSNAME_VIEW,
    940     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    941     UIA_DataItemControlTypeId,
    942     eNameFromSubtreeRule)
    943 
    944 ROLE(NOTE,
    945     "note",
    946     nsGkAtoms::note,
    947     ATK_ROLE_COMMENT,
    948     NSAccessibilityGroupRole,
    949     @"AXDocumentNote",
    950     ROLE_SYSTEM_GROUPING,
    951     IA2_ROLE_NOTE,
    952     java::SessionAccessibility::CLASSNAME_VIEW,
    953     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    954     UIA_GroupControlTypeId,
    955     eNameFromSubtreeIfReqRule)
    956 
    957 ROLE(FIGURE,
    958     "figure",
    959     nsGkAtoms::figure,
    960     ATK_ROLE_PANEL,
    961     NSAccessibilityGroupRole,
    962     NSAccessibilityUnknownSubrole,
    963     ROLE_SYSTEM_GROUPING,
    964     ROLE_SYSTEM_GROUPING,
    965     java::SessionAccessibility::CLASSNAME_VIEW,
    966     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    967     UIA_GroupControlTypeId,
    968     eNoNameRule)
    969 
    970 ROLE(CHECK_RICH_OPTION,
    971     "check rich option",
    972     nullptr,
    973     ATK_ROLE_CHECK_BOX,
    974     NSAccessibilityCheckBoxRole,
    975     NSAccessibilityUnknownSubrole,
    976     ROLE_SYSTEM_CHECKBUTTON,
    977     ROLE_SYSTEM_CHECKBUTTON,
    978     java::SessionAccessibility::CLASSNAME_CHECKBOX,
    979     IsAccessibilityElementRule::Yes,
    980     UIA_CheckBoxControlTypeId,
    981     eNameFromSubtreeRule)
    982 
    983 ROLE(DEFINITION_LIST,
    984     "definitionlist",
    985     nullptr,
    986     ATK_ROLE_LIST,
    987     NSAccessibilityListRole,
    988     @"AXDefinitionList",
    989     ROLE_SYSTEM_LIST,
    990     ROLE_SYSTEM_LIST,
    991     java::SessionAccessibility::CLASSNAME_LISTVIEW,
    992     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
    993     UIA_ListControlTypeId,
    994     eNameFromSubtreeIfReqRule)
    995 
    996 ROLE(TERM,
    997     "term",
    998     nsGkAtoms::term,
    999     ATK_ROLE_DESCRIPTION_TERM,
   1000     NSAccessibilityGroupRole,
   1001     @"AXTerm",
   1002     ROLE_SYSTEM_LISTITEM,
   1003     ROLE_SYSTEM_LISTITEM,
   1004     java::SessionAccessibility::CLASSNAME_VIEW,
   1005     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1006     UIA_TextControlTypeId,
   1007     eNameFromSubtreeRule)
   1008 
   1009 ROLE(DEFINITION,
   1010     "definition",
   1011     nsGkAtoms::definition,
   1012     ATK_ROLE_PARAGRAPH,
   1013     NSAccessibilityGroupRole,
   1014     @"AXDefinition",
   1015     ROLE_SYSTEM_GROUPING,
   1016     IA2_ROLE_PARAGRAPH,
   1017     java::SessionAccessibility::CLASSNAME_VIEW,
   1018     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1019     UIA_GroupControlTypeId,
   1020     eNameFromSubtreeRule)
   1021 
   1022 ROLE(KEY,
   1023     "key",
   1024     nullptr,
   1025     ATK_ROLE_PUSH_BUTTON,
   1026     NSAccessibilityButtonRole,
   1027     NSAccessibilityUnknownSubrole,
   1028     ROLE_SYSTEM_PUSHBUTTON,
   1029     ROLE_SYSTEM_PUSHBUTTON,
   1030     java::SessionAccessibility::CLASSNAME_BUTTON,
   1031     IsAccessibilityElementRule::Yes,
   1032     UIA_ButtonControlTypeId,
   1033     eNameFromSubtreeRule)
   1034 
   1035 ROLE(SWITCH,
   1036     "switch",
   1037     nsGkAtoms::svgSwitch,
   1038     ATK_ROLE_TOGGLE_BUTTON,
   1039     NSAccessibilityCheckBoxRole,
   1040     NSAccessibilitySwitchSubrole,
   1041     ROLE_SYSTEM_CHECKBUTTON,
   1042     IA2_ROLE_TOGGLE_BUTTON,
   1043     java::SessionAccessibility::CLASSNAME_CHECKBOX,
   1044     IsAccessibilityElementRule::Yes,
   1045     UIA_ButtonControlTypeId,
   1046     eNameFromSubtreeRule)
   1047 
   1048 ROLE(MATHML_MATH,
   1049     "math",
   1050     nsGkAtoms::math,
   1051     ATK_ROLE_MATH,
   1052     NSAccessibilityGroupRole,
   1053     @"AXDocumentMath",
   1054     ROLE_SYSTEM_EQUATION,
   1055     ROLE_SYSTEM_EQUATION,
   1056     java::SessionAccessibility::CLASSNAME_VIEW,
   1057     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1058     UIA_GroupControlTypeId,
   1059     eNoNameRule)
   1060 
   1061 ROLE(MATHML_IDENTIFIER,
   1062     "mathml identifier",
   1063     nullptr,
   1064     ATK_ROLE_STATIC,
   1065     NSAccessibilityGroupRole,
   1066     @"AXMathIdentifier",
   1067     0,
   1068     IA2_ROLE_UNKNOWN,
   1069     java::SessionAccessibility::CLASSNAME_VIEW,
   1070     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1071     UIA_GroupControlTypeId,
   1072     eNameFromSubtreeRule)
   1073 
   1074 ROLE(MATHML_NUMBER,
   1075     "mathml number",
   1076     nullptr,
   1077     ATK_ROLE_STATIC,
   1078     NSAccessibilityGroupRole,
   1079     @"AXMathNumber",
   1080     0,
   1081     IA2_ROLE_UNKNOWN,
   1082     java::SessionAccessibility::CLASSNAME_VIEW,
   1083     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1084     UIA_GroupControlTypeId,
   1085     eNameFromSubtreeRule)
   1086 
   1087 ROLE(MATHML_OPERATOR,
   1088     "mathml operator",
   1089     nullptr,
   1090     ATK_ROLE_STATIC,
   1091     NSAccessibilityGroupRole,
   1092     @"AXMathOperator",
   1093     // XXX: NSAccessibility also uses subroles AXMathSeparatorOperator and
   1094    // AXMathFenceOperator. We should use the NS_MATHML_OPERATOR_FENCE and
   1095    // NS_MATHML_OPERATOR_SEPARATOR bits of nsOperatorFlags, but currently they
   1096    // are only available from the MathML layout code. Hence we just fallback
   1097    // to subrole AXMathOperator for now.
   1098     0,
   1099     IA2_ROLE_UNKNOWN,
   1100     java::SessionAccessibility::CLASSNAME_VIEW,
   1101     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1102     UIA_GroupControlTypeId,
   1103     eNameFromSubtreeRule)
   1104 
   1105 ROLE(MATHML_TEXT,
   1106     "mathml text",
   1107     nullptr,
   1108     ATK_ROLE_STATIC,
   1109     NSAccessibilityGroupRole,
   1110     @"AXMathRoot",
   1111     0,
   1112     IA2_ROLE_UNKNOWN,
   1113     java::SessionAccessibility::CLASSNAME_VIEW,
   1114     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1115     UIA_GroupControlTypeId,
   1116     eNameFromSubtreeRule)
   1117 
   1118 ROLE(MATHML_STRING_LITERAL,
   1119     "mathml string literal",
   1120     nullptr,
   1121     ATK_ROLE_STATIC,
   1122     NSAccessibilityGroupRole,
   1123     NSAccessibilityUnknownSubrole,
   1124     0,
   1125     IA2_ROLE_UNKNOWN,
   1126     java::SessionAccessibility::CLASSNAME_VIEW,
   1127     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1128     UIA_GroupControlTypeId,
   1129     eNameFromSubtreeRule)
   1130 
   1131 ROLE(MATHML_GLYPH,
   1132     "mathml glyph",
   1133     nullptr,
   1134     ATK_ROLE_IMAGE,
   1135     NSAccessibilityGroupRole,
   1136     NSAccessibilityUnknownSubrole,
   1137     0,
   1138     IA2_ROLE_UNKNOWN,
   1139     java::SessionAccessibility::CLASSNAME_IMAGE,
   1140     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1141     UIA_GroupControlTypeId,
   1142     eNameFromSubtreeRule)
   1143 
   1144 ROLE(MATHML_ROW,
   1145     "mathml row",
   1146     nullptr,
   1147     ATK_ROLE_SECTION,
   1148     NSAccessibilityGroupRole,
   1149     @"AXMathRow",
   1150     0,
   1151     IA2_ROLE_UNKNOWN,
   1152     java::SessionAccessibility::CLASSNAME_VIEW,
   1153     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1154     UIA_GroupControlTypeId,
   1155     eNoNameRule)
   1156 
   1157 ROLE(MATHML_FRACTION,
   1158     "mathml fraction",
   1159     nullptr,
   1160     ATK_ROLE_MATH_FRACTION,
   1161     NSAccessibilityGroupRole,
   1162     @"AXMathFraction",
   1163     0,
   1164     IA2_ROLE_UNKNOWN,
   1165     java::SessionAccessibility::CLASSNAME_VIEW,
   1166     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1167     UIA_GroupControlTypeId,
   1168     eNoNameRule)
   1169 
   1170 ROLE(MATHML_SQUARE_ROOT,
   1171     "mathml square root",
   1172     nullptr,
   1173     ATK_ROLE_MATH_ROOT,
   1174     NSAccessibilityGroupRole,
   1175     @"AXMathSquareRoot",
   1176     0,
   1177     IA2_ROLE_UNKNOWN,
   1178     java::SessionAccessibility::CLASSNAME_VIEW,
   1179     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1180     UIA_GroupControlTypeId,
   1181     eNoNameRule)
   1182 
   1183 ROLE(MATHML_ROOT,
   1184     "mathml root",
   1185     nullptr,
   1186     ATK_ROLE_MATH_ROOT,
   1187     NSAccessibilityGroupRole,
   1188     @"AXMathRoot",
   1189     0,
   1190     IA2_ROLE_UNKNOWN,
   1191     java::SessionAccessibility::CLASSNAME_VIEW,
   1192     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1193     UIA_GroupControlTypeId,
   1194     eNoNameRule)
   1195 
   1196 ROLE(MATHML_ENCLOSED,
   1197     "mathml enclosed",
   1198     nullptr,
   1199     ATK_ROLE_SECTION,
   1200     NSAccessibilityGroupRole,
   1201     NSAccessibilityUnknownSubrole,
   1202     0,
   1203     IA2_ROLE_UNKNOWN,
   1204     java::SessionAccessibility::CLASSNAME_VIEW,
   1205     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1206     UIA_GroupControlTypeId,
   1207     eNoNameRule)
   1208 
   1209 ROLE(MATHML_STYLE,
   1210     "mathml style",
   1211     nullptr,
   1212     ATK_ROLE_SECTION,
   1213     NSAccessibilityGroupRole,
   1214     @"AXMathRow",
   1215     0,
   1216     IA2_ROLE_UNKNOWN,
   1217     java::SessionAccessibility::CLASSNAME_VIEW,
   1218     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1219     UIA_GroupControlTypeId,
   1220     eNoNameRule)
   1221 
   1222 ROLE(MATHML_SUB,
   1223     "mathml sub",
   1224     nullptr,
   1225     ATK_ROLE_SECTION,
   1226     NSAccessibilityGroupRole,
   1227     @"AXMathSubscriptSuperscript",
   1228     0,
   1229     IA2_ROLE_UNKNOWN,
   1230     java::SessionAccessibility::CLASSNAME_VIEW,
   1231     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1232     UIA_GroupControlTypeId,
   1233     eNoNameRule)
   1234 
   1235 ROLE(MATHML_SUP,
   1236     "mathml sup",
   1237     nullptr,
   1238     ATK_ROLE_SECTION,
   1239     NSAccessibilityGroupRole,
   1240     @"AXMathSubscriptSuperscript",
   1241     0,
   1242     IA2_ROLE_UNKNOWN,
   1243     java::SessionAccessibility::CLASSNAME_VIEW,
   1244     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1245     UIA_GroupControlTypeId,
   1246     eNoNameRule)
   1247 
   1248 ROLE(MATHML_SUB_SUP,
   1249     "mathml sub sup",
   1250     nullptr,
   1251     ATK_ROLE_SECTION,
   1252     NSAccessibilityGroupRole,
   1253     @"AXMathSubscriptSuperscript",
   1254     0,
   1255     IA2_ROLE_UNKNOWN,
   1256     java::SessionAccessibility::CLASSNAME_VIEW,
   1257     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1258     UIA_GroupControlTypeId,
   1259     eNoNameRule)
   1260 
   1261 ROLE(MATHML_UNDER,
   1262     "mathml under",
   1263     nullptr,
   1264     ATK_ROLE_SECTION,
   1265     NSAccessibilityGroupRole,
   1266     @"AXMathUnderOver",
   1267     0,
   1268     IA2_ROLE_UNKNOWN,
   1269     java::SessionAccessibility::CLASSNAME_VIEW,
   1270     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1271     UIA_GroupControlTypeId,
   1272     eNoNameRule)
   1273 
   1274 ROLE(MATHML_OVER,
   1275     "mathml over",
   1276     nullptr,
   1277     ATK_ROLE_SECTION,
   1278     NSAccessibilityGroupRole,
   1279     @"AXMathUnderOver",
   1280     0,
   1281     IA2_ROLE_UNKNOWN,
   1282     java::SessionAccessibility::CLASSNAME_VIEW,
   1283     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1284     UIA_GroupControlTypeId,
   1285     eNoNameRule)
   1286 
   1287 ROLE(MATHML_UNDER_OVER,
   1288     "mathml under over",
   1289     nullptr,
   1290     ATK_ROLE_SECTION,
   1291     NSAccessibilityGroupRole,
   1292     @"AXMathUnderOver",
   1293     0,
   1294     IA2_ROLE_UNKNOWN,
   1295     java::SessionAccessibility::CLASSNAME_VIEW,
   1296     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1297     UIA_GroupControlTypeId,
   1298     eNoNameRule)
   1299 
   1300 ROLE(MATHML_MULTISCRIPTS,
   1301     "mathml multiscripts",
   1302     nullptr,
   1303     ATK_ROLE_SECTION,
   1304     NSAccessibilityGroupRole,
   1305     @"AXMathMultiscript",
   1306     0,
   1307     IA2_ROLE_UNKNOWN,
   1308     java::SessionAccessibility::CLASSNAME_VIEW,
   1309     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1310     UIA_GroupControlTypeId,
   1311     eNoNameRule)
   1312 
   1313 ROLE(MATHML_TABLE,
   1314     "mathml table",
   1315     nullptr,
   1316     ATK_ROLE_TABLE,
   1317     NSAccessibilityGroupRole,
   1318     @"AXMathTable",
   1319     0,
   1320     IA2_ROLE_UNKNOWN,
   1321     java::SessionAccessibility::CLASSNAME_GRIDVIEW,
   1322     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1323     UIA_GroupControlTypeId,
   1324     eNoNameRule)
   1325 
   1326 ROLE(MATHML_LABELED_ROW,
   1327     "mathml labeled row",
   1328     nullptr,
   1329     ATK_ROLE_TABLE_ROW,
   1330     NSAccessibilityGroupRole,
   1331     NSAccessibilityUnknownSubrole,
   1332     0,
   1333     IA2_ROLE_UNKNOWN,
   1334     java::SessionAccessibility::CLASSNAME_VIEW,
   1335     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1336     UIA_GroupControlTypeId,
   1337     eNoNameRule)
   1338 
   1339 ROLE(MATHML_TABLE_ROW,
   1340     "mathml table row",
   1341     nullptr,
   1342     ATK_ROLE_TABLE_ROW,
   1343     NSAccessibilityGroupRole,
   1344     @"AXMathTableRow",
   1345     0,
   1346     IA2_ROLE_UNKNOWN,
   1347     java::SessionAccessibility::CLASSNAME_VIEW,
   1348     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1349     UIA_GroupControlTypeId,
   1350     eNoNameRule)
   1351 
   1352 ROLE(MATHML_CELL,
   1353     "mathml cell",
   1354     nullptr,
   1355     ATK_ROLE_TABLE_CELL,
   1356     NSAccessibilityGroupRole,
   1357     @"AXMathTableCell",
   1358     0,
   1359     IA2_ROLE_UNKNOWN,
   1360     java::SessionAccessibility::CLASSNAME_VIEW,
   1361     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1362     UIA_GroupControlTypeId,
   1363     eNoNameRule)
   1364 
   1365 ROLE(MATHML_ACTION,
   1366     "mathml action",
   1367     nullptr,
   1368     ATK_ROLE_SECTION,
   1369     NSAccessibilityGroupRole,
   1370     NSAccessibilityUnknownSubrole,
   1371     0,
   1372     IA2_ROLE_UNKNOWN,
   1373     java::SessionAccessibility::CLASSNAME_VIEW,
   1374     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1375     UIA_GroupControlTypeId,
   1376     eNoNameRule)
   1377 
   1378 ROLE(MATHML_ERROR,
   1379     "mathml error",
   1380     nullptr,
   1381     ATK_ROLE_SECTION,
   1382     NSAccessibilityGroupRole,
   1383     @"AXMathRow",
   1384     0,
   1385     IA2_ROLE_UNKNOWN,
   1386     java::SessionAccessibility::CLASSNAME_VIEW,
   1387     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1388     UIA_GroupControlTypeId,
   1389     eNoNameRule)
   1390 
   1391 ROLE(MATHML_STACK,
   1392     "mathml stack",
   1393     nullptr,
   1394     ATK_ROLE_UNKNOWN,
   1395     NSAccessibilityGroupRole,
   1396     NSAccessibilityUnknownSubrole,
   1397     0,
   1398     IA2_ROLE_UNKNOWN,
   1399     java::SessionAccessibility::CLASSNAME_VIEW,
   1400     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1401     UIA_GroupControlTypeId,
   1402     eNoNameRule)
   1403 
   1404 ROLE(MATHML_LONG_DIVISION,
   1405     "mathml long division",
   1406     nullptr,
   1407     ATK_ROLE_UNKNOWN,
   1408     NSAccessibilityGroupRole,
   1409     NSAccessibilityUnknownSubrole,
   1410     0,
   1411     IA2_ROLE_UNKNOWN,
   1412     java::SessionAccessibility::CLASSNAME_VIEW,
   1413     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1414     UIA_GroupControlTypeId,
   1415     eNoNameRule)
   1416 
   1417 ROLE(MATHML_STACK_GROUP,
   1418     "mathml stack group",
   1419     nullptr,
   1420     ATK_ROLE_UNKNOWN,
   1421     NSAccessibilityGroupRole,
   1422     NSAccessibilityUnknownSubrole,
   1423     0,
   1424     IA2_ROLE_UNKNOWN,
   1425     java::SessionAccessibility::CLASSNAME_VIEW,
   1426     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1427     UIA_GroupControlTypeId,
   1428     eNoNameRule)
   1429 
   1430 ROLE(MATHML_STACK_ROW,
   1431     "mathml stack row",
   1432     nullptr,
   1433     ATK_ROLE_UNKNOWN,
   1434     NSAccessibilityGroupRole,
   1435     NSAccessibilityUnknownSubrole,
   1436     0,
   1437     IA2_ROLE_UNKNOWN,
   1438     java::SessionAccessibility::CLASSNAME_VIEW,
   1439     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1440     UIA_GroupControlTypeId,
   1441     eNoNameRule)
   1442 
   1443 ROLE(MATHML_STACK_CARRIES,
   1444     "mathml stack carries",
   1445     nullptr,
   1446     ATK_ROLE_UNKNOWN,
   1447     NSAccessibilityGroupRole,
   1448     NSAccessibilityUnknownSubrole,
   1449     0,
   1450     IA2_ROLE_UNKNOWN,
   1451     java::SessionAccessibility::CLASSNAME_VIEW,
   1452     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1453     UIA_GroupControlTypeId,
   1454     eNoNameRule)
   1455 
   1456 ROLE(MATHML_STACK_CARRY,
   1457     "mathml stack carry",
   1458     nullptr,
   1459     ATK_ROLE_UNKNOWN,
   1460     NSAccessibilityGroupRole,
   1461     NSAccessibilityUnknownSubrole,
   1462     0,
   1463     IA2_ROLE_UNKNOWN,
   1464     java::SessionAccessibility::CLASSNAME_VIEW,
   1465     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1466     UIA_GroupControlTypeId,
   1467     eNoNameRule)
   1468 
   1469 ROLE(MATHML_STACK_LINE,
   1470     "mathml stack line",
   1471     nullptr,
   1472     ATK_ROLE_UNKNOWN,
   1473     NSAccessibilityGroupRole,
   1474     NSAccessibilityUnknownSubrole,
   1475     0,
   1476     IA2_ROLE_UNKNOWN,
   1477     java::SessionAccessibility::CLASSNAME_VIEW,
   1478     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1479     UIA_GroupControlTypeId,
   1480     eNoNameRule)
   1481 
   1482 ROLE(RADIO_GROUP,
   1483     "grouping",
   1484     nsGkAtoms::radiogroup,
   1485     ATK_ROLE_PANEL,
   1486     NSAccessibilityRadioGroupRole,
   1487     NSAccessibilityUnknownSubrole,
   1488     ROLE_SYSTEM_GROUPING,
   1489     ROLE_SYSTEM_GROUPING,
   1490     java::SessionAccessibility::CLASSNAME_VIEW,
   1491     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1492     UIA_ListControlTypeId,
   1493     eNoNameRule)
   1494 
   1495 ROLE(TEXT,
   1496     "text",
   1497     nsGkAtoms::generic,
   1498     ATK_ROLE_STATIC,
   1499     NSAccessibilityGroupRole,
   1500     NSAccessibilityUnknownSubrole,
   1501     ROLE_SYSTEM_GROUPING,
   1502     IA2_ROLE_TEXT_FRAME,
   1503     java::SessionAccessibility::CLASSNAME_VIEW,
   1504     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1505     UIA_GroupControlTypeId,
   1506     eNameFromSubtreeIfReqRule)
   1507 
   1508 ROLE(DETAILS,
   1509     "details",
   1510     nsGkAtoms::group,
   1511     ATK_ROLE_PANEL,
   1512     NSAccessibilityGroupRole,
   1513     @"AXDetails",
   1514     ROLE_SYSTEM_GROUPING,
   1515     ROLE_SYSTEM_GROUPING,
   1516     java::SessionAccessibility::CLASSNAME_VIEW,
   1517     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1518     UIA_GroupControlTypeId,
   1519     eNoNameRule)
   1520 
   1521 ROLE(SUMMARY,
   1522     "summary",
   1523     nullptr,
   1524     ATK_ROLE_PUSH_BUTTON,
   1525     NSAccessibilityButtonRole,
   1526     @"AXSummary",
   1527     ROLE_SYSTEM_PUSHBUTTON,
   1528     ROLE_SYSTEM_PUSHBUTTON,
   1529     java::SessionAccessibility::CLASSNAME_BUTTON,
   1530     IsAccessibilityElementRule::Yes,
   1531     UIA_ButtonControlTypeId,
   1532     eNameFromSubtreeRule)
   1533 
   1534 ROLE(LANDMARK,
   1535     "landmark",
   1536     nullptr,
   1537     ATK_ROLE_LANDMARK,
   1538     NSAccessibilityGroupRole,
   1539     NSAccessibilityUnknownSubrole,
   1540     ROLE_SYSTEM_GROUPING,
   1541     IA2_ROLE_LANDMARK,
   1542     java::SessionAccessibility::CLASSNAME_VIEW,
   1543     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1544     UIA_GroupControlTypeId,
   1545     eNoNameRule)
   1546 
   1547 ROLE(NAVIGATION,
   1548     "navigation",
   1549     nullptr,
   1550     ATK_ROLE_LANDMARK,
   1551     NSAccessibilityGroupRole,
   1552     @"AXLandmarkNavigation",
   1553     ROLE_SYSTEM_GROUPING,
   1554     IA2_ROLE_LANDMARK,
   1555     java::SessionAccessibility::CLASSNAME_VIEW,
   1556     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1557     UIA_GroupControlTypeId,
   1558     eNoNameRule)
   1559 
   1560 ROLE(FOOTNOTE,
   1561     "footnote",
   1562     nullptr,
   1563     ATK_ROLE_FOOTNOTE,
   1564     NSAccessibilityGroupRole,
   1565     NSAccessibilityUnknownSubrole,
   1566     ROLE_SYSTEM_GROUPING,
   1567     IA2_ROLE_FOOTNOTE,
   1568     java::SessionAccessibility::CLASSNAME_VIEW,
   1569     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1570     UIA_GroupControlTypeId,
   1571     eNoNameRule)
   1572 
   1573 ROLE(ARTICLE,
   1574     "article",
   1575     nsGkAtoms::article,
   1576     ATK_ROLE_ARTICLE,
   1577     NSAccessibilityGroupRole,
   1578     @"AXDocumentArticle",
   1579     ROLE_SYSTEM_DOCUMENT,
   1580     ROLE_SYSTEM_DOCUMENT,
   1581     java::SessionAccessibility::CLASSNAME_VIEW,
   1582     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1583     UIA_GroupControlTypeId,
   1584     eNoNameRule)
   1585 
   1586 ROLE(REGION,
   1587     "region",
   1588     nsGkAtoms::region,
   1589     ATK_ROLE_LANDMARK,
   1590     NSAccessibilityGroupRole,
   1591     @"AXLandmarkRegion",
   1592     ROLE_SYSTEM_GROUPING,
   1593     IA2_ROLE_LANDMARK,
   1594     java::SessionAccessibility::CLASSNAME_VIEW,
   1595     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1596     UIA_GroupControlTypeId,
   1597     eNoNameRule)
   1598 
   1599 // A composite widget with a text input and popup. Used for ARIA role combobox.
   1600 // See also COMBOBOX.
   1601 ROLE(EDITCOMBOBOX,
   1602     "editcombobox",
   1603     nsGkAtoms::combobox,
   1604     ATK_ROLE_COMBO_BOX,
   1605     NSAccessibilityComboBoxRole,
   1606     NSAccessibilityUnknownSubrole,
   1607     ROLE_SYSTEM_COMBOBOX,
   1608     ROLE_SYSTEM_COMBOBOX,
   1609     java::SessionAccessibility::CLASSNAME_EDITTEXT,
   1610     IsAccessibilityElementRule::Yes,
   1611     UIA_ComboBoxControlTypeId,
   1612     eNameFromValueRule)
   1613 
   1614 ROLE(BLOCKQUOTE,
   1615     "blockquote",
   1616     nsGkAtoms::blockquote,
   1617     ATK_ROLE_BLOCK_QUOTE,
   1618     NSAccessibilityGroupRole,
   1619     NSAccessibilityUnknownSubrole,
   1620     ROLE_SYSTEM_GROUPING,
   1621     IA2_ROLE_BLOCK_QUOTE,
   1622     java::SessionAccessibility::CLASSNAME_VIEW,
   1623     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1624     UIA_GroupControlTypeId,
   1625     eNoNameRule)
   1626 
   1627 ROLE(CONTENT_DELETION,
   1628     "content deletion",
   1629     nsGkAtoms::deletion,
   1630     ATK_ROLE_CONTENT_DELETION,
   1631     NSAccessibilityGroupRole,
   1632     @"AXDeleteStyleGroup",
   1633     ROLE_SYSTEM_GROUPING,
   1634     IA2_ROLE_CONTENT_DELETION,
   1635     java::SessionAccessibility::CLASSNAME_VIEW,
   1636     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1637     UIA_TextControlTypeId,
   1638     eNameFromSubtreeIfReqRule)
   1639 
   1640 ROLE(CONTENT_INSERTION,
   1641     "content insertion",
   1642     nsGkAtoms::insertion,
   1643     ATK_ROLE_CONTENT_INSERTION,
   1644     NSAccessibilityGroupRole,
   1645     @"AXInsertStyleGroup",
   1646     ROLE_SYSTEM_GROUPING,
   1647     IA2_ROLE_CONTENT_INSERTION,
   1648     java::SessionAccessibility::CLASSNAME_VIEW,
   1649     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1650     UIA_TextControlTypeId,
   1651     eNameFromSubtreeIfReqRule)
   1652 
   1653 ROLE(FORM_LANDMARK,
   1654     "form",
   1655     nsGkAtoms::form,
   1656     ATK_ROLE_LANDMARK,
   1657     NSAccessibilityGroupRole,
   1658     @"AXLandmarkForm",
   1659     ROLE_SYSTEM_GROUPING,
   1660     IA2_ROLE_FORM,
   1661     java::SessionAccessibility::CLASSNAME_VIEW,
   1662     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1663     UIA_GroupControlTypeId,
   1664     eNoNameRule)
   1665 
   1666 ROLE(MARK,
   1667     "mark",
   1668     nsGkAtoms::mark,
   1669     ATK_ROLE_MARK,
   1670     NSAccessibilityGroupRole,
   1671     NSAccessibilityUnknownSubrole,
   1672     ROLE_SYSTEM_GROUPING,
   1673     IA2_ROLE_MARK,
   1674     java::SessionAccessibility::CLASSNAME_VIEW,
   1675     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1676     UIA_GroupControlTypeId,
   1677     eNameFromSubtreeIfReqRule)
   1678 
   1679 ROLE(SUGGESTION,
   1680     "suggestion",
   1681     nsGkAtoms::suggestion,
   1682     ATK_ROLE_SUGGESTION,
   1683     NSAccessibilityGroupRole,
   1684     NSAccessibilityUnknownSubrole,
   1685     ROLE_SYSTEM_GROUPING,
   1686     IA2_ROLE_SUGGESTION,
   1687     java::SessionAccessibility::CLASSNAME_VIEW,
   1688     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1689     UIA_GroupControlTypeId,
   1690     eNoNameRule)
   1691 
   1692 ROLE(COMMENT,
   1693     "comment",
   1694     nsGkAtoms::comment,
   1695     ATK_ROLE_COMMENT,
   1696     NSAccessibilityGroupRole,
   1697     NSAccessibilityUnknownSubrole,
   1698     ROLE_SYSTEM_GROUPING,
   1699     IA2_ROLE_COMMENT,
   1700     java::SessionAccessibility::CLASSNAME_VIEW,
   1701     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1702     UIA_GroupControlTypeId,
   1703     eNoNameRule)
   1704 
   1705 ROLE(CODE,
   1706     "code",
   1707     nsGkAtoms::code,
   1708     ATK_ROLE_STATIC,
   1709     NSAccessibilityGroupRole,
   1710     @"AXCodeStyleGroup",
   1711     ROLE_SYSTEM_GROUPING,
   1712     IA2_ROLE_TEXT_FRAME,
   1713     java::SessionAccessibility::CLASSNAME_VIEW,
   1714     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1715     UIA_TextControlTypeId,
   1716     eNameFromSubtreeIfReqRule)
   1717 
   1718 ROLE(TIME_EDITOR,
   1719     "time editor",
   1720     nullptr,
   1721     ATK_ROLE_PANEL,
   1722     @"AXTimeField",
   1723     NSAccessibilityUnknownSubrole,
   1724     ROLE_SYSTEM_GROUPING,
   1725     ROLE_SYSTEM_GROUPING,
   1726     java::SessionAccessibility::CLASSNAME_VIEW,
   1727     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1728     UIA_GroupControlTypeId,
   1729     eNameFromSubtreeIfReqRule)
   1730 
   1731 ROLE(LISTITEM_MARKER,
   1732     "list item marker",
   1733     nullptr,
   1734     ATK_ROLE_UNKNOWN,
   1735     @"AXListMarker",
   1736     NSAccessibilityUnknownSubrole,
   1737     ROLE_SYSTEM_STATICTEXT,
   1738     ROLE_SYSTEM_STATICTEXT,
   1739     java::SessionAccessibility::CLASSNAME_VIEW,
   1740     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1741     UIA_TextControlTypeId,
   1742     eNoNameRule)
   1743 
   1744 ROLE(METER,
   1745     "meter",
   1746     nsGkAtoms::meter,
   1747     ATK_ROLE_LEVEL_BAR,
   1748     NSAccessibilityLevelIndicatorRole,
   1749     @"AXMeter",
   1750     ROLE_SYSTEM_PROGRESSBAR,
   1751     ROLE_SYSTEM_PROGRESSBAR,
   1752     java::SessionAccessibility::CLASSNAME_VIEW,
   1753     IsAccessibilityElementRule::Yes,
   1754     UIA_ProgressBarControlTypeId,
   1755     eNameFromValueRule)
   1756 
   1757 ROLE(SUBSCRIPT,
   1758     "subscript",
   1759     nsGkAtoms::subscript,
   1760     ATK_ROLE_SUBSCRIPT,
   1761     NSAccessibilityGroupRole,
   1762     @"AXSubscriptStyleGroup",
   1763     ROLE_SYSTEM_GROUPING,
   1764     IA2_ROLE_TEXT_FRAME,
   1765     java::SessionAccessibility::CLASSNAME_VIEW,
   1766     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1767     UIA_TextControlTypeId,
   1768     eNameFromSubtreeIfReqRule)
   1769 
   1770 ROLE(SUPERSCRIPT,
   1771     "superscript",
   1772     nsGkAtoms::superscript,
   1773     ATK_ROLE_SUPERSCRIPT,
   1774     NSAccessibilityGroupRole,
   1775     @"AXSuperscriptStyleGroup",
   1776     ROLE_SYSTEM_GROUPING,
   1777     IA2_ROLE_TEXT_FRAME,
   1778     java::SessionAccessibility::CLASSNAME_VIEW,
   1779     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1780     UIA_TextControlTypeId,
   1781     eNameFromSubtreeIfReqRule)
   1782 
   1783 ROLE(EMPHASIS,
   1784     "emphasis",
   1785     nsGkAtoms::emphasis,
   1786     ATK_ROLE_STATIC,
   1787     NSAccessibilityGroupRole,
   1788     @"AXEmphasisStyleGroup",
   1789     ROLE_SYSTEM_GROUPING,
   1790     IA2_ROLE_TEXT_FRAME,
   1791     java::SessionAccessibility::CLASSNAME_VIEW,
   1792     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1793     UIA_TextControlTypeId,
   1794     eNameFromSubtreeIfReqRule)
   1795 
   1796 ROLE(STRONG,
   1797     "strong",
   1798     nsGkAtoms::strong,
   1799     ATK_ROLE_STATIC,
   1800     NSAccessibilityGroupRole,
   1801     @"AXStrongStyleGroup",
   1802     ROLE_SYSTEM_GROUPING,
   1803     IA2_ROLE_TEXT_FRAME,
   1804     java::SessionAccessibility::CLASSNAME_VIEW,
   1805     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1806     UIA_TextControlTypeId,
   1807     eNameFromSubtreeIfReqRule)
   1808 
   1809 ROLE(TIME,
   1810     "time",
   1811     nsGkAtoms::time,
   1812     ATK_ROLE_STATIC,
   1813     NSAccessibilityGroupRole,
   1814     @"AXTimeGroup",
   1815     ROLE_SYSTEM_GROUPING,
   1816     ROLE_SYSTEM_GROUPING,
   1817     java::SessionAccessibility::CLASSNAME_VIEW,
   1818     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1819     UIA_TextControlTypeId,
   1820     eNameFromSubtreeIfReqRule)
   1821 
   1822 ROLE(GRID,
   1823     "grid",
   1824     nsGkAtoms::grid,
   1825     ATK_ROLE_TABLE,
   1826     NSAccessibilityTableRole,
   1827     NSAccessibilityUnknownSubrole,
   1828     ROLE_SYSTEM_TABLE,
   1829     ROLE_SYSTEM_TABLE,
   1830     java::SessionAccessibility::CLASSNAME_GRIDVIEW,
   1831     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1832     UIA_DataGridControlTypeId,
   1833     eNameFromSubtreeIfReqRule)
   1834 
   1835 ROLE(ROWGROUP,
   1836     "rowgroup",
   1837     nsGkAtoms::rowgroup,
   1838     ATK_ROLE_PANEL,
   1839     NSAccessibilityGroupRole,
   1840     NSAccessibilityUnknownSubrole,
   1841     ROLE_SYSTEM_GROUPING,
   1842     ROLE_SYSTEM_GROUPING,
   1843     java::SessionAccessibility::CLASSNAME_VIEW,
   1844     IsAccessibilityElementRule::IfChildlessWithNameAndFocusable,
   1845     UIA_GroupControlTypeId,
   1846     eNameFromSubtreeIfReqRule)
   1847 
   1848 ROLE(SEARCHBOX,
   1849     "searchbox",
   1850     nsGkAtoms::searchbox,
   1851     ATK_ROLE_ENTRY,
   1852     NSAccessibilityTextFieldRole,
   1853     @"AXSearchField",
   1854     ROLE_SYSTEM_TEXT,
   1855     ROLE_SYSTEM_TEXT,
   1856     java::SessionAccessibility::CLASSNAME_EDITTEXT,
   1857     IsAccessibilityElementRule::Yes,
   1858     UIA_EditControlTypeId,
   1859     eNameFromValueRule)
   1860 // clang-format on