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

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

Issue 9939011: Add an accessibility mode for editable text fields only. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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/renderer_accessibility_browsertest.cc
diff --git a/content/browser/accessibility/renderer_accessibility_browsertest.cc b/content/browser/accessibility/renderer_accessibility_browsertest.cc
index 76d77fdf9838b470f3e1f73a7730c3cdaddc3cc5..e30ee203b8eeec52f73c8ed868e6cd44b67b78de 100644
--- a/content/browser/accessibility/renderer_accessibility_browsertest.cc
+++ b/content/browser/accessibility/renderer_accessibility_browsertest.cc
@@ -35,7 +35,8 @@ class RendererAccessibilityBrowserTest : public InProcessBrowserTest {
// Tell the renderer to send an accessibility tree, then wait for the
// notification that it's been received.
- const WebAccessibility& GetWebAccessibilityTree() {
+ const WebAccessibility& GetWebAccessibilityTree(
+ AccessibilityMode accessibility_mode = AccessibilityModeComplete) {
ui_test_utils::WindowedNotificationObserver tree_updated_observer(
content::NOTIFICATION_RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED,
content::NotificationService::AllSources());
@@ -45,7 +46,7 @@ class RendererAccessibilityBrowserTest : public InProcessBrowserTest {
RenderWidgetHostImpl::From(host_view->GetRenderWidgetHost());
RenderViewHostImpl* view_host = static_cast<RenderViewHostImpl*>(host);
view_host->set_save_accessibility_tree_for_testing(true);
- view_host->EnableRendererAccessibility();
+ view_host->SetAccessibilityMode(accessibility_mode);
tree_updated_observer.Wait();
return view_host->accessibility_tree_for_testing();
}
@@ -463,4 +464,50 @@ IN_PROC_BROWSER_TEST_F(RendererAccessibilityBrowserTest,
true, GetBoolAttr(textbox, WebAccessibility::ATTR_CAN_SET_VALUE));
}
+IN_PROC_BROWSER_TEST_F(RendererAccessibilityBrowserTest,
+ CrossPlatformEditableTextOnlyMode) {
+ const char url_str[] =
+ "data:text/html,"
+ "<!doctype html>"
+ "<h1>Heading</h1>"
+ "<input type=text value=text0>"
+ "<textarea>text1</textarea>"
+ "<div role=textbox>text2</div>"
+ "<ul>"
+ " <li><input type=text value=text3>"
+ " <li><textarea>text4</textarea>"
+ " <li><div role=textbox>text5</div>"
David Tseng 2012/04/05 01:01:25 Maybe mix in a non-text input leaf node here?
dmazzoni 2012/04/06 21:47:22 Done.
+ "</ul>";
+
+ GURL url(url_str);
+ browser()->OpenURL(OpenURLParams(
+ url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, false));
+ const WebAccessibility& tree = GetWebAccessibilityTree(
+ AccessibilityModeEditableTextOnly);
+
+ const WebAccessibility& text0 = tree.children[0];
+ EXPECT_EQ(WebAccessibility::ROLE_TEXT_FIELD, text0.role);
+ EXPECT_STREQ("text0", UTF16ToUTF8(text0.value).c_str());
+
+ const WebAccessibility& text1 = tree.children[1];
+ EXPECT_EQ(WebAccessibility::ROLE_TEXTAREA, text1.role);
+ EXPECT_STREQ("text1", UTF16ToUTF8(text1.value).c_str());
+
+ const WebAccessibility& text2 = tree.children[2];
+ EXPECT_EQ(WebAccessibility::ROLE_TEXT_FIELD, text2.role);
+ EXPECT_STREQ("text2", UTF16ToUTF8(text2.value).c_str());
+
+ const WebAccessibility& text3 = tree.children[3];
+ EXPECT_EQ(WebAccessibility::ROLE_TEXT_FIELD, text3.role);
+ EXPECT_STREQ("text3", UTF16ToUTF8(text3.value).c_str());
+
+ const WebAccessibility& text4 = tree.children[4];
+ EXPECT_EQ(WebAccessibility::ROLE_TEXTAREA, text4.role);
+ EXPECT_STREQ("text4", UTF16ToUTF8(text4.value).c_str());
+
+ const WebAccessibility& text5 = tree.children[5];
+ EXPECT_EQ(WebAccessibility::ROLE_TEXT_FIELD, text5.role);
+ EXPECT_STREQ("text5", UTF16ToUTF8(text5.value).c_str());
+}
+
} // namespace

Powered by Google App Engine
This is Rietveld 408576698