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

Unified Diff: ui/views/focus/focus_search.cc

Issue 1894383002: MacViews: Implement Full Keyboard Access. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@SetFocusBehavior
Patch Set: Rebased Created 4 years, 7 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: ui/views/focus/focus_search.cc
diff --git a/ui/views/focus/focus_search.cc b/ui/views/focus/focus_search.cc
index a7ede3b0bf3d044666fbcdb9df23a3d45017f57b..e91a701fd10393ed1fb2af3437f47c050cf20061 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,12 @@ 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 keyboard accessibility mode defined in FocusManager is
+ // used. No special accessibility mode should be applicable for a
+ // FocusTraversable.
+ accessibility_mode_ = false;
+#endif
}
View* FocusSearch::FindNextFocusableView(View* starting_view,
@@ -99,7 +106,13 @@ bool FocusSearch::IsViewFocusableCandidate(View* v, int skip_group_id) {
}
bool FocusSearch::IsFocusable(View* v) {
- if (accessibility_mode_)
+ DCHECK(root_);
+ // Sanity Check. Currently the FocusManager keyboard accessibility mode is
+ // only used on Mac, for which |accessibility_mode_| is false.
+ DCHECK(!(accessibility_mode_ &&
+ root_->GetWidget()->GetFocusManager()->keyboard_accessible()));
+ if (accessibility_mode_ ||
+ root_->GetWidget()->GetFocusManager()->keyboard_accessible())
return v && v->IsAccessibilityFocusable();
return v && v->IsFocusable();
}

Powered by Google App Engine
This is Rietveld 408576698