Commit a9da7101 authored by evy@chromium.org's avatar evy@chromium.org

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
parent 40e187a4
......@@ -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;
}
......@@ -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();
......
......@@ -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 {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment