summaryrefslogtreecommitdiffstats
path: root/content/browser/accessibility
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-21 16:15:43 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-21 16:15:43 +0000
commit9b0957d97e17883f1893301e8449bd9d0e437189 (patch)
treec11ee67e843c0e1ad7374a741cd5045653c92507 /content/browser/accessibility
parent5d05acf679f7602f1acbbc8214238630b4107439 (diff)
downloadchromium_src-9b0957d97e17883f1893301e8449bd9d0e437189.zip
chromium_src-9b0957d97e17883f1893301e8449bd9d0e437189.tar.gz
chromium_src-9b0957d97e17883f1893301e8449bd9d0e437189.tar.bz2
Get Android accessible link text from url if otherwise unlabeled
BUG=360839 Review URL: https://codereview.chromium.org/237583007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265003 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/accessibility')
-rw-r--r--content/browser/accessibility/browser_accessibility_android.cc23
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_browsertest.cc4
2 files changed, 25 insertions, 2 deletions
diff --git a/content/browser/accessibility/browser_accessibility_android.cc b/content/browser/accessibility/browser_accessibility_android.cc
index 6e26ef9..725896f 100644
--- a/content/browser/accessibility/browser_accessibility_android.cc
+++ b/content/browser/accessibility/browser_accessibility_android.cc
@@ -268,8 +268,7 @@ base::string16 BrowserAccessibilityAndroid::GetText() const {
return base::string16();
}
- base::string16 description = GetString16Attribute(
- ui::AX_ATTR_DESCRIPTION);
+ base::string16 description = GetString16Attribute(ui::AX_ATTR_DESCRIPTION);
base::string16 text;
if (!name().empty())
text = base::UTF8ToUTF16(name());
@@ -295,6 +294,26 @@ base::string16 BrowserAccessibilityAndroid::GetText() const {
break;
}
+ if (text.empty() && IsLink()) {
+ 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".
+ int trailing_slashes = 0;
+ while (url.size() - trailing_slashes > 0 &&
+ url[url.size() - trailing_slashes - 1] == '/') {
+ trailing_slashes++;
+ }
+ if (trailing_slashes)
+ url = url.substr(0, url.size() - trailing_slashes);
+ size_t slash_index = url.rfind('/');
+ if (slash_index != std::string::npos)
+ url = url.substr(slash_index + 1);
+ size_t dot_index = url.rfind('.');
+ if (dot_index != std::string::npos)
+ url = url.substr(0, dot_index);
+ text = url;
+ }
+
return text;
}
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index 47cb5474..37f0cb0 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -254,6 +254,10 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAName) {
RunTest(FILE_PATH_LITERAL("a-name.html"));
}
+IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityANoText) {
+ RunTest(FILE_PATH_LITERAL("a-no-text.html"));
+}
+
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAOnclick) {
RunTest(FILE_PATH_LITERAL("a-onclick.html"));
}