Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(805)

Unified Diff: content/browser/accessibility/browser_accessibility_cocoa.mm

Issue 2707263011: Test aria-pressed=mixed on windows (Closed)
Patch Set: git cl try Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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:

Powered by Google App Engine
This is Rietveld 408576698