| 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_);
|
|
|
|
|