| Index: content/browser/accessibility/browser_accessibility_com_win.cc
|
| diff --git a/content/browser/accessibility/browser_accessibility_com_win.cc b/content/browser/accessibility/browser_accessibility_com_win.cc
|
| index 57ff9025055e2d8197325b35ee3124ff52c63c12..6bee5797dc68801985a15abb9e60d69f35161fd0 100644
|
| --- a/content/browser/accessibility/browser_accessibility_com_win.cc
|
| +++ b/content/browser/accessibility/browser_accessibility_com_win.cc
|
| @@ -613,7 +613,7 @@ STDMETHODIMP BrowserAccessibilityComWin::get_accState(VARIANT var_id,
|
| }
|
|
|
| bool BrowserAccessibilityComWin::IsRangeValueSupported() {
|
| - switch (ia_role()) {
|
| + switch (MSAARole()) {
|
| case ROLE_SYSTEM_PROGRESSBAR:
|
| case ROLE_SYSTEM_SLIDER:
|
| case ROLE_SYSTEM_SPINBUTTON:
|
| @@ -3401,7 +3401,7 @@ HRESULT WINAPI BrowserAccessibilityComWin::InternalQueryInterface(
|
| void** object) {
|
| BrowserAccessibilityComWin* accessibility =
|
| reinterpret_cast<BrowserAccessibilityComWin*>(this_ptr);
|
| - int32_t ia_role = accessibility->ia_role();
|
| + int32_t ia_role = accessibility->MSAARole();
|
| if (iid == IID_IAccessibleImage) {
|
| if (ia_role != ROLE_SYSTEM_GRAPHIC) {
|
| *object = NULL;
|
| @@ -3660,8 +3660,8 @@ void BrowserAccessibilityComWin::UpdateStep1ComputeWinAttributes() {
|
|
|
| // Expose row or column header sort direction.
|
| int32_t sort_direction;
|
| - if ((ia_role() == ROLE_SYSTEM_COLUMNHEADER ||
|
| - ia_role() == ROLE_SYSTEM_ROWHEADER) &&
|
| + if ((MSAARole() == ROLE_SYSTEM_COLUMNHEADER ||
|
| + MSAARole() == ROLE_SYSTEM_ROWHEADER) &&
|
| owner()->GetIntAttribute(ui::AX_ATTR_SORT_DIRECTION, &sort_direction)) {
|
| switch (static_cast<ui::AXSortDirection>(sort_direction)) {
|
| case ui::AX_SORT_DIRECTION_NONE:
|
| @@ -3740,7 +3740,6 @@ void BrowserAccessibilityComWin::UpdateStep1ComputeWinAttributes() {
|
| // something other than DOCUMENT so that the fact that it's a separate doc
|
| // is not exposed to AT.
|
| if (owner()->IsWebAreaForPresentationalIframe()) {
|
| - win_attributes_->ia_role = ROLE_SYSTEM_GROUPING;
|
| win_attributes_->ia2_role = ROLE_SYSTEM_GROUPING;
|
| }
|
| }
|
| @@ -4920,8 +4919,6 @@ void BrowserAccessibilityComWin::FireNativeEvent(LONG win_event_type) const {
|
| }
|
|
|
| void BrowserAccessibilityComWin::InitRoleAndState() {
|
| - int32_t ia_role = 0;
|
| - base::string16 role_name;
|
| int32_t ia2_role = 0;
|
| int32_t ia2_state = IA2_STATE_OPAQUE;
|
|
|
| @@ -4966,448 +4963,151 @@ void BrowserAccessibilityComWin::InitRoleAndState() {
|
|
|
| base::string16 html_tag = owner()->GetString16Attribute(ui::AX_ATTR_HTML_TAG);
|
| switch (owner()->GetRole()) {
|
| - case ui::AX_ROLE_ALERT:
|
| - ia_role = ROLE_SYSTEM_ALERT;
|
| - break;
|
| - case ui::AX_ROLE_ALERT_DIALOG:
|
| - ia_role = ROLE_SYSTEM_DIALOG;
|
| - break;
|
| - case ui::AX_ROLE_ANCHOR:
|
| - ia_role = ROLE_SYSTEM_LINK;
|
| - break;
|
| - case ui::AX_ROLE_APPLICATION:
|
| - ia_role = ROLE_SYSTEM_APPLICATION;
|
| - break;
|
| - case ui::AX_ROLE_ARTICLE:
|
| - ia_role = ROLE_SYSTEM_DOCUMENT;
|
| - break;
|
| - case ui::AX_ROLE_AUDIO:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| - break;
|
| case ui::AX_ROLE_BANNER:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_HEADER;
|
| break;
|
| case ui::AX_ROLE_BLOCKQUOTE:
|
| - role_name = html_tag;
|
| ia2_role = IA2_ROLE_SECTION;
|
| break;
|
| - case ui::AX_ROLE_BUSY_INDICATOR:
|
| - ia_role = ROLE_SYSTEM_ANIMATION;
|
| - break;
|
| - case ui::AX_ROLE_BUTTON:
|
| - ia_role = ROLE_SYSTEM_PUSHBUTTON;
|
| - break;
|
| case ui::AX_ROLE_CANVAS:
|
| if (owner()->GetBoolAttribute(ui::AX_ATTR_CANVAS_HAS_FALLBACK)) {
|
| - role_name = L"canvas";
|
| ia2_role = IA2_ROLE_CANVAS;
|
| - } else {
|
| - ia_role = ROLE_SYSTEM_GRAPHIC;
|
| }
|
| break;
|
| case ui::AX_ROLE_CAPTION:
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_role = IA2_ROLE_CAPTION;
|
| break;
|
| - case ui::AX_ROLE_CELL:
|
| - ia_role = ROLE_SYSTEM_CELL;
|
| - break;
|
| - case ui::AX_ROLE_CHECK_BOX:
|
| - ia_role = ROLE_SYSTEM_CHECKBUTTON;
|
| - break;
|
| case ui::AX_ROLE_COLOR_WELL:
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_role = IA2_ROLE_COLOR_CHOOSER;
|
| break;
|
| - case ui::AX_ROLE_COLUMN:
|
| - ia_role = ROLE_SYSTEM_COLUMN;
|
| - break;
|
| - case ui::AX_ROLE_COLUMN_HEADER:
|
| - ia_role = ROLE_SYSTEM_COLUMNHEADER;
|
| - break;
|
| - case ui::AX_ROLE_COMBO_BOX:
|
| - ia_role = ROLE_SYSTEM_COMBOBOX;
|
| - break;
|
| case ui::AX_ROLE_COMPLEMENTARY:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_NOTE;
|
| break;
|
| case ui::AX_ROLE_CONTENT_INFO:
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_role = IA2_ROLE_PARAGRAPH;
|
| break;
|
| case ui::AX_ROLE_DATE:
|
| case ui::AX_ROLE_DATE_TIME:
|
| - ia_role = ROLE_SYSTEM_DROPLIST;
|
| ia2_role = IA2_ROLE_DATE_EDITOR;
|
| break;
|
| case ui::AX_ROLE_DEFINITION:
|
| - role_name = html_tag;
|
| ia2_role = IA2_ROLE_PARAGRAPH;
|
| break;
|
| case ui::AX_ROLE_DESCRIPTION_LIST_DETAIL:
|
| - role_name = html_tag;
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_role = IA2_ROLE_PARAGRAPH;
|
| break;
|
| - case ui::AX_ROLE_DESCRIPTION_LIST:
|
| - role_name = html_tag;
|
| - ia_role = ROLE_SYSTEM_LIST;
|
| - break;
|
| - case ui::AX_ROLE_DESCRIPTION_LIST_TERM:
|
| - ia_role = ROLE_SYSTEM_LISTITEM;
|
| - break;
|
| - case ui::AX_ROLE_DETAILS:
|
| - role_name = html_tag;
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| - break;
|
| - case ui::AX_ROLE_DIALOG:
|
| - ia_role = ROLE_SYSTEM_DIALOG;
|
| - break;
|
| - case ui::AX_ROLE_DISCLOSURE_TRIANGLE:
|
| - ia_role = ROLE_SYSTEM_PUSHBUTTON;
|
| - break;
|
| - case ui::AX_ROLE_DOCUMENT:
|
| - case ui::AX_ROLE_ROOT_WEB_AREA:
|
| - case ui::AX_ROLE_WEB_AREA:
|
| - ia_role = ROLE_SYSTEM_DOCUMENT;
|
| - break;
|
| case ui::AX_ROLE_EMBEDDED_OBJECT:
|
| - if (owner()->PlatformChildCount()) {
|
| - // Windows screen readers assume that IA2_ROLE_EMBEDDED_OBJECT
|
| - // doesn't have any children, but it may be something like a
|
| - // browser plugin that has a document inside.
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| - } else {
|
| - ia_role = ROLE_SYSTEM_CLIENT;
|
| + if (!owner()->PlatformChildCount()) {
|
| ia2_role = IA2_ROLE_EMBEDDED_OBJECT;
|
| }
|
| break;
|
| case ui::AX_ROLE_FIGCAPTION:
|
| - role_name = html_tag;
|
| ia2_role = IA2_ROLE_CAPTION;
|
| break;
|
| - case ui::AX_ROLE_FIGURE:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| - break;
|
| - case ui::AX_ROLE_FEED:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| - break;
|
| case ui::AX_ROLE_FORM:
|
| - role_name = L"form";
|
| ia2_role = IA2_ROLE_FORM;
|
| break;
|
| case ui::AX_ROLE_FOOTER:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_FOOTER;
|
| break;
|
| case ui::AX_ROLE_GENERIC_CONTAINER:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_SECTION;
|
| - role_name = html_tag.empty() ? L"div" : html_tag;
|
| - break;
|
| - case ui::AX_ROLE_GRID:
|
| - ia_role = ROLE_SYSTEM_TABLE;
|
| - break;
|
| - case ui::AX_ROLE_GROUP:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| break;
|
| case ui::AX_ROLE_HEADING:
|
| - role_name = html_tag;
|
| - if (html_tag.empty())
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_HEADING;
|
| break;
|
| case ui::AX_ROLE_IFRAME:
|
| - ia_role = ROLE_SYSTEM_DOCUMENT;
|
| ia2_role = IA2_ROLE_INTERNAL_FRAME;
|
| break;
|
| - case ui::AX_ROLE_IFRAME_PRESENTATIONAL:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| - break;
|
| - case ui::AX_ROLE_IMAGE:
|
| - ia_role = ROLE_SYSTEM_GRAPHIC;
|
| - break;
|
| case ui::AX_ROLE_IMAGE_MAP:
|
| - role_name = html_tag;
|
| ia2_role = IA2_ROLE_IMAGE_MAP;
|
| break;
|
| - case ui::AX_ROLE_IMAGE_MAP_LINK:
|
| - ia_role = ROLE_SYSTEM_LINK;
|
| - break;
|
| - case ui::AX_ROLE_INPUT_TIME:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| - break;
|
| case ui::AX_ROLE_LABEL_TEXT:
|
| case ui::AX_ROLE_LEGEND:
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_role = IA2_ROLE_LABEL;
|
| break;
|
| - case ui::AX_ROLE_LINK:
|
| - ia_role = ROLE_SYSTEM_LINK;
|
| - break;
|
| - case ui::AX_ROLE_LIST:
|
| - ia_role = ROLE_SYSTEM_LIST;
|
| - break;
|
| - case ui::AX_ROLE_LIST_BOX:
|
| - ia_role = ROLE_SYSTEM_LIST;
|
| - break;
|
| - case ui::AX_ROLE_LIST_BOX_OPTION:
|
| - ia_role = ROLE_SYSTEM_LISTITEM;
|
| - break;
|
| - case ui::AX_ROLE_LIST_ITEM:
|
| - ia_role = ROLE_SYSTEM_LISTITEM;
|
| - break;
|
| case ui::AX_ROLE_MAIN:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_PARAGRAPH;
|
| break;
|
| case ui::AX_ROLE_MARK:
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_role = IA2_ROLE_TEXT_FRAME;
|
| break;
|
| - case ui::AX_ROLE_MARQUEE:
|
| - ia_role = ROLE_SYSTEM_ANIMATION;
|
| - break;
|
| - case ui::AX_ROLE_MATH:
|
| - ia_role = ROLE_SYSTEM_EQUATION;
|
| - break;
|
| - case ui::AX_ROLE_MENU:
|
| - case ui::AX_ROLE_MENU_BUTTON:
|
| - ia_role = ROLE_SYSTEM_MENUPOPUP;
|
| - break;
|
| - case ui::AX_ROLE_MENU_BAR:
|
| - ia_role = ROLE_SYSTEM_MENUBAR;
|
| - break;
|
| - case ui::AX_ROLE_MENU_ITEM:
|
| - ia_role = ROLE_SYSTEM_MENUITEM;
|
| - break;
|
| case ui::AX_ROLE_MENU_ITEM_CHECK_BOX:
|
| - ia_role = ROLE_SYSTEM_MENUITEM;
|
| ia2_role = IA2_ROLE_CHECK_MENU_ITEM;
|
| break;
|
| case ui::AX_ROLE_MENU_ITEM_RADIO:
|
| - ia_role = ROLE_SYSTEM_MENUITEM;
|
| ia2_role = IA2_ROLE_RADIO_MENU_ITEM;
|
| break;
|
| case ui::AX_ROLE_MENU_LIST_POPUP:
|
| - ia_role = ROLE_SYSTEM_LIST;
|
| ia2_state &= ~(IA2_STATE_EDITABLE);
|
| break;
|
| case ui::AX_ROLE_MENU_LIST_OPTION:
|
| - ia_role = ROLE_SYSTEM_LISTITEM;
|
| ia2_state &= ~(IA2_STATE_EDITABLE);
|
| break;
|
| - case ui::AX_ROLE_METER:
|
| - role_name = html_tag;
|
| - ia_role = ROLE_SYSTEM_PROGRESSBAR;
|
| - break;
|
| case ui::AX_ROLE_NAVIGATION:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_SECTION;
|
| break;
|
| case ui::AX_ROLE_NOTE:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_NOTE;
|
| break;
|
| - case ui::AX_ROLE_OUTLINE:
|
| - ia_role = ROLE_SYSTEM_OUTLINE;
|
| - break;
|
| case ui::AX_ROLE_PARAGRAPH:
|
| - role_name = L"P";
|
| ia2_role = IA2_ROLE_PARAGRAPH;
|
| break;
|
| - case ui::AX_ROLE_POP_UP_BUTTON:
|
| - if (html_tag == L"select") {
|
| - ia_role = ROLE_SYSTEM_COMBOBOX;
|
| - } else {
|
| - ia_role = ROLE_SYSTEM_BUTTONMENU;
|
| - }
|
| - break;
|
| case ui::AX_ROLE_PRE:
|
| - role_name = html_tag;
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_role = IA2_ROLE_PARAGRAPH;
|
| break;
|
| - case ui::AX_ROLE_PROGRESS_INDICATOR:
|
| - ia_role = ROLE_SYSTEM_PROGRESSBAR;
|
| - break;
|
| - case ui::AX_ROLE_RADIO_BUTTON:
|
| - ia_role = ROLE_SYSTEM_RADIOBUTTON;
|
| - break;
|
| - case ui::AX_ROLE_RADIO_GROUP:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| - break;
|
| case ui::AX_ROLE_REGION:
|
| if (html_tag == L"section") {
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_SECTION;
|
| - } else {
|
| - ia_role = ROLE_SYSTEM_PANE;
|
| }
|
| break;
|
| - case ui::AX_ROLE_ROW: {
|
| - // Role changes depending on whether row is inside a treegrid
|
| - // https://www.w3.org/TR/core-aam-1.1/#role-map-row
|
| - ia_role =
|
| - IsInTreeGrid(owner()) ? ROLE_SYSTEM_OUTLINEITEM : ROLE_SYSTEM_ROW;
|
| - break;
|
| - }
|
| - case ui::AX_ROLE_ROW_HEADER:
|
| - ia_role = ROLE_SYSTEM_ROWHEADER;
|
| - break;
|
| case ui::AX_ROLE_RUBY:
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_role = IA2_ROLE_TEXT_FRAME;
|
| break;
|
| case ui::AX_ROLE_RULER:
|
| - ia_role = ROLE_SYSTEM_CLIENT;
|
| ia2_role = IA2_ROLE_RULER;
|
| break;
|
| case ui::AX_ROLE_SCROLL_AREA:
|
| - ia_role = ROLE_SYSTEM_CLIENT;
|
| ia2_role = IA2_ROLE_SCROLL_PANE;
|
| ia2_state &= ~(IA2_STATE_EDITABLE);
|
| break;
|
| - case ui::AX_ROLE_SCROLL_BAR:
|
| - ia_role = ROLE_SYSTEM_SCROLLBAR;
|
| - break;
|
| case ui::AX_ROLE_SEARCH:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_SECTION;
|
| break;
|
| - case ui::AX_ROLE_SLIDER:
|
| - ia_role = ROLE_SYSTEM_SLIDER;
|
| - break;
|
| - case ui::AX_ROLE_SPIN_BUTTON:
|
| - ia_role = ROLE_SYSTEM_SPINBUTTON;
|
| - break;
|
| - case ui::AX_ROLE_SPIN_BUTTON_PART:
|
| - ia_role = ROLE_SYSTEM_PUSHBUTTON;
|
| - break;
|
| - case ui::AX_ROLE_ANNOTATION:
|
| - case ui::AX_ROLE_LIST_MARKER:
|
| - case ui::AX_ROLE_STATIC_TEXT:
|
| - ia_role = ROLE_SYSTEM_STATICTEXT;
|
| - break;
|
| - case ui::AX_ROLE_STATUS:
|
| - ia_role = ROLE_SYSTEM_STATUSBAR;
|
| - break;
|
| - case ui::AX_ROLE_SPLITTER:
|
| - ia_role = ROLE_SYSTEM_SEPARATOR;
|
| - break;
|
| - case ui::AX_ROLE_SVG_ROOT:
|
| - ia_role = ROLE_SYSTEM_GRAPHIC;
|
| - break;
|
| case ui::AX_ROLE_SWITCH:
|
| - role_name = L"switch";
|
| ia2_role = IA2_ROLE_TOGGLE_BUTTON;
|
| break;
|
| - case ui::AX_ROLE_TAB:
|
| - ia_role = ROLE_SYSTEM_PAGETAB;
|
| - break;
|
| - case ui::AX_ROLE_TABLE:
|
| - ia_role = ROLE_SYSTEM_TABLE;
|
| - break;
|
| case ui::AX_ROLE_TABLE_HEADER_CONTAINER:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| ia2_role = IA2_ROLE_SECTION;
|
| break;
|
| - case ui::AX_ROLE_TAB_LIST:
|
| - ia_role = ROLE_SYSTEM_PAGETABLIST;
|
| - break;
|
| - case ui::AX_ROLE_TAB_PANEL:
|
| - ia_role = ROLE_SYSTEM_PROPERTYPAGE;
|
| - break;
|
| - case ui::AX_ROLE_TERM:
|
| - ia_role = ROLE_SYSTEM_LISTITEM;
|
| - break;
|
| case ui::AX_ROLE_TOGGLE_BUTTON:
|
| - ia_role = ROLE_SYSTEM_PUSHBUTTON;
|
| ia2_role = IA2_ROLE_TOGGLE_BUTTON;
|
| break;
|
| case ui::AX_ROLE_TEXT_FIELD:
|
| case ui::AX_ROLE_SEARCH_BOX:
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_state |= IA2_STATE_SELECTABLE_TEXT;
|
| break;
|
| case ui::AX_ROLE_ABBR:
|
| case ui::AX_ROLE_TIME:
|
| - role_name = html_tag;
|
| - ia_role = ROLE_SYSTEM_TEXT;
|
| ia2_role = IA2_ROLE_TEXT_FRAME;
|
| break;
|
| - case ui::AX_ROLE_TIMER:
|
| - ia_role = ROLE_SYSTEM_CLOCK;
|
| - break;
|
| - case ui::AX_ROLE_TOOLBAR:
|
| - ia_role = ROLE_SYSTEM_TOOLBAR;
|
| - break;
|
| - case ui::AX_ROLE_TOOLTIP:
|
| - ia_role = ROLE_SYSTEM_TOOLTIP;
|
| - break;
|
| - case ui::AX_ROLE_TREE:
|
| - ia_role = ROLE_SYSTEM_OUTLINE;
|
| - break;
|
| - case ui::AX_ROLE_TREE_GRID:
|
| - ia_role = ROLE_SYSTEM_OUTLINE;
|
| - break;
|
| - case ui::AX_ROLE_TREE_ITEM:
|
| - ia_role = ROLE_SYSTEM_OUTLINEITEM;
|
| - break;
|
| - case ui::AX_ROLE_LINE_BREAK:
|
| - ia_role = ROLE_SYSTEM_WHITESPACE;
|
| - break;
|
| - case ui::AX_ROLE_VIDEO:
|
| - ia_role = ROLE_SYSTEM_GROUPING;
|
| - break;
|
| - case ui::AX_ROLE_WINDOW:
|
| - ia_role = ROLE_SYSTEM_WINDOW;
|
| - break;
|
| -
|
| - // TODO(dmazzoni): figure out the proper MSAA role for all of these.
|
| - case ui::AX_ROLE_DIRECTORY:
|
| - case ui::AX_ROLE_IGNORED:
|
| - case ui::AX_ROLE_LOG:
|
| - case ui::AX_ROLE_NONE:
|
| - case ui::AX_ROLE_PRESENTATIONAL:
|
| - case ui::AX_ROLE_SLIDER_THUMB:
|
| default:
|
| - ia_role = ROLE_SYSTEM_CLIENT;
|
| break;
|
| }
|
|
|
| - // The role should always be set.
|
| - DCHECK(!role_name.empty() || ia_role);
|
| + win_attributes_->ia_role = MSAARole();
|
| + win_attributes_->ia_state = MSAAState();
|
| + win_attributes_->role_name = base::UTF8ToUTF16(StringOverrideForMSAARole());
|
|
|
| // If we didn't explicitly set the IAccessible2 role, make it the same
|
| // as the MSAA role.
|
| if (!ia2_role)
|
| - ia2_role = ia_role;
|
| + ia2_role = win_attributes_->ia_role;
|
|
|
| - win_attributes_->ia_role = ia_role;
|
| - win_attributes_->ia_state = MSAAState();
|
| - win_attributes_->role_name = role_name;
|
| win_attributes_->ia2_role = ia2_role;
|
| win_attributes_->ia2_state = ia2_state;
|
| }
|
|
|
| -bool BrowserAccessibilityComWin::IsInTreeGrid(
|
| - const BrowserAccessibility* item) {
|
| - BrowserAccessibility* container = item->PlatformGetParent();
|
| - if (container && container->GetRole() == ui::AX_ROLE_GROUP) {
|
| - // If parent was a rowgroup, we need to look at the grandparent
|
| - container = container->PlatformGetParent();
|
| - }
|
| -
|
| - if (!container) {
|
| - return false;
|
| - }
|
| -
|
| - return container->GetRole() == ui::AX_ROLE_TREE_GRID;
|
| -}
|
| -
|
| BrowserAccessibilityComWin* ToBrowserAccessibilityComWin(
|
| BrowserAccessibility* obj) {
|
| if (!obj || !obj->IsNative())
|
|
|