diff options
Diffstat (limited to 'accessible/base')
-rw-r--r-- | accessible/base/ARIAMap.cpp | 2 | ||||
-rw-r--r-- | accessible/base/AccGroupInfo.cpp | 1 | ||||
-rw-r--r-- | accessible/base/Asserts.cpp | 3 | ||||
-rw-r--r-- | accessible/base/CachedTableAccessible.cpp | 2 | ||||
-rw-r--r-- | accessible/base/DocManager.cpp | 14 | ||||
-rw-r--r-- | accessible/base/HTMLMarkupMap.h | 6 | ||||
-rw-r--r-- | accessible/base/RoleMap.h | 154 | ||||
-rw-r--r-- | accessible/base/nsAccUtils.cpp | 10 | ||||
-rw-r--r-- | accessible/base/nsAccessibilityService.cpp | 5 | ||||
-rw-r--r-- | accessible/base/nsTextEquivUtils.cpp | 4 |
10 files changed, 186 insertions, 15 deletions
diff --git a/accessible/base/ARIAMap.cpp b/accessible/base/ARIAMap.cpp index bfc41db82e..d53592acf0 100644 --- a/accessible/base/ARIAMap.cpp +++ b/accessible/base/ARIAMap.cpp @@ -1094,7 +1094,7 @@ static const nsRoleMapEntry sWAIRoleMaps[] = { }, { // rowgroup nsGkAtoms::rowgroup, - roles::GROUPING, + roles::ROWGROUP, kUseMapRole, eNoValue, eNoAction, diff --git a/accessible/base/AccGroupInfo.cpp b/accessible/base/AccGroupInfo.cpp index c3501dc36e..336ce9ecf5 100644 --- a/accessible/base/AccGroupInfo.cpp +++ b/accessible/base/AccGroupInfo.cpp @@ -292,6 +292,7 @@ uint32_t AccGroupInfo::TotalItemCount(Accessible* aContainer, case roles::MENUPOPUP: case roles::COMBOBOX: case roles::GROUPING: + case roles::ROWGROUP: case roles::TREE_TABLE: case roles::COMBOBOX_LIST: case roles::LISTBOX: diff --git a/accessible/base/Asserts.cpp b/accessible/base/Asserts.cpp index 729b4e1ea5..454eaffef6 100644 --- a/accessible/base/Asserts.cpp +++ b/accessible/base/Asserts.cpp @@ -12,7 +12,8 @@ using namespace mozilla::a11y; #define ROLE(geckoRole, stringRole, ariaRole, atkRole, macRole, macSubrole, \ - msaaRole, ia2Role, androidClass, iosIsElement, nameRule) \ + msaaRole, ia2Role, androidClass, iosIsElement, uiaControlType, \ + nameRule) \ static_assert( \ static_cast<uint32_t>(roles::geckoRole) == \ static_cast<uint32_t>(nsIAccessibleRole::ROLE_##geckoRole), \ diff --git a/accessible/base/CachedTableAccessible.cpp b/accessible/base/CachedTableAccessible.cpp index e780bd2a89..8f56352acd 100644 --- a/accessible/base/CachedTableAccessible.cpp +++ b/accessible/base/CachedTableAccessible.cpp @@ -35,7 +35,7 @@ class TablePartRule : public PivotRule { accRole == roles::TEXT || accRole == roles::TEXT_CONTAINER || accRole == roles::SECTION || // Row groups. - accRole == roles::GROUPING) { + accRole == roles::ROWGROUP) { // Walk inside these, but don't match them. return nsIAccessibleTraversalRule::FILTER_IGNORE; } diff --git a/accessible/base/DocManager.cpp b/accessible/base/DocManager.cpp index b7a5203e40..18bf9c0433 100644 --- a/accessible/base/DocManager.cpp +++ b/accessible/base/DocManager.cpp @@ -17,6 +17,7 @@ # include "Logging.h" #endif +#include "mozilla/BasePrincipal.h" #include "mozilla/Components.h" #include "mozilla/EventListenerManager.h" #include "mozilla/PresShell.h" @@ -464,7 +465,18 @@ DocAccessible* DocManager::CreateDocOrRootAccessible(Document* aDocument) { // XXXaaronl: ideally we would traverse the presshell chain. Since there's // no easy way to do that, we cheat and use the document hierarchy. parentDocAcc = GetDocAccessible(aDocument->GetInProcessParentDocument()); - NS_ASSERTION(parentDocAcc, "Can't create an accessible for the document!"); + // We should always get parentDocAcc except sometimes for background + // extension pages, where the parent has an invisible DocShell but the child + // does not. See bug 1888649. + NS_ASSERTION( + parentDocAcc || + (BasePrincipal::Cast(aDocument->GetPrincipal())->AddonPolicy() && + aDocument->GetInProcessParentDocument() && + aDocument->GetInProcessParentDocument()->GetDocShell() && + aDocument->GetInProcessParentDocument() + ->GetDocShell() + ->IsInvisible()), + "Can't create an accessible for the document!"); if (!parentDocAcc) return nullptr; } diff --git a/accessible/base/HTMLMarkupMap.h b/accessible/base/HTMLMarkupMap.h index c607616518..3b422ac09c 100644 --- a/accessible/base/HTMLMarkupMap.h +++ b/accessible/base/HTMLMarkupMap.h @@ -376,7 +376,7 @@ MARKUPMAP( MARKUPMAP(time, New_HyperText, roles::TIME, Attr(xmlroles, time), AttrFromDOM(datetime, datetime)) -MARKUPMAP(tbody, nullptr, roles::GROUPING) +MARKUPMAP(tbody, nullptr, roles::ROWGROUP) MARKUPMAP( td, @@ -392,7 +392,7 @@ MARKUPMAP( }, 0) -MARKUPMAP(tfoot, nullptr, roles::GROUPING) +MARKUPMAP(tfoot, nullptr, roles::ROWGROUP) MARKUPMAP( th, @@ -404,7 +404,7 @@ MARKUPMAP( }, 0) -MARKUPMAP(thead, nullptr, roles::GROUPING) +MARKUPMAP(thead, nullptr, roles::ROWGROUP) MARKUPMAP( tr, diff --git a/accessible/base/RoleMap.h b/accessible/base/RoleMap.h index 58cbb82165..6008dc4bbf 100644 --- a/accessible/base/RoleMap.h +++ b/accessible/base/RoleMap.h @@ -5,7 +5,7 @@ // clang-format off /** * Usage: declare the macro ROLE()with the following arguments: - * ROLE(geckoRole, stringRole, ariaRole, atkRole, macRole, macSubrole, msaaRole, ia2Role, nameRule) + * ROLE(geckoRole, stringRole, ariaRole, atkRole, macRole, macSubrole, msaaRole, ia2Role, iosIsElement, uiaControlType, nameRule) */ ROLE(NOTHING, @@ -18,6 +18,7 @@ ROLE(NOTHING, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::No, + UIA_CustomControlTypeId, eNameFromSubtreeIfReqRule) ROLE(MENUBAR, @@ -30,6 +31,7 @@ ROLE(MENUBAR, ROLE_SYSTEM_MENUBAR, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_MenuBarControlTypeId, eNoNameRule) ROLE(SCROLLBAR, @@ -42,6 +44,7 @@ ROLE(SCROLLBAR, ROLE_SYSTEM_SCROLLBAR, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ScrollBarControlTypeId, eNameFromValueRule) ROLE(ALERT, @@ -54,6 +57,7 @@ ROLE(ALERT, ROLE_SYSTEM_ALERT, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeIfReqRule) ROLE(INTERNAL_FRAME, @@ -66,6 +70,7 @@ ROLE(INTERNAL_FRAME, IA2_ROLE_INTERNAL_FRAME, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_PaneControlTypeId, eNoNameRule) ROLE(MENUPOPUP, @@ -78,6 +83,7 @@ ROLE(MENUPOPUP, ROLE_SYSTEM_MENUPOPUP, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_MenuControlTypeId, eNoNameRule) ROLE(MENUITEM, @@ -90,6 +96,7 @@ ROLE(MENUITEM, ROLE_SYSTEM_MENUITEM, java::SessionAccessibility::CLASSNAME_MENUITEM, IsAccessibilityElementRule::Yes, + UIA_MenuItemControlTypeId, eNameFromSubtreeRule) ROLE(TOOLTIP, @@ -102,6 +109,7 @@ ROLE(TOOLTIP, ROLE_SYSTEM_TOOLTIP, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::Yes, + UIA_ToolTipControlTypeId, eNameFromSubtreeRule) ROLE(APPLICATION, @@ -114,6 +122,7 @@ ROLE(APPLICATION, ROLE_SYSTEM_APPLICATION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_PaneControlTypeId, eNoNameRule) ROLE(DOCUMENT, @@ -126,6 +135,7 @@ ROLE(DOCUMENT, ROLE_SYSTEM_DOCUMENT, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_DocumentControlTypeId, eNoNameRule) /** @@ -147,6 +157,7 @@ ROLE(PANE, ROLE_SYSTEM_GROUPING, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_PaneControlTypeId, eNoNameRule) ROLE(DIALOG, @@ -159,6 +170,7 @@ ROLE(DIALOG, ROLE_SYSTEM_DIALOG, java::SessionAccessibility::CLASSNAME_DIALOG, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_PaneControlTypeId, eNoNameRule) ROLE(GROUPING, @@ -171,6 +183,7 @@ ROLE(GROUPING, ROLE_SYSTEM_GROUPING, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeIfReqRule) ROLE(SEPARATOR, @@ -183,6 +196,7 @@ ROLE(SEPARATOR, ROLE_SYSTEM_SEPARATOR, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::Yes, + UIA_SeparatorControlTypeId, eNoNameRule) ROLE(TOOLBAR, @@ -195,6 +209,7 @@ ROLE(TOOLBAR, ROLE_SYSTEM_TOOLBAR, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ToolBarControlTypeId, eNoNameRule) ROLE(STATUSBAR, @@ -207,6 +222,7 @@ ROLE(STATUSBAR, ROLE_SYSTEM_STATUSBAR, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(TABLE, @@ -219,6 +235,7 @@ ROLE(TABLE, ROLE_SYSTEM_TABLE, java::SessionAccessibility::CLASSNAME_GRIDVIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TableControlTypeId, eNameFromSubtreeIfReqRule) ROLE(COLUMNHEADER, @@ -231,6 +248,7 @@ ROLE(COLUMNHEADER, ROLE_SYSTEM_COLUMNHEADER, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_DataItemControlTypeId, eNameFromSubtreeRule) ROLE(ROWHEADER, @@ -243,6 +261,7 @@ ROLE(ROWHEADER, ROLE_SYSTEM_ROWHEADER, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_HeaderItemControlTypeId, eNameFromSubtreeRule) ROLE(ROW, @@ -255,6 +274,7 @@ ROLE(ROW, ROLE_SYSTEM_ROW, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_DataItemControlTypeId, eNameFromSubtreeRule) ROLE(CELL, @@ -267,6 +287,7 @@ ROLE(CELL, ROLE_SYSTEM_CELL, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_DataItemControlTypeId, eNameFromSubtreeIfReqRule) ROLE(LINK, @@ -279,6 +300,7 @@ ROLE(LINK, ROLE_SYSTEM_LINK, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfBrokenUp, + UIA_HyperlinkControlTypeId, eNameFromSubtreeRule) ROLE(LIST, @@ -291,6 +313,7 @@ ROLE(LIST, ROLE_SYSTEM_LIST, java::SessionAccessibility::CLASSNAME_LISTVIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ListControlTypeId, eNameFromSubtreeIfReqRule) ROLE(LISTITEM, @@ -303,6 +326,7 @@ ROLE(LISTITEM, ROLE_SYSTEM_LISTITEM, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ListItemControlTypeId, eNameFromSubtreeRule) ROLE(OUTLINE, @@ -315,6 +339,7 @@ ROLE(OUTLINE, ROLE_SYSTEM_OUTLINE, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TreeControlTypeId, eNoNameRule) ROLE(OUTLINEITEM, @@ -327,6 +352,7 @@ ROLE(OUTLINEITEM, ROLE_SYSTEM_OUTLINEITEM, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TreeItemControlTypeId, eNameFromSubtreeRule) ROLE(PAGETAB, @@ -339,6 +365,7 @@ ROLE(PAGETAB, ROLE_SYSTEM_PAGETAB, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::Yes, + UIA_TabItemControlTypeId, eNameFromSubtreeRule) ROLE(PROPERTYPAGE, @@ -351,6 +378,7 @@ ROLE(PROPERTYPAGE, ROLE_SYSTEM_PROPERTYPAGE, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_PaneControlTypeId, eNoNameRule) ROLE(GRAPHIC, @@ -363,6 +391,7 @@ ROLE(GRAPHIC, ROLE_SYSTEM_GRAPHIC, java::SessionAccessibility::CLASSNAME_IMAGE, IsAccessibilityElementRule::Yes, + UIA_ImageControlTypeId, eNoNameRule) ROLE(STATICTEXT, @@ -375,6 +404,7 @@ ROLE(STATICTEXT, ROLE_SYSTEM_STATICTEXT, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfParentIsntElementWithName, + UIA_TextControlTypeId, eNoNameRule) ROLE(TEXT_LEAF, @@ -387,6 +417,7 @@ ROLE(TEXT_LEAF, ROLE_SYSTEM_TEXT, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfParentIsntElementWithName, + UIA_TextControlTypeId, eNoNameRule) ROLE(PUSHBUTTON, @@ -399,6 +430,7 @@ ROLE(PUSHBUTTON, ROLE_SYSTEM_PUSHBUTTON, java::SessionAccessibility::CLASSNAME_BUTTON, IsAccessibilityElementRule::Yes, + UIA_ButtonControlTypeId, eNameFromSubtreeRule) ROLE(CHECKBUTTON, @@ -411,6 +443,7 @@ ROLE(CHECKBUTTON, ROLE_SYSTEM_CHECKBUTTON, java::SessionAccessibility::CLASSNAME_CHECKBOX, IsAccessibilityElementRule::Yes, + UIA_CheckBoxControlTypeId, eNameFromSubtreeRule) ROLE(RADIOBUTTON, @@ -423,6 +456,7 @@ ROLE(RADIOBUTTON, ROLE_SYSTEM_RADIOBUTTON, java::SessionAccessibility::CLASSNAME_RADIOBUTTON, IsAccessibilityElementRule::Yes, + UIA_RadioButtonControlTypeId, eNameFromSubtreeRule) // Equivalent of HTML select element with size="1". See also EDITCOMBOBOX. @@ -436,6 +470,7 @@ ROLE(COMBOBOX, ROLE_SYSTEM_COMBOBOX, java::SessionAccessibility::CLASSNAME_SPINNER, IsAccessibilityElementRule::Yes, + UIA_ComboBoxControlTypeId, eNameFromValueRule) ROLE(PROGRESSBAR, @@ -448,6 +483,7 @@ ROLE(PROGRESSBAR, ROLE_SYSTEM_PROGRESSBAR, java::SessionAccessibility::CLASSNAME_PROGRESSBAR, IsAccessibilityElementRule::Yes, + UIA_ProgressBarControlTypeId, eNameFromValueRule) ROLE(SLIDER, @@ -460,6 +496,7 @@ ROLE(SLIDER, ROLE_SYSTEM_SLIDER, java::SessionAccessibility::CLASSNAME_SEEKBAR, IsAccessibilityElementRule::Yes, + UIA_SliderControlTypeId, eNameFromValueRule) ROLE(SPINBUTTON, @@ -472,6 +509,7 @@ ROLE(SPINBUTTON, ROLE_SYSTEM_SPINBUTTON, java::SessionAccessibility::CLASSNAME_EDITTEXT, IsAccessibilityElementRule::Yes, + UIA_SpinnerControlTypeId, eNameFromValueRule) ROLE(DIAGRAM, @@ -484,6 +522,7 @@ ROLE(DIAGRAM, ROLE_SYSTEM_DIAGRAM, java::SessionAccessibility::CLASSNAME_IMAGE, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ImageControlTypeId, eNoNameRule) ROLE(ANIMATION, @@ -496,6 +535,7 @@ ROLE(ANIMATION, ROLE_SYSTEM_ANIMATION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(BUTTONDROPDOWN, @@ -508,6 +548,7 @@ ROLE(BUTTONDROPDOWN, ROLE_SYSTEM_BUTTONDROPDOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::Yes, + UIA_SplitButtonControlTypeId, eNameFromSubtreeRule) ROLE(BUTTONMENU, @@ -520,6 +561,7 @@ ROLE(BUTTONMENU, ROLE_SYSTEM_BUTTONMENU, java::SessionAccessibility::CLASSNAME_SPINNER, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ButtonControlTypeId, eNameFromSubtreeRule) ROLE(WHITESPACE, @@ -532,6 +574,7 @@ ROLE(WHITESPACE, ROLE_SYSTEM_WHITESPACE, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::No, + UIA_TextControlTypeId, eNoNameRule) ROLE(PAGETABLIST, @@ -544,6 +587,7 @@ ROLE(PAGETABLIST, ROLE_SYSTEM_PAGETABLIST, java::SessionAccessibility::CLASSNAME_TABWIDGET, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TabControlTypeId, eNoNameRule) ROLE(CANVAS, @@ -556,6 +600,7 @@ ROLE(CANVAS, IA2_ROLE_CANVAS, java::SessionAccessibility::CLASSNAME_IMAGE, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ImageControlTypeId, eNoNameRule) ROLE(CHECK_MENU_ITEM, @@ -568,6 +613,7 @@ ROLE(CHECK_MENU_ITEM, IA2_ROLE_CHECK_MENU_ITEM, java::SessionAccessibility::CLASSNAME_MENUITEM, IsAccessibilityElementRule::Yes, + UIA_MenuItemControlTypeId, eNameFromSubtreeRule) ROLE(DATE_EDITOR, @@ -580,6 +626,7 @@ ROLE(DATE_EDITOR, IA2_ROLE_DATE_EDITOR, java::SessionAccessibility::CLASSNAME_SPINNER, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(CHROME_WINDOW, @@ -592,6 +639,7 @@ ROLE(CHROME_WINDOW, IA2_ROLE_FRAME, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_WindowControlTypeId, eNoNameRule) ROLE(LABEL, @@ -604,6 +652,7 @@ ROLE(LABEL, IA2_ROLE_LABEL, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeRule) ROLE(PASSWORD_TEXT, @@ -616,6 +665,7 @@ ROLE(PASSWORD_TEXT, ROLE_SYSTEM_TEXT, java::SessionAccessibility::CLASSNAME_EDITTEXT, IsAccessibilityElementRule::Yes, + UIA_EditControlTypeId, eNoNameRule) ROLE(RADIO_MENU_ITEM, @@ -628,6 +678,7 @@ ROLE(RADIO_MENU_ITEM, IA2_ROLE_RADIO_MENU_ITEM, java::SessionAccessibility::CLASSNAME_MENUITEM, IsAccessibilityElementRule::Yes, + UIA_MenuItemControlTypeId, eNameFromSubtreeRule) ROLE(TEXT_CONTAINER, @@ -640,6 +691,7 @@ ROLE(TEXT_CONTAINER, IA2_ROLE_TEXT_FRAME, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeIfReqRule) ROLE(TOGGLE_BUTTON, @@ -652,6 +704,7 @@ ROLE(TOGGLE_BUTTON, IA2_ROLE_TOGGLE_BUTTON, java::SessionAccessibility::CLASSNAME_TOGGLEBUTTON, IsAccessibilityElementRule::Yes, + UIA_ButtonControlTypeId, eNameFromSubtreeRule) ROLE(TREE_TABLE, @@ -664,6 +717,7 @@ ROLE(TREE_TABLE, ROLE_SYSTEM_OUTLINE, java::SessionAccessibility::CLASSNAME_GRIDVIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_DataGridControlTypeId, eNoNameRule) ROLE(PARAGRAPH, @@ -676,6 +730,7 @@ ROLE(PARAGRAPH, IA2_ROLE_PARAGRAPH, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(ENTRY, @@ -688,6 +743,7 @@ ROLE(ENTRY, ROLE_SYSTEM_TEXT, java::SessionAccessibility::CLASSNAME_EDITTEXT, IsAccessibilityElementRule::Yes, + UIA_EditControlTypeId, eNameFromValueRule) ROLE(CAPTION, @@ -700,6 +756,7 @@ ROLE(CAPTION, IA2_ROLE_CAPTION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(NON_NATIVE_DOCUMENT, @@ -712,6 +769,7 @@ ROLE(NON_NATIVE_DOCUMENT, ROLE_SYSTEM_DOCUMENT, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_DocumentControlTypeId, eNoNameRule) ROLE(HEADING, @@ -724,6 +782,7 @@ ROLE(HEADING, IA2_ROLE_HEADING, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildless, + UIA_TextControlTypeId, eNameFromSubtreeRule) ROLE(SECTION, @@ -736,6 +795,7 @@ ROLE(SECTION, IA2_ROLE_SECTION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeIfReqRule) ROLE(FORM, @@ -748,6 +808,7 @@ ROLE(FORM, IA2_ROLE_FORM, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(APP_ROOT, @@ -760,6 +821,7 @@ ROLE(APP_ROOT, ROLE_SYSTEM_APPLICATION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_WindowControlTypeId, eNoNameRule) ROLE(PARENT_MENUITEM, @@ -772,6 +834,7 @@ ROLE(PARENT_MENUITEM, ROLE_SYSTEM_MENUITEM, java::SessionAccessibility::CLASSNAME_MENUITEM, IsAccessibilityElementRule::Yes, + UIA_MenuItemControlTypeId, eNameFromSubtreeRule) ROLE(COMBOBOX_LIST, @@ -784,6 +847,7 @@ ROLE(COMBOBOX_LIST, ROLE_SYSTEM_LIST, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::No, + UIA_ListControlTypeId, eNoNameRule) ROLE(COMBOBOX_OPTION, @@ -796,6 +860,7 @@ ROLE(COMBOBOX_OPTION, ROLE_SYSTEM_LISTITEM, java::SessionAccessibility::CLASSNAME_MENUITEM, IsAccessibilityElementRule::Yes, + UIA_ListItemControlTypeId, eNameFromSubtreeRule) ROLE(IMAGE_MAP, @@ -808,6 +873,7 @@ ROLE(IMAGE_MAP, ROLE_SYSTEM_GRAPHIC, java::SessionAccessibility::CLASSNAME_IMAGE, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ImageControlTypeId, eNoNameRule) ROLE(OPTION, @@ -820,6 +886,7 @@ ROLE(OPTION, ROLE_SYSTEM_LISTITEM, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::Yes, + UIA_ListItemControlTypeId, eNameFromSubtreeRule) ROLE(RICH_OPTION, @@ -832,6 +899,7 @@ ROLE(RICH_OPTION, ROLE_SYSTEM_LISTITEM, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ListItemControlTypeId, eNameFromSubtreeRule) ROLE(LISTBOX, @@ -844,6 +912,7 @@ ROLE(LISTBOX, ROLE_SYSTEM_LIST, java::SessionAccessibility::CLASSNAME_LISTVIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ListControlTypeId, eNameFromValueRule) ROLE(FLAT_EQUATION, @@ -856,6 +925,7 @@ ROLE(FLAT_EQUATION, ROLE_SYSTEM_EQUATION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::Yes, + UIA_GroupControlTypeId, eNoNameRule) ROLE(GRID_CELL, @@ -868,6 +938,7 @@ ROLE(GRID_CELL, ROLE_SYSTEM_CELL, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_DataItemControlTypeId, eNameFromSubtreeRule) ROLE(NOTE, @@ -880,6 +951,7 @@ ROLE(NOTE, IA2_ROLE_NOTE, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeIfReqRule) ROLE(FIGURE, @@ -892,6 +964,7 @@ ROLE(FIGURE, ROLE_SYSTEM_GROUPING, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(CHECK_RICH_OPTION, @@ -904,6 +977,7 @@ ROLE(CHECK_RICH_OPTION, ROLE_SYSTEM_CHECKBUTTON, java::SessionAccessibility::CLASSNAME_CHECKBOX, IsAccessibilityElementRule::Yes, + UIA_CheckBoxControlTypeId, eNameFromSubtreeRule) ROLE(DEFINITION_LIST, @@ -916,6 +990,7 @@ ROLE(DEFINITION_LIST, ROLE_SYSTEM_LIST, java::SessionAccessibility::CLASSNAME_LISTVIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ListControlTypeId, eNameFromSubtreeIfReqRule) ROLE(TERM, @@ -928,6 +1003,7 @@ ROLE(TERM, ROLE_SYSTEM_LISTITEM, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeRule) ROLE(DEFINITION, @@ -940,6 +1016,7 @@ ROLE(DEFINITION, IA2_ROLE_PARAGRAPH, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeRule) ROLE(KEY, @@ -952,6 +1029,7 @@ ROLE(KEY, ROLE_SYSTEM_PUSHBUTTON, java::SessionAccessibility::CLASSNAME_BUTTON, IsAccessibilityElementRule::Yes, + UIA_ButtonControlTypeId, eNameFromSubtreeRule) ROLE(SWITCH, @@ -964,6 +1042,7 @@ ROLE(SWITCH, IA2_ROLE_TOGGLE_BUTTON, java::SessionAccessibility::CLASSNAME_CHECKBOX, IsAccessibilityElementRule::Yes, + UIA_ButtonControlTypeId, eNameFromSubtreeRule) ROLE(MATHML_MATH, @@ -976,6 +1055,7 @@ ROLE(MATHML_MATH, ROLE_SYSTEM_EQUATION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_IDENTIFIER, @@ -988,6 +1068,7 @@ ROLE(MATHML_IDENTIFIER, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeRule) ROLE(MATHML_NUMBER, @@ -1000,6 +1081,7 @@ ROLE(MATHML_NUMBER, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeRule) ROLE(MATHML_OPERATOR, @@ -1017,6 +1099,7 @@ ROLE(MATHML_OPERATOR, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeRule) ROLE(MATHML_TEXT, @@ -1029,6 +1112,7 @@ ROLE(MATHML_TEXT, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeRule) ROLE(MATHML_STRING_LITERAL, @@ -1041,6 +1125,7 @@ ROLE(MATHML_STRING_LITERAL, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeRule) ROLE(MATHML_GLYPH, @@ -1053,6 +1138,7 @@ ROLE(MATHML_GLYPH, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_IMAGE, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeRule) ROLE(MATHML_ROW, @@ -1065,6 +1151,7 @@ ROLE(MATHML_ROW, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_FRACTION, @@ -1077,6 +1164,7 @@ ROLE(MATHML_FRACTION, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_SQUARE_ROOT, @@ -1089,6 +1177,7 @@ ROLE(MATHML_SQUARE_ROOT, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_ROOT, @@ -1101,6 +1190,7 @@ ROLE(MATHML_ROOT, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_ENCLOSED, @@ -1113,6 +1203,7 @@ ROLE(MATHML_ENCLOSED, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_STYLE, @@ -1125,6 +1216,7 @@ ROLE(MATHML_STYLE, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_SUB, @@ -1137,6 +1229,7 @@ ROLE(MATHML_SUB, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_SUP, @@ -1149,6 +1242,7 @@ ROLE(MATHML_SUP, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_SUB_SUP, @@ -1161,6 +1255,7 @@ ROLE(MATHML_SUB_SUP, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_UNDER, @@ -1173,6 +1268,7 @@ ROLE(MATHML_UNDER, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_OVER, @@ -1185,6 +1281,7 @@ ROLE(MATHML_OVER, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_UNDER_OVER, @@ -1197,6 +1294,7 @@ ROLE(MATHML_UNDER_OVER, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_MULTISCRIPTS, @@ -1209,6 +1307,7 @@ ROLE(MATHML_MULTISCRIPTS, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_TABLE, @@ -1221,6 +1320,7 @@ ROLE(MATHML_TABLE, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_GRIDVIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_LABELED_ROW, @@ -1233,6 +1333,7 @@ ROLE(MATHML_LABELED_ROW, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_TABLE_ROW, @@ -1245,6 +1346,7 @@ ROLE(MATHML_TABLE_ROW, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_CELL, @@ -1257,6 +1359,7 @@ ROLE(MATHML_CELL, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_ACTION, @@ -1269,6 +1372,7 @@ ROLE(MATHML_ACTION, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_ERROR, @@ -1281,6 +1385,7 @@ ROLE(MATHML_ERROR, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_STACK, @@ -1293,6 +1398,7 @@ ROLE(MATHML_STACK, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_LONG_DIVISION, @@ -1305,6 +1411,7 @@ ROLE(MATHML_LONG_DIVISION, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_STACK_GROUP, @@ -1317,6 +1424,7 @@ ROLE(MATHML_STACK_GROUP, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_STACK_ROW, @@ -1329,6 +1437,7 @@ ROLE(MATHML_STACK_ROW, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_STACK_CARRIES, @@ -1341,6 +1450,7 @@ ROLE(MATHML_STACK_CARRIES, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_STACK_CARRY, @@ -1353,6 +1463,7 @@ ROLE(MATHML_STACK_CARRY, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MATHML_STACK_LINE, @@ -1365,6 +1476,7 @@ ROLE(MATHML_STACK_LINE, IA2_ROLE_UNKNOWN, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(RADIO_GROUP, @@ -1377,6 +1489,7 @@ ROLE(RADIO_GROUP, ROLE_SYSTEM_GROUPING, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_ListControlTypeId, eNoNameRule) ROLE(TEXT, @@ -1389,6 +1502,7 @@ ROLE(TEXT, IA2_ROLE_TEXT_FRAME, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeIfReqRule) ROLE(DETAILS, @@ -1401,6 +1515,7 @@ ROLE(DETAILS, ROLE_SYSTEM_GROUPING, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(SUMMARY, @@ -1413,6 +1528,7 @@ ROLE(SUMMARY, ROLE_SYSTEM_PUSHBUTTON, java::SessionAccessibility::CLASSNAME_BUTTON, IsAccessibilityElementRule::Yes, + UIA_ButtonControlTypeId, eNameFromSubtreeRule) ROLE(LANDMARK, @@ -1425,6 +1541,7 @@ ROLE(LANDMARK, IA2_ROLE_LANDMARK, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(NAVIGATION, @@ -1437,6 +1554,7 @@ ROLE(NAVIGATION, IA2_ROLE_LANDMARK, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(FOOTNOTE, @@ -1449,6 +1567,7 @@ ROLE(FOOTNOTE, IA2_ROLE_FOOTNOTE, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(ARTICLE, @@ -1461,6 +1580,7 @@ ROLE(ARTICLE, ROLE_SYSTEM_DOCUMENT, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(REGION, @@ -1473,6 +1593,7 @@ ROLE(REGION, IA2_ROLE_LANDMARK, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) // A composite widget with a text input and popup. Used for ARIA role combobox. @@ -1487,6 +1608,7 @@ ROLE(EDITCOMBOBOX, ROLE_SYSTEM_COMBOBOX, java::SessionAccessibility::CLASSNAME_EDITTEXT, IsAccessibilityElementRule::Yes, + UIA_ComboBoxControlTypeId, eNameFromValueRule) ROLE(BLOCKQUOTE, @@ -1499,6 +1621,7 @@ ROLE(BLOCKQUOTE, IA2_ROLE_BLOCK_QUOTE, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(CONTENT_DELETION, @@ -1511,6 +1634,7 @@ ROLE(CONTENT_DELETION, IA2_ROLE_CONTENT_DELETION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(CONTENT_INSERTION, @@ -1523,6 +1647,7 @@ ROLE(CONTENT_INSERTION, IA2_ROLE_CONTENT_INSERTION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(FORM_LANDMARK, @@ -1535,6 +1660,7 @@ ROLE(FORM_LANDMARK, IA2_ROLE_FORM, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(MARK, @@ -1547,6 +1673,7 @@ ROLE(MARK, IA2_ROLE_MARK, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeIfReqRule) ROLE(SUGGESTION, @@ -1559,6 +1686,7 @@ ROLE(SUGGESTION, IA2_ROLE_SUGGESTION, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(COMMENT, @@ -1571,6 +1699,7 @@ ROLE(COMMENT, IA2_ROLE_COMMENT, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNoNameRule) ROLE(CODE, @@ -1583,6 +1712,7 @@ ROLE(CODE, IA2_ROLE_TEXT_FRAME, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(TIME_EDITOR, @@ -1595,6 +1725,7 @@ ROLE(TIME_EDITOR, ROLE_SYSTEM_GROUPING, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeIfReqRule) ROLE(LISTITEM_MARKER, @@ -1607,6 +1738,7 @@ ROLE(LISTITEM_MARKER, ROLE_SYSTEM_STATICTEXT, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNoNameRule) ROLE(METER, @@ -1619,6 +1751,7 @@ ROLE(METER, ROLE_SYSTEM_PROGRESSBAR, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::Yes, + UIA_ProgressBarControlTypeId, eNameFromValueRule) ROLE(SUBSCRIPT, @@ -1631,6 +1764,7 @@ ROLE(SUBSCRIPT, IA2_ROLE_TEXT_FRAME, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(SUPERSCRIPT, @@ -1643,6 +1777,7 @@ ROLE(SUPERSCRIPT, IA2_ROLE_TEXT_FRAME, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(EMPHASIS, @@ -1655,6 +1790,7 @@ ROLE(EMPHASIS, IA2_ROLE_TEXT_FRAME, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(STRONG, @@ -1667,6 +1803,7 @@ ROLE(STRONG, IA2_ROLE_TEXT_FRAME, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(TIME, @@ -1679,6 +1816,7 @@ ROLE(TIME, ROLE_SYSTEM_GROUPING, java::SessionAccessibility::CLASSNAME_VIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_TextControlTypeId, eNameFromSubtreeIfReqRule) ROLE(GRID, @@ -1691,5 +1829,19 @@ ROLE(GRID, ROLE_SYSTEM_TABLE, java::SessionAccessibility::CLASSNAME_GRIDVIEW, IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_DataGridControlTypeId, + eNameFromSubtreeIfReqRule) + +ROLE(ROWGROUP, + "rowgroup", + nsGkAtoms::rowgroup, + ATK_ROLE_PANEL, + NSAccessibilityGroupRole, + NSAccessibilityUnknownSubrole, + ROLE_SYSTEM_GROUPING, + ROLE_SYSTEM_GROUPING, + java::SessionAccessibility::CLASSNAME_VIEW, + IsAccessibilityElementRule::IfChildlessWithNameAndFocusable, + UIA_GroupControlTypeId, eNameFromSubtreeIfReqRule) // clang-format on diff --git a/accessible/base/nsAccUtils.cpp b/accessible/base/nsAccUtils.cpp index 82af56348f..61211068ca 100644 --- a/accessible/base/nsAccUtils.cpp +++ b/accessible/base/nsAccUtils.cpp @@ -583,8 +583,9 @@ const nsAttrValue* nsAccUtils::GetARIAAttr(dom::Element* aElement, bool nsAccUtils::ARIAAttrValueIs(dom::Element* aElement, const nsAtom* aName, const nsAString& aValue, nsCaseTreatment aCaseSensitive) { - if (aElement->AttrValueIs(kNameSpaceID_None, aName, aValue, aCaseSensitive)) { - return true; + if (aElement->HasAttr(kNameSpaceID_None, aName)) { + return aElement->AttrValueIs(kNameSpaceID_None, aName, aValue, + aCaseSensitive); } const auto* defaults = GetARIADefaults(aElement); if (!defaults) { @@ -597,8 +598,9 @@ bool nsAccUtils::ARIAAttrValueIs(dom::Element* aElement, const nsAtom* aName, bool nsAccUtils::ARIAAttrValueIs(dom::Element* aElement, const nsAtom* aName, const nsAtom* aValue, nsCaseTreatment aCaseSensitive) { - if (aElement->AttrValueIs(kNameSpaceID_None, aName, aValue, aCaseSensitive)) { - return true; + if (aElement->HasAttr(kNameSpaceID_None, aName)) { + return aElement->AttrValueIs(kNameSpaceID_None, aName, aValue, + aCaseSensitive); } const auto* defaults = GetARIADefaults(aElement); if (!defaults) { diff --git a/accessible/base/nsAccessibilityService.cpp b/accessible/base/nsAccessibilityService.cpp index d38276572b..615af596a7 100644 --- a/accessible/base/nsAccessibilityService.cpp +++ b/accessible/base/nsAccessibilityService.cpp @@ -122,7 +122,7 @@ static LocalAccessible* MaybeCreateSpecificARIAAccessible( if (!parent) { return nullptr; } - if (!parent->IsTable() && parent->Role() == roles::GROUPING) { + if (!parent->IsTable() && parent->Role() == roles::ROWGROUP) { parent = parent->GetNonGenericParent(); if (!parent) { return nullptr; @@ -838,7 +838,8 @@ void nsAccessibilityService::RecreateAccessible(PresShell* aPresShell, void nsAccessibilityService::GetStringRole(uint32_t aRole, nsAString& aString) { #define ROLE(geckoRole, stringRole, ariaRole, atkRole, macRole, macSubrole, \ - msaaRole, ia2Role, androidClass, iosIsElement, nameRule) \ + msaaRole, ia2Role, androidClass, iosIsElement, uiaControlType, \ + nameRule) \ case roles::geckoRole: \ aString.AssignLiteral(stringRole); \ return; diff --git a/accessible/base/nsTextEquivUtils.cpp b/accessible/base/nsTextEquivUtils.cpp index f222930981..769559a2c9 100644 --- a/accessible/base/nsTextEquivUtils.cpp +++ b/accessible/base/nsTextEquivUtils.cpp @@ -165,6 +165,7 @@ nsresult nsTextEquivUtils::AppendFromAccessible(Accessible* aAccessible, // together in final name. const nsStyleDisplay* display = frame->StyleDisplay(); if (display->IsBlockOutsideStyle() || + display->mDisplay == StyleDisplay::InlineBlock || display->mDisplay == StyleDisplay::TableCell) { isHTMLBlock = true; if (!aString->IsEmpty()) { @@ -323,7 +324,8 @@ bool nsTextEquivUtils::AppendString(nsAString* aString, uint32_t nsTextEquivUtils::GetRoleRule(role aRole) { #define ROLE(geckoRole, stringRole, ariaRole, atkRole, macRole, macSubrole, \ - msaaRole, ia2Role, androidClass, iosIsElement, nameRule) \ + msaaRole, ia2Role, androidClass, iosIsElement, uiaControlType, \ + nameRule) \ case roles::geckoRole: \ return nameRule; |