Index: ui/accessibility/platform/ax_platform_node_win.cc |
diff --git a/ui/accessibility/platform/ax_platform_node_win.cc b/ui/accessibility/platform/ax_platform_node_win.cc |
index 7d385a64000d2dd73606a11ab87adad52ae3073d..1a54321c6be5f0da90ad87a42d0cd914aba2d524 100644 |
--- a/ui/accessibility/platform/ax_platform_node_win.cc |
+++ b/ui/accessibility/platform/ax_platform_node_win.cc |
@@ -1438,7 +1438,8 @@ |
msaa_state |= STATE_SYSTEM_FOCUSABLE; |
if (state & (1 << ui::AX_STATE_HASPOPUP)) |
msaa_state |= STATE_SYSTEM_HASPOPUP; |
- |
+ if (state & (1 << ui::AX_STATE_HOVERED)) |
+ msaa_state |= STATE_SYSTEM_HOTTRACKED; |
if (state & (1 << ui::AX_STATE_INVISIBLE) || |
GetData().role == ui::AX_ROLE_IGNORED) { |
msaa_state |= STATE_SYSTEM_INVISIBLE; |
@@ -1457,23 +1458,6 @@ |
msaa_state |= STATE_SYSTEM_SELECTED; |
if (state & (1 << ui::AX_STATE_DISABLED)) |
msaa_state |= STATE_SYSTEM_UNAVAILABLE; |
- if (state & (1 << ui::AX_STATE_BUSY)) |
- msaa_state |= STATE_SYSTEM_BUSY; |
- if (state & (1 << ui::AX_STATE_VISITED)) |
- msaa_state |= STATE_SYSTEM_TRAVERSED; |
- |
- if (state & (1 << ui::AX_STATE_MULTISELECTABLE)) { |
- msaa_state |= STATE_SYSTEM_EXTSELECTABLE; |
- msaa_state |= STATE_SYSTEM_MULTISELECTABLE; |
- } |
- |
- // Expose whether or not the mouse is over an element, but suppress |
- // this for tests because it can make the test results flaky depending |
- // on the position of the mouse. |
- if (delegate_->ShouldIgnoreHoveredStateForTesting()) { |
- if (state & (1 << ui::AX_STATE_HOVERED)) |
- msaa_state |= STATE_SYSTEM_HOTTRACKED; |
- } |
// Checked state |
const auto checked_state = static_cast<ui::AXCheckedState>( |
@@ -1505,89 +1489,6 @@ |
!(state & (1 << ui::AX_STATE_INVISIBLE))) { |
msaa_state |= STATE_SYSTEM_FOCUSED; |
} |
- |
- switch (GetData().role) { |
- case ui::AX_ROLE_ARTICLE: |
- case ui::AX_ROLE_BUSY_INDICATOR: |
- case ui::AX_ROLE_DEFINITION: |
- case ui::AX_ROLE_DESCRIPTION_LIST: |
- case ui::AX_ROLE_DESCRIPTION_LIST_TERM: |
- case ui::AX_ROLE_IFRAME: |
- case ui::AX_ROLE_IMAGE: |
- case ui::AX_ROLE_IMAGE_MAP: |
- case ui::AX_ROLE_LIST: |
- case ui::AX_ROLE_LIST_ITEM: |
- case ui::AX_ROLE_PROGRESS_INDICATOR: |
- case ui::AX_ROLE_RULER: |
- case ui::AX_ROLE_SCROLL_AREA: |
- case ui::AX_ROLE_TABLE_HEADER_CONTAINER: |
- case ui::AX_ROLE_TERM: |
- case ui::AX_ROLE_TIMER: |
- case ui::AX_ROLE_TOOLBAR: |
- case ui::AX_ROLE_TOOLTIP: |
- msaa_state |= STATE_SYSTEM_READONLY; |
- break; |
- |
- case ui::AX_ROLE_DOCUMENT: |
- case ui::AX_ROLE_ROOT_WEB_AREA: |
- case ui::AX_ROLE_WEB_AREA: |
- msaa_state |= STATE_SYSTEM_READONLY; |
- msaa_state |= STATE_SYSTEM_FOCUSABLE; |
- break; |
- |
- case ui::AX_ROLE_GRID: |
- // TODO(aleventhal) this changed between ARIA 1.0 and 1.1, |
- // need to determine whether grids/treegrids should really be readonly |
- // or editable by default |
- // msaa_state |= STATE_SYSTEM_READONLY; |
- break; |
- |
- case ui::AX_ROLE_IMAGE_MAP_LINK: |
- msaa_state |= STATE_SYSTEM_LINKED; |
- msaa_state |= STATE_SYSTEM_READONLY; |
- break; |
- |
- case ui::AX_ROLE_LINK: |
- msaa_state |= STATE_SYSTEM_LINKED; |
- break; |
- |
- case ui::AX_ROLE_LIST_BOX_OPTION: |
- if (msaa_state & STATE_SYSTEM_SELECTABLE) { |
- msaa_state |= STATE_SYSTEM_FOCUSABLE; |
- } |
- break; |
- |
- case ui::AX_ROLE_MENU_LIST_OPTION: |
- if (msaa_state & STATE_SYSTEM_SELECTABLE) { |
- msaa_state |= STATE_SYSTEM_FOCUSABLE; |
- } |
- break; |
- |
- case ui::AX_ROLE_TEXT_FIELD: |
- case ui::AX_ROLE_SEARCH_BOX: |
- if (state & (1 << ui::AX_STATE_READ_ONLY)) |
- msaa_state |= STATE_SYSTEM_READONLY; |
- break; |
- default: |
- break; |
- } |
- |
- // Compute the final value of READONLY for MSAA. |
- // |
- // We always set the READONLY state for elements that have the |
- // aria-readonly attribute and for a few roles (in the switch above), |
- // including read-only text fields. |
- // The majority of focusable controls should not have the read-only state set. |
- if (state & (1 << ui::AX_STATE_FOCUSABLE) && |
- GetData().role != ROLE_SYSTEM_DOCUMENT && |
- GetData().role != ROLE_SYSTEM_TEXT) { |
- msaa_state &= ~(STATE_SYSTEM_READONLY); |
- } |
- if (!(state & (1 << ui::AX_STATE_READ_ONLY))) |
- msaa_state &= ~(STATE_SYSTEM_READONLY); |
- |
- if (GetData().GetBoolAttribute(ui::AX_ATTR_ARIA_READONLY)) |
- msaa_state |= STATE_SYSTEM_READONLY; |
return msaa_state; |
} |