summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorevy@chromium.org <evy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-26 19:53:24 +0000
committerevy@chromium.org <evy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-26 19:53:24 +0000
commita9da710104d28c06df0bba628785ec50523af1ce (patch)
tree08a06dfe5deac5f9064f90ac8189942b4babb355
parent40e187a46ed1ee3316b7585a5b587d50d4d389c6 (diff)
downloadchromium_src-a9da710104d28c06df0bba628785ec50523af1ce.zip
chromium_src-a9da710104d28c06df0bba628785ec50523af1ce.tar.gz
chromium_src-a9da710104d28c06df0bba628785ec50523af1ce.tar.bz2
Modified tab change to work with status tray change
The status tray change made it so that a view must be accessiblity focusable to be read. Tabs are now accessibility focusable so now they will be read with the status tray change. Review URL: https://codereview.chromium.org/414203002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285795 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/ui/views/accessibility/accessibility_event_router_views.cc8
-rw-r--r--chrome/browser/ui/views/accessibility/accessibility_event_router_views.h2
-rw-r--r--chrome/browser/ui/views/accessibility/accessibility_event_router_views_unittest.cc26
3 files changed, 33 insertions, 3 deletions
diff --git a/chrome/browser/ui/views/accessibility/accessibility_event_router_views.cc b/chrome/browser/ui/views/accessibility/accessibility_event_router_views.cc
index fd7cf3f..84f173e 100644
--- a/chrome/browser/ui/views/accessibility/accessibility_event_router_views.cc
+++ b/chrome/browser/ui/views/accessibility/accessibility_event_router_views.cc
@@ -604,8 +604,10 @@ std::string AccessibilityEventRouterViews::RecursiveGetStaticText(
// static
views::View* AccessibilityEventRouterViews::FindFirstAccessibleAncestor(
views::View* view) {
- while (view->parent() && !view->IsAccessibilityFocusable()) {
- view = view->parent();
- }
+ views::View* temp_view = view;
+ while (temp_view->parent() && !temp_view->IsAccessibilityFocusable())
+ temp_view = temp_view->parent();
+ if (temp_view->IsAccessibilityFocusable())
+ return temp_view;
return view;
}
diff --git a/chrome/browser/ui/views/accessibility/accessibility_event_router_views.h b/chrome/browser/ui/views/accessibility/accessibility_event_router_views.h
index 6227f34..8ab62d2 100644
--- a/chrome/browser/ui/views/accessibility/accessibility_event_router_views.h
+++ b/chrome/browser/ui/views/accessibility/accessibility_event_router_views.h
@@ -67,6 +67,8 @@ class AccessibilityEventRouterViews : public content::NotificationObserver {
TestFocusNotification);
FRIEND_TEST_ALL_PREFIXES(AccessibilityEventRouterViewsTest,
MenuIndexAndCountForInvisibleMenu);
+ FRIEND_TEST_ALL_PREFIXES(AccessibilityEventRouterViewsTest,
+ AccessibilityFocusableView);
AccessibilityEventRouterViews();
virtual ~AccessibilityEventRouterViews();
diff --git a/chrome/browser/ui/views/accessibility/accessibility_event_router_views_unittest.cc b/chrome/browser/ui/views/accessibility/accessibility_event_router_views_unittest.cc
index f1bc32e..aa05ab1 100644
--- a/chrome/browser/ui/views/accessibility/accessibility_event_router_views_unittest.cc
+++ b/chrome/browser/ui/views/accessibility/accessibility_event_router_views_unittest.cc
@@ -424,6 +424,32 @@ TEST_F(AccessibilityEventRouterViewsTest, AlertsFromWindowAndControl) {
window->CloseNow();
}
+TEST_F(AccessibilityEventRouterViewsTest, AccessibilityFocusableView) {
+ // Create a view with a child view.
+ views::View* parent = new views::View();
+ views::View* child = new views::View();
+ parent->AddChildView(child);
+
+ // Put the view in a window.
+ views::Widget* window = CreateWindowWithContents(parent);
+
+ // Since the child view has no accessiblity focusable ancestors, this
+ // should still be the child view.
+ views::View* accessible_view =
+ AccessibilityEventRouterViews::FindFirstAccessibleAncestor(child);
+ EXPECT_EQ(accessible_view, child);
+
+ // Now make the parent view accessiblity focusable. Calling
+ // FindFirstAccessibleAncestor() again on child shoudl return the parent
+ // view.
+ parent->SetAccessibilityFocusable(true);
+ accessible_view =
+ AccessibilityEventRouterViews::FindFirstAccessibleAncestor(child);
+ EXPECT_EQ(accessible_view, parent);
+
+ window->CloseNow();
+}
+
namespace {
class SimpleMenuDelegate : public ui::SimpleMenuModel::Delegate {