Index: ui/views/accessibility/ax_aura_obj_cache.cc |
diff --git a/ui/views/accessibility/ax_aura_obj_cache.cc b/ui/views/accessibility/ax_aura_obj_cache.cc |
index 0ce0047c9987815064f5f795ccbb317198d53528..ad9df5c9fdd4d75a1b1e802c85352dd1de7f41f0 100644 |
--- a/ui/views/accessibility/ax_aura_obj_cache.cc |
+++ b/ui/views/accessibility/ax_aura_obj_cache.cc |
@@ -6,6 +6,8 @@ |
#include "base/memory/ptr_util.h" |
#include "base/memory/singleton.h" |
+#include "base/strings/string_util.h" |
+#include "ui/aura/client/aura_constants.h" |
#include "ui/aura/client/focus_client.h" |
#include "ui/aura/window.h" |
#include "ui/views/accessibility/ax_aura_obj_wrapper.h" |
@@ -160,8 +162,14 @@ View* AXAuraObjCache::GetFocusedView() { |
View* focused_view = focus_manager->GetFocusedView(); |
if (focused_view) |
return focused_view; |
- else |
+ |
+ if (focused_window->GetProperty( |
+ aura::client::kAccessibilityFocusFallsbackToWidgetKey)) { |
+ // If no view is focused, falls back to root view. |
return focused_widget->GetRootView(); |
+ } |
+ |
+ return nullptr; |
} |
void AXAuraObjCache::OnWindowFocused(aura::Window* gained_focus, |