Index: ui/views/focus/focus_search.cc |
diff --git a/ui/views/focus/focus_search.cc b/ui/views/focus/focus_search.cc |
index a7ede3b0bf3d044666fbcdb9df23a3d45017f57b..493ff45ed14d469f5094818adf897ab65f0dc701 100644 |
--- a/ui/views/focus/focus_search.cc |
+++ b/ui/views/focus/focus_search.cc |
@@ -6,6 +6,7 @@ |
#include "ui/views/focus/focus_manager.h" |
#include "ui/views/focus/focus_search.h" |
#include "ui/views/view.h" |
+#include "ui/views/widget/widget.h" |
namespace views { |
@@ -13,6 +14,11 @@ FocusSearch::FocusSearch(View* root, bool cycle, bool accessibility_mode) |
: root_(root), |
cycle_(cycle), |
accessibility_mode_(accessibility_mode) { |
+#if defined(OS_MACOSX) |
+ // On Mac, only the platform level accessibility mode is used. No special |
+ // accessibility mode should be applicable for a FocusTraversable. |
+ accessibility_mode_ = false; |
+#endif |
} |
View* FocusSearch::FindNextFocusableView(View* starting_view, |
@@ -99,7 +105,9 @@ bool FocusSearch::IsViewFocusableCandidate(View* v, int skip_group_id) { |
} |
bool FocusSearch::IsFocusable(View* v) { |
- if (accessibility_mode_) |
+ DCHECK(root_); |
+ if (accessibility_mode_ || |
+ root_->GetWidget()->GetFocusManager()->keyboard_accessible()) |
return v && v->IsAccessibilityFocusable(); |
return v && v->IsFocusable(); |
} |