diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-21 16:15:43 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-21 16:15:43 +0000 |
commit | 9b0957d97e17883f1893301e8449bd9d0e437189 (patch) | |
tree | c11ee67e843c0e1ad7374a741cd5045653c92507 /content/browser/accessibility | |
parent | 5d05acf679f7602f1acbbc8214238630b4107439 (diff) | |
download | chromium_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.cc | 23 | ||||
-rw-r--r-- | content/browser/accessibility/dump_accessibility_tree_browsertest.cc | 4 |
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")); } |