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 5ccbc393f5fde58570264115342cbb620ce3c132..2cf81199f680be0ff79a8f4fd04ac20b9df806e2 100644 |
--- a/content/browser/accessibility/browser_accessibility_win.cc |
+++ b/content/browser/accessibility/browser_accessibility_win.cc |
@@ -5214,8 +5214,19 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
if (HasState(ui::AX_STATE_BUSY)) |
ia_state |= STATE_SYSTEM_BUSY; |
- if (HasState(ui::AX_STATE_CHECKED)) |
- ia_state |= STATE_SYSTEM_CHECKED; |
+ |
+ const int checked = GetIntAttribute(ui::AX_ATTR_CHECKED_STATE); |
+ switch (checked) { |
+ case ui::AX_CHECKED_STATE_TRUE: |
+ ia_state |= STATE_SYSTEM_CHECKED; |
+ break; |
+ case ui::AX_CHECKED_STATE_MIXED: |
+ ia_state |= STATE_SYSTEM_MIXED; |
+ break; |
+ default: |
+ break; |
+ } |
+ |
if (HasState(ui::AX_STATE_COLLAPSED)) |
ia_state |= STATE_SYSTEM_COLLAPSED; |
if (HasState(ui::AX_STATE_EXPANDED)) |
@@ -5272,9 +5283,6 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
if (HasState(ui::AX_STATE_EDITABLE)) |
ia2_state |= IA2_STATE_EDITABLE; |
- if (GetBoolAttribute(ui::AX_ATTR_STATE_MIXED)) |
- ia_state |= STATE_SYSTEM_MIXED; |
- |
if (GetBoolAttribute(ui::AX_ATTR_CAN_SET_VALUE)) |
ia2_state |= IA2_STATE_EDITABLE; |