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

Side by Side Diff: content/browser/accessibility/browser_accessibility_android.cc

Issue 2694903010: AX checked state changes (Closed)
Patch Set: Fix android test Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/accessibility/browser_accessibility_android.h" 5 #include "content/browser/accessibility/browser_accessibility_android.h"
6 6
7 #include "base/i18n/break_iterator.h" 7 #include "base/i18n/break_iterator.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 bool is_aria_pressed_defined; 137 bool is_aria_pressed_defined;
138 bool is_mixed; 138 bool is_mixed;
139 GetAriaTristate("aria-pressed", &is_aria_pressed_defined, &is_mixed); 139 GetAriaTristate("aria-pressed", &is_aria_pressed_defined, &is_mixed);
140 if (GetRole() == ui::AX_ROLE_CHECK_BOX || 140 if (GetRole() == ui::AX_ROLE_CHECK_BOX ||
141 GetRole() == ui::AX_ROLE_RADIO_BUTTON || 141 GetRole() == ui::AX_ROLE_RADIO_BUTTON ||
142 GetRole() == ui::AX_ROLE_MENU_ITEM_CHECK_BOX || 142 GetRole() == ui::AX_ROLE_MENU_ITEM_CHECK_BOX ||
143 GetRole() == ui::AX_ROLE_MENU_ITEM_RADIO || 143 GetRole() == ui::AX_ROLE_MENU_ITEM_RADIO ||
144 is_aria_pressed_defined) { 144 is_aria_pressed_defined) {
145 checkable = true; 145 checkable = true;
146 } 146 }
147 if (HasState(ui::AX_STATE_CHECKED)) 147 // TODO(aleventhal) does this ever happen when checkable is not true yet?
aleventhal 2017/03/09 17:10:50 Dominic, we had this extra logic, but I'm not sure
148 if (HasIntAttribute(ui::AX_ATTR_CHECKED_STATE))
148 checkable = true; 149 checkable = true;
149 return checkable; 150 return checkable;
150 } 151 }
151 152
152 bool BrowserAccessibilityAndroid::IsChecked() const { 153 bool BrowserAccessibilityAndroid::IsChecked() const {
153 return (HasState(ui::AX_STATE_CHECKED) || HasState(ui::AX_STATE_PRESSED)); 154 const int checkedState = GetIntAttribute(ui::AX_ATTR_CHECKED_STATE);
155 return (checkedState == ui::AX_CHECKED_STATE_TRUE ||
156 HasState(ui::AX_STATE_PRESSED));
154 } 157 }
155 158
156 bool BrowserAccessibilityAndroid::IsClickable() const { 159 bool BrowserAccessibilityAndroid::IsClickable() const {
157 // If it has a default action, it's definitely clickable. 160 // If it has a default action, it's definitely clickable.
158 if (HasIntAttribute(ui::AX_ATTR_ACTION)) 161 if (HasIntAttribute(ui::AX_ATTR_ACTION))
159 return true; 162 return true;
160 163
161 // Otherwise return true if it's focusable, but skip web areas and iframes. 164 // Otherwise return true if it's focusable, but skip web areas and iframes.
162 if (IsIframe() || (GetRole() == ui::AX_ROLE_ROOT_WEB_AREA)) 165 if (IsIframe() || (GetRole() == ui::AX_ROLE_ROOT_WEB_AREA))
163 return false; 166 return false;
(...skipping 1334 matching lines...) Expand 10 before | Expand all | Expand 10 after
1498 int BrowserAccessibilityAndroid::CountChildrenWithRole(ui::AXRole role) const { 1501 int BrowserAccessibilityAndroid::CountChildrenWithRole(ui::AXRole role) const {
1499 int count = 0; 1502 int count = 0;
1500 for (uint32_t i = 0; i < PlatformChildCount(); i++) { 1503 for (uint32_t i = 0; i < PlatformChildCount(); i++) {
1501 if (PlatformGetChild(i)->GetRole() == role) 1504 if (PlatformGetChild(i)->GetRole() == role)
1502 count++; 1505 count++;
1503 } 1506 }
1504 return count; 1507 return count;
1505 } 1508 }
1506 1509
1507 } // namespace content 1510 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698