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

Unified Diff: chrome/browser/ui/views/accessibility/accessibility_event_router_views.cc

Issue 380943002: Added battery level and time to the status tray's accessible name. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: view storage Created 6 years, 5 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: chrome/browser/ui/views/accessibility/accessibility_event_router_views.cc
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 4afc4e3268e07a1232859e3bbe6b5c78b49b381e..a6b32593d42ccf2003e6b23cb2cb2f5493ac3ca6 100644
--- a/chrome/browser/ui/views/accessibility/accessibility_event_router_views.cc
+++ b/chrome/browser/ui/views/accessibility/accessibility_event_router_views.cc
@@ -26,7 +26,9 @@
using views::FocusManager;
AccessibilityEventRouterViews::AccessibilityEventRouterViews()
- : most_recent_profile_(NULL) {
+ : most_recent_profile_(NULL),
+ most_recent_view_id_(
+ views::ViewStorage::GetInstance()->CreateStorageID()) {
// Register for notification when profile is destroyed to ensure that all
// observers are detatched at that time.
registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED,
@@ -163,6 +165,24 @@ void AccessibilityEventRouterViews::DispatchAccessibilityEvent(
return;
}
+ // If this view is not focusable for accessibility, find the closest
+ // ancestor that is, so that the correct accessible name is being read.
+ views::View* temp_view = view;
+ while (temp_view->parent() && !view->IsAccessibilityFocusable()) {
+ temp_view = temp_view->parent();
+ if (temp_view->IsAccessibilityFocusable())
+ view = temp_view;
sky 2014/07/14 15:57:19 Don't you want to break here?
evy 2014/07/14 16:03:47 Well, I have to check it in the while condition in
dmazzoni 2014/07/14 17:46:00 It may not be an actual problem in this case since
sky 2014/07/14 21:11:14 Are you saying you want: while (temp_view && !tem
evy 2014/07/14 22:19:16 Yeah, sorry this function is way more complicated
+ }
+
+ // Since multiple items could share a highest focusable view, these items
+ // could all dispatch the same accessibility hover events, which isn't
+ // necessary.
+ if (type == ui::AX_EVENT_HOVER &&
+ views::ViewStorage::GetInstance()->RetrieveView(most_recent_view_id_) ==
dmazzoni 2014/07/14 17:46:00 Optional: add "using views::ViewStorage;" at the t
evy 2014/07/14 22:19:16 Done.
+ view)
+ return;
dmazzoni 2014/07/14 17:46:00 Nit: { } around return because conditional is mult
Daniel Erat 2014/07/14 18:04:14 i don't feel strongly about this one way or anothe
evy 2014/07/14 22:19:16 I've been taught that it's nice to have curly brac
+ views::ViewStorage::GetInstance()->StoreView(most_recent_view_id_, view);
+
ui::AXViewState state;
view->GetAccessibleState(&state);

Powered by Google App Engine
This is Rietveld 408576698