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 c16eb8d7a1345da9450cd45af1bd77c72705231b..96411cb30f37d18a6f043eb10d3726dd954ab7c7 100644 |
--- a/content/browser/accessibility/browser_accessibility_android.cc |
+++ b/content/browser/accessibility/browser_accessibility_android.cc |
@@ -315,9 +315,8 @@ base::string16 BrowserAccessibilityAndroid::GetText() const { |
return base::string16(); |
} |
- // See comment in browser_accessibility_win.cc for details. |
- // The difference here is that we can only expose one accessible |
- // name on Android, not 2 or 3 like on Windows or Mac. |
+ // We can only expose one accessible name on Android, |
+ // not 2 or 3 like on Windows or Mac. |
// First, always return the |value| attribute if this is an |
// input field. |
@@ -345,57 +344,17 @@ base::string16 BrowserAccessibilityAndroid::GetText() const { |
base::StringPrintf("#%02X%02X%02X", red, green, blue)); |
} |
- // Always prefer visible text if this is a link. Sites sometimes add |
- // a "title" attribute to a link with more information, but we can't |
- // lose the link text. |
- base::string16 name = GetString16Attribute(ui::AX_ATTR_NAME); |
- if (!name.empty() && GetRole() == ui::AX_ROLE_LINK) |
- return name; |
- |
- // If there's no text value, the basic rule is: prefer description |
- // (aria-labelledby or aria-label), then help (title), then name |
- // (inner text), then value (control value). However, if |
- // title_elem_id is set, that means there's a label element |
- // supplying the name and then name takes precedence over help. |
- // TODO(dmazzoni): clean this up by providing more granular labels in |
- // Blink, making the platform-specific mapping to accessible text simpler. |
+ base::string16 text = GetString16Attribute(ui::AX_ATTR_NAME); |
base::string16 description = GetString16Attribute(ui::AX_ATTR_DESCRIPTION); |
- base::string16 help = GetString16Attribute(ui::AX_ATTR_HELP); |
- |
- base::string16 placeholder; |
- switch (GetRole()) { |
- case ui::AX_ROLE_DATE: |
- case ui::AX_ROLE_INPUT_TIME: |
- case ui::AX_ROLE_TEXT_FIELD: |
- GetHtmlAttribute("placeholder", &placeholder); |
- } |
- |
- int title_elem_id = GetIntAttribute( |
- ui::AX_ATTR_TITLE_UI_ELEMENT); |
- base::string16 text; |
- if (!description.empty()) |
- text = description; |
- else if (!name.empty()) { |
- text = name; |
- if (!help.empty()) { |
- // TODO(vkuzkokov): This is not the best way to pass 2 texts but this is |
- // how Blink seems to be doing it. |
+ if (!description.empty()) { |
+ if (!text.empty()) |
text += base::ASCIIToUTF16(" "); |
- text += help; |
- } |
- } else if (!help.empty()) |
- text = help; |
- else if (!placeholder.empty()) |
- text = placeholder; |
- else if (!value.empty()) |
- text = value; |
- else if (title_elem_id) { |
- BrowserAccessibility* title_elem = |
- manager()->GetFromID(title_elem_id); |
- if (title_elem) |
- text = static_cast<BrowserAccessibilityAndroid*>(title_elem)->GetText(); |
+ text += description; |
} |
+ if (text.empty()) |
+ text = value; |
+ |
// This is called from PlatformIsLeaf, so don't call PlatformChildCount |
// from within this! |
if (text.empty() && |
@@ -410,7 +369,7 @@ base::string16 BrowserAccessibilityAndroid::GetText() const { |
if (text.empty() && (IsLink() || GetRole() == ui::AX_ROLE_IMAGE)) { |
base::string16 url = GetString16Attribute(ui::AX_ATTR_URL); |
// Given a url like http://foo.com/bar/baz.png, just return the |
- // base name, e.g., "baz". |
+ // base text, e.g., "baz". |
int trailing_slashes = 0; |
while (url.size() - trailing_slashes > 0 && |
url[url.size() - trailing_slashes - 1] == '/') { |