| Index: content/browser/accessibility/browser_accessibility_cocoa.mm
 | 
| diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
 | 
| index c0985ddbcc3c6f6431a42cdcf79007cf8b56b62c..0906968a1c29b7136d8327a072fc693e8b39f7b6 100644
 | 
| --- a/content/browser/accessibility/browser_accessibility_cocoa.mm
 | 
| +++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
 | 
| @@ -1368,17 +1368,13 @@ NSString* const NSAccessibilityRequiredAttribute = @"AXRequired";
 | 
|            ui::AX_ATTR_CANVAS_HAS_FALLBACK)) {
 | 
|      return NSAccessibilityGroupRole;
 | 
|    }
 | 
| -  if (role == ui::AX_ROLE_BUTTON || role == ui::AX_ROLE_TOGGLE_BUTTON) {
 | 
| -    bool isAriaPressedDefined;
 | 
| -    bool isMixed;
 | 
| -    browserAccessibility_->GetAriaTristate("aria-pressed",
 | 
| -                                           &isAriaPressedDefined,
 | 
| -                                           &isMixed);
 | 
| -    if (isAriaPressedDefined)
 | 
| -      return NSAccessibilityCheckBoxRole;
 | 
| -    else
 | 
| -      return NSAccessibilityButtonRole;
 | 
| -  }
 | 
| +
 | 
| +  // TODO do we need these 2 lines? A basic role mapping should do it:
 | 
| +  // if (role == ui::AX_ROLE_BUTTON)
 | 
| +  //  return NSAccessibilityButtonRole;
 | 
| +  // if (role == ui::AX_ROLE_TOGGLE_BUTTON)
 | 
| +  //  return NSAccessibilityCheckBoxRole;
 | 
| +
 | 
|    if ((browserAccessibility_->IsSimpleTextControl() &&
 | 
|         browserAccessibility_->HasState(ui::AX_STATE_MULTILINE)) ||
 | 
|        browserAccessibility_->IsRichTextControl()) {
 | 
| @@ -1871,23 +1867,26 @@ NSString* const NSAccessibilityRequiredAttribute = @"AXRequired";
 | 
|      // AXValue does not make sense for pure buttons.
 | 
|      return @"";
 | 
|    } else if ([self internalRole] == ui::AX_ROLE_TOGGLE_BUTTON) {
 | 
| -    int value = 0;
 | 
| -    bool isAriaPressedDefined;
 | 
| -    bool isMixed;
 | 
| -    value = browserAccessibility_->GetAriaTristate(
 | 
| -        "aria-pressed", &isAriaPressedDefined, &isMixed) ? 1 : 0;
 | 
| -
 | 
| -    if (isMixed)
 | 
| -      value = 2;
 | 
| -
 | 
| +    const auto pressedState = static_cast<ui::AXButtonState>(
 | 
| +        browserAccessibility_->GetIntAttribute(ui::AX_ATTR_PRESSED_STATE));
 | 
| +    switch (pressedState) {
 | 
| +      case ui::AX_BUTTON_STATE_TRUE:
 | 
| +        value = 1;
 | 
| +        break;
 | 
| +      case ui::AX_BUTTON_STATE_MIXED:
 | 
| +        value = 2;
 | 
| +        break;
 | 
| +      default:
 | 
| +        value = 0;
 | 
| +        break;
 | 
| +    }
 | 
|      return [NSNumber numberWithInt:value];
 | 
| -
 | 
|    } else if ([role isEqualToString:NSAccessibilityCheckBoxRole] ||
 | 
|               [role isEqualToString:NSAccessibilityRadioButtonRole] ||
 | 
|               [self internalRole] == ui::AX_ROLE_MENU_ITEM_CHECK_BOX ||
 | 
|               [self internalRole] == ui::AX_ROLE_MENU_ITEM_RADIO) {
 | 
|      int value;
 | 
| -    const auto checkedState = static_cast<ui::AXCheckedState>(
 | 
| +    const auto checkedState = static_cast<ui::AXButtonState>(
 | 
|          browserAccessibility_->GetIntAttribute(ui::AX_ATTR_CHECKED_STATE));
 | 
|      switch (checkedState) {
 | 
|        case ui::AX_CHECKED_STATE_TRUE:
 | 
| 
 |