Index: content/browser/accessibility/browser_accessibility_win.cc |
diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc |
index 71534a4a173ca3a989fd07b70c49dc3d786fff8f..e27d11d1fa459d5b30fad4560073f74f2cde579d 100644 |
--- a/content/browser/accessibility/browser_accessibility_win.cc |
+++ b/content/browser/accessibility/browser_accessibility_win.cc |
@@ -3531,8 +3531,6 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
ia_state |= STATE_SYSTEM_FOCUSABLE; |
if (HasState(ui::AX_STATE_HASPOPUP)) |
ia_state |= STATE_SYSTEM_HASPOPUP; |
- if (HasState(ui::AX_STATE_HOVERED)) |
- ia_state |= STATE_SYSTEM_HOTTRACKED; |
if (HasState(ui::AX_STATE_INDETERMINATE)) |
ia_state |= STATE_SYSTEM_INDETERMINATE; |
if (HasIntAttribute(ui::AX_ATTR_INVALID_STATE) && |
@@ -3570,6 +3568,16 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
if (HasState(ui::AX_STATE_VISITED)) |
ia_state |= STATE_SYSTEM_TRAVERSED; |
+ // 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. |
+ BrowserAccessibilityStateImpl* accessibility_state = |
+ BrowserAccessibilityStateImpl::GetInstance(); |
+ if (!accessibility_state->disable_hot_tracking_for_testing()) { |
+ if (HasState(ui::AX_STATE_HOVERED)) |
+ ia_state |= STATE_SYSTEM_HOTTRACKED; |
+ } |
+ |
// WebKit marks everything as readonly unless it's editable text, so if it's |
// not readonly, mark it as editable now. The final computation of the |
// READONLY state for MSAA is below, after the switch. |