| 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:
|
|
|