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 c8ee3ab8c123738028d9dd7922b86a0a3a8ded6b..954fa9684d27caab8fb2c8b7343de22088d34b9a 100644 |
--- a/content/browser/accessibility/browser_accessibility_win.cc |
+++ b/content/browser/accessibility/browser_accessibility_win.cc |
@@ -3366,11 +3366,9 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
if (HasState(ui::AX_STATE_VISITED)) |
ia_state_ |= STATE_SYSTEM_TRAVERSED; |
- // 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. |
- if (!HasState(ui::AX_STATE_READ_ONLY)) |
- ia2_state_ |= IA2_STATE_EDITABLE; |
+ if (HasState(ui::AX_STATE_READ_ONLY) |
+ || GetBoolAttribute(ui::AX_ATTR_ARIA_READONLY)) |
+ ia_state_ = STATE_SYSTEM_READONLY; |
base::string16 invalid; |
if (GetHtmlAttribute("aria-invalid", &invalid)) |
@@ -3505,11 +3503,6 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
ia_state_ |= STATE_SYSTEM_READONLY; |
ia_state_ |= STATE_SYSTEM_FOCUSABLE; |
break; |
- case ui::AX_ROLE_EDITABLE_TEXT: |
- ia_role_ = ROLE_SYSTEM_TEXT; |
- ia2_state_ |= IA2_STATE_SINGLE_LINE; |
- ia2_state_ |= IA2_STATE_EDITABLE; |
- break; |
case ui::AX_ROLE_FIGCAPTION: |
role_name_ = html_tag; |
ia2_role_ = IA2_ROLE_CAPTION; |
@@ -3527,7 +3520,6 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
break; |
case ui::AX_ROLE_GRID: |
ia_role_ = ROLE_SYSTEM_TABLE; |
- ia_state_ |= STATE_SYSTEM_READONLY; |
break; |
case ui::AX_ROLE_GROUP: { |
base::string16 aria_role = GetString16Attribute( |
@@ -3546,10 +3538,6 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
} |
break; |
} |
- case ui::AX_ROLE_GROW_AREA: |
- ia_role_ = ROLE_SYSTEM_GRIP; |
- ia_state_ |= STATE_SYSTEM_READONLY; |
- break; |
case ui::AX_ROLE_HEADING: |
role_name_ = html_tag; |
ia2_role_ = IA2_ROLE_HEADING; |
@@ -3727,11 +3715,6 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
case ui::AX_ROLE_SPIN_BUTTON_PART: |
ia_role_ = ROLE_SYSTEM_PUSHBUTTON; |
break; |
- case ui::AX_ROLE_SPLIT_GROUP: |
- ia_role_ = ROLE_SYSTEM_CLIENT; |
- ia2_role_ = IA2_ROLE_SPLIT_PANE; |
- ia_state_ |= STATE_SYSTEM_READONLY; |
- break; |
case ui::AX_ROLE_ANNOTATION: |
case ui::AX_ROLE_LIST_MARKER: |
case ui::AX_ROLE_STATIC_TEXT: |
@@ -3778,13 +3761,11 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
case ui::AX_ROLE_TEXT_AREA: |
ia_role_ = ROLE_SYSTEM_TEXT; |
ia2_state_ |= IA2_STATE_MULTI_LINE; |
- ia2_state_ |= IA2_STATE_EDITABLE; |
ia2_state_ |= IA2_STATE_SELECTABLE_TEXT; |
break; |
case ui::AX_ROLE_TEXT_FIELD: |
ia_role_ = ROLE_SYSTEM_TEXT; |
ia2_state_ |= IA2_STATE_SINGLE_LINE; |
- ia2_state_ |= IA2_STATE_EDITABLE; |
ia2_state_ |= IA2_STATE_SELECTABLE_TEXT; |
break; |
case ui::AX_ROLE_TIME: |
@@ -3835,21 +3816,6 @@ void BrowserAccessibilityWin::InitRoleAndState() { |
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). |
- // We clear the READONLY state on focusable controls and on a document. |
- // Everything else, the majority of objects, do not have this state set. |
- if (HasState(ui::AX_STATE_FOCUSABLE) && |
- ia_role_ != ROLE_SYSTEM_DOCUMENT) { |
- ia_state_ &= ~(STATE_SYSTEM_READONLY); |
- } |
- if (!HasState(ui::AX_STATE_READ_ONLY)) |
- ia_state_ &= ~(STATE_SYSTEM_READONLY); |
- if (GetBoolAttribute(ui::AX_ATTR_ARIA_READONLY)) |
- ia_state_ |= STATE_SYSTEM_READONLY; |
- |
// The role should always be set. |
DCHECK(!role_name_.empty() || ia_role_); |