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

Unified Diff: content/browser/accessibility/browser_accessibility_android.cc

Issue 1800183004: Expose accessible descriptions on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fix_create_bam
Patch Set: Fix text fields Created 4 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_android.cc
diff --git a/content/browser/accessibility/browser_accessibility_android.cc b/content/browser/accessibility/browser_accessibility_android.cc
index 8257c74a9212ccbe3b82b455dc3b9bd0aaa149f5..1adafbea4d7848e34e9045e5873f44b82fefbc92 100644
--- a/content/browser/accessibility/browser_accessibility_android.cc
+++ b/content/browser/accessibility/browser_accessibility_android.cc
@@ -347,17 +347,8 @@ base::string16 BrowserAccessibilityAndroid::GetText() const {
// First, always return the |value| attribute if this is an
// input field.
base::string16 value = GetValue();
- if (!value.empty()) {
- if (HasState(ui::AX_STATE_EDITABLE))
- return value;
-
- switch (GetRole()) {
- case ui::AX_ROLE_COMBO_BOX:
- case ui::AX_ROLE_POP_UP_BUTTON:
- case ui::AX_ROLE_TEXT_FIELD:
- return value;
- }
- }
+ if (!value.empty() && ShouldExposeValueAsName())
David Tseng 2016/03/17 22:55:15 So, in the Android world, text is same as name? W
+ return value;
// For color wells, the color is stored in separate attributes.
// Perhaps we could return color names in the future?
David Tseng 2016/03/17 22:55:15 Unrelated; this begs to be made into a TODO with a
@@ -371,13 +362,6 @@ base::string16 BrowserAccessibilityAndroid::GetText() const {
}
base::string16 text = GetString16Attribute(ui::AX_ATTR_NAME);
- base::string16 description = GetString16Attribute(ui::AX_ATTR_DESCRIPTION);
- if (!description.empty()) {
- if (!text.empty())
- text += base::ASCIIToUTF16(" ");
- text += description;
- }
-
if (text.empty())
text = value;
@@ -415,6 +399,16 @@ base::string16 BrowserAccessibilityAndroid::GetText() const {
return text;
}
+base::string16 BrowserAccessibilityAndroid::GetDescription() const {
+ // If we're returning the value as the main text, then return the
+ // accessible name as the only accessible text.
David Tseng 2016/03/17 22:55:15 Can you reword this last part? Accessible text or
+ base::string16 value = GetValue();
+ if (!value.empty() && ShouldExposeValueAsName())
David Tseng 2016/03/17 22:55:15 Can you move this non-empty value check into Shoul
+ return GetString16Attribute(ui::AX_ATTR_NAME);
+
+ return GetString16Attribute(ui::AX_ATTR_DESCRIPTION);
+}
+
base::string16 BrowserAccessibilityAndroid::GetRoleDescription() const {
content::ContentClient* content_client = content::GetContentClient();
@@ -1342,6 +1336,20 @@ bool BrowserAccessibilityAndroid::IsIframe() const {
GetRole() == ui::AX_ROLE_IFRAME_PRESENTATIONAL);
}
+bool BrowserAccessibilityAndroid::ShouldExposeValueAsName() const {
+ if (HasState(ui::AX_STATE_EDITABLE))
+ return true;
+
+ switch (GetRole()) {
+ case ui::AX_ROLE_COMBO_BOX:
+ case ui::AX_ROLE_POP_UP_BUTTON:
+ case ui::AX_ROLE_TEXT_FIELD:
+ return true;
+ }
+
+ return false;
+}
+
void BrowserAccessibilityAndroid::OnDataChanged() {
BrowserAccessibility::OnDataChanged();

Powered by Google App Engine
This is Rietveld 408576698