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

Unified Diff: chrome/browser/accessibility_win_browsertest.cc

Issue 3380017: Support additional webkit accessibility notifications and states. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Adding missig file. Created 10 years, 3 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
« no previous file with comments | « no previous file | chrome/browser/browser_accessibility_manager_win.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/accessibility_win_browsertest.cc
===================================================================
--- chrome/browser/accessibility_win_browsertest.cc (revision 60480)
+++ chrome/browser/accessibility_win_browsertest.cc (working copy)
@@ -266,17 +266,15 @@
VARIANT var_role = {0};
HRESULT hr =
accessible->get_accRole(CreateI4Variant(CHILDID_SELF), &var_role);
- EXPECT_EQ(hr, S_OK);
- ASSERT_TRUE(role_ == var_role);
+ ASSERT_EQ(hr, S_OK);
+ EXPECT_TRUE(role_ == var_role);
}
void AccessibleChecker::CheckAccessibleValue(IAccessible* accessible) {
CComBSTR value;
HRESULT hr =
accessible->get_accValue(CreateI4Variant(CHILDID_SELF), &value);
- // TODO(ctguil): Use EXPECT_EQ when render widget isn't using prop service.
- // EXPECT_EQ(hr, S_OK);
- EXPECT_TRUE(SUCCEEDED(hr));
+ EXPECT_EQ(S_OK, hr);
// Test that the correct string was returned.
EXPECT_STREQ(value_.c_str(),
@@ -291,8 +289,8 @@
HRESULT hr =
accessible->get_accState(CreateI4Variant(CHILDID_SELF), &var_state);
EXPECT_EQ(hr, S_OK);
- EXPECT_EQ(VT_I4, V_VT(&var_state));
- ASSERT_TRUE(state_ == V_I4(&var_state));
+ ASSERT_EQ(VT_I4, V_VT(&var_state));
+ EXPECT_EQ(state_, V_I4(&var_state));
}
void AccessibleChecker::CheckAccessibleChildren(IAccessible* parent) {
@@ -376,6 +374,55 @@
}
IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
+ TestNotificationActiveDescendantChanged) {
+ GURL tree_url("data:text/html,<ul tabindex='-1' role='radiogroup'><li id='li'"
+ ">li</li></ul>");
+ browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED);
+ GetRendererAccessible();
+ ui_test_utils::WaitForNotification(
+ NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED);
+
+ // Check the browser's copy of the renderer accessibility tree.
+ AccessibleChecker list_marker_checker(L"", ROLE_SYSTEM_LISTITEM, L"\x2022");
+ AccessibleChecker static_text_checker(L"", ROLE_SYSTEM_TEXT, L"li");
+ AccessibleChecker list_item_checker(L"", ROLE_SYSTEM_LISTITEM, L"");
+ list_item_checker.SetExpectedState(
+ STATE_SYSTEM_READONLY);
+ AccessibleChecker radio_group_checker(L"", ROLE_SYSTEM_GROUPING, L"");
+ radio_group_checker.SetExpectedState(
+ STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY);
+ AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L"");
+ list_item_checker.AppendExpectedChild(&list_marker_checker);
+ list_item_checker.AppendExpectedChild(&static_text_checker);
+ radio_group_checker.AppendExpectedChild(&list_item_checker);
+ document_checker.AppendExpectedChild(&radio_group_checker);
+ document_checker.CheckAccessible(GetRendererAccessible());
+
+ // Set focus to the radio group.
+ ExecuteScript(L"document.body.children[0].focus()");
+ ui_test_utils::WaitForNotification(
+ NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED);
+
+ // Check that the accessibility tree of the browser has been updated.
+ radio_group_checker.SetExpectedState(
+ STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY | STATE_SYSTEM_FOCUSED);
+ document_checker.CheckAccessible(GetRendererAccessible());
+
+ // Set the active descendant of the radio group
+ ExecuteScript(
+ L"document.body.children[0].setAttribute('aria-activedescendant', 'li')");
+ ui_test_utils::WaitForNotification(
+ NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED);
+
+ // Check that the accessibility tree of the browser has been updated.
+ list_item_checker.SetExpectedState(
+ STATE_SYSTEM_READONLY | STATE_SYSTEM_FOCUSED);
+ radio_group_checker.SetExpectedState(
+ STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY);
+ document_checker.CheckAccessible(GetRendererAccessible());
+}
+
+IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
TestNotificationCheckedStateChanged) {
GURL tree_url("data:text/html,<body><input type='checkbox' /></body>");
browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED);
@@ -406,9 +453,9 @@
IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
TestNotificationChildrenChanged) {
- // The aria-help attribute causes the node to be in the accessibility tree.
+ // The role attribute causes the node to be in the accessibility tree.
GURL tree_url(
- "data:text/html,<body aria-help='body'></body>");
+ "data:text/html,<body role=group></body>");
browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED);
GetRendererAccessible();
ui_test_utils::WaitForNotification(
@@ -432,15 +479,64 @@
}
IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
- SelectedChildrenChanged) {
- GURL tree_url("data:text/html,<body><input type='text' value='old value'/>"
- "</body>");
+ TestNotificationFocusChanged) {
+ // The role attribute causes the node to be in the accessibility tree.
+ GURL tree_url(
+ "data:text/html,<div role=group tabindex='-1'></div>");
browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED);
GetRendererAccessible();
ui_test_utils::WaitForNotification(
NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED);
+
+ // Check the browser's copy of the renderer accessibility tree.
+ AccessibleChecker div_checker(L"", L"div", L"");
+ div_checker.SetExpectedState(
+ STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_OFFSCREEN | STATE_SYSTEM_READONLY);
+ AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L"");
+ document_checker.AppendExpectedChild(&div_checker);
+ document_checker.CheckAccessible(GetRendererAccessible());
+
+ // Focus the div in the document
+ ExecuteScript(L"document.body.children[0].focus()");
+ ui_test_utils::WaitForNotification(
+ NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED);
+
+ // Check that the accessibility tree of the browser has been updated.
+ div_checker.SetExpectedState(
+ STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_READONLY | STATE_SYSTEM_FOCUSED);
+ document_checker.CheckAccessible(GetRendererAccessible());
}
+
+// http://crbug.com/46209
IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
+ DISABLED_TestNotificationChildrenChanged2) {
+ // The role attribute causes the node to be in the accessibility tree.
+ GURL tree_url(
+ "data:text/html,<div role=group style='visibility: hidden'>text"
+ "</div>");
+ browser()->OpenURL(tree_url, GURL(), CURRENT_TAB, PageTransition::TYPED);
+ GetRendererAccessible();
+ ui_test_utils::WaitForNotification(
+ NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED);
+
+ // Check the accessible tree of the browser.
+ AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L"");
+ document_checker.CheckAccessible(GetRendererAccessible());
+
+ // Change the children of the document body.
+ ExecuteScript(L"document.body.children[0].style.visibility='visible'");
+ ui_test_utils::WaitForNotification(
+ NotificationType::RENDER_VIEW_HOST_ACCESSIBILITY_TREE_UPDATED);
+
+ // Check that the accessibility tree of the browser has been updated.
+ AccessibleChecker static_text_checker(L"", ROLE_SYSTEM_TEXT, L"text");
+ AccessibleChecker div_checker(L"", L"DIV", L"");
+ document_checker.AppendExpectedChild(&div_checker);
+ div_checker.AppendExpectedChild(&static_text_checker);
+ document_checker.CheckAccessible(GetRendererAccessible());
+}
+
+IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
TestNotificationValueChanged) {
GURL tree_url("data:text/html,<body><input type='text' value='old value'/>"
"</body>");
« no previous file with comments | « no previous file | chrome/browser/browser_accessibility_manager_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698