Commit e8a15c5a authored by Ahmed Mehfooz's avatar Ahmed Mehfooz Committed by Commit Bot

Improve chrome vox navigation with collapse / expand states

Expand message center / quick settings bubble when it gains
accessibilityfocus.
Allow quick settings to collapse / expand with chrome vox enabled.

Bug: 1047538
Change-Id: I50626e7116ee51cd35f99199715501c6cb504d3e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2032508Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Ahmed Mehfooz <amehfooz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737508}
parent 3d7e63fa
......@@ -199,6 +199,10 @@ bool UnifiedMessageCenterBubble::IsMessageCenterVisible() {
return !!bubble_widget_ && message_center_view_->GetVisible();
}
bool UnifiedMessageCenterBubble::IsMessageCenterCollapsed() {
return message_center_view_->collapsed();
}
TrayBackgroundView* UnifiedMessageCenterBubble::GetTray() const {
return tray_;
}
......
......@@ -60,6 +60,9 @@ class ASH_EXPORT UnifiedMessageCenterBubble : public TrayBubbleBase,
// Returns true if notifications are shown.
bool IsMessageCenterVisible();
// Returns true if only StackedNotificationBar is visible.
bool IsMessageCenterCollapsed();
// TrayBubbleBase:
TrayBackgroundView* GetTray() const override;
TrayBubbleView* GetBubbleView() const override;
......
......@@ -206,14 +206,6 @@ TopShortcutsView::TopShortcutsView(UnifiedSystemTrayController* controller)
collapse_button_ = new CollapseButton(this);
AddChildView(collapse_button_);
OnAccessibilityStatusChanged();
shell->accessibility_controller()->AddObserver(this);
}
TopShortcutsView::~TopShortcutsView() {
Shell::Get()->accessibility_controller()->RemoveObserver(this);
}
void TopShortcutsView::SetExpandedAmount(double expanded_amount) {
......@@ -236,11 +228,6 @@ void TopShortcutsView::ButtonPressed(views::Button* sender,
controller_->ToggleExpanded();
}
void TopShortcutsView::OnAccessibilityStatusChanged() {
collapse_button_->SetEnabled(
!Shell::Get()->accessibility_controller()->spoken_feedback_enabled());
}
const char* TopShortcutsView::GetClassName() const {
return "TopShortcutsView";
}
......
......@@ -44,11 +44,9 @@ class TopShortcutButtonContainer : public views::View {
// Top shortcuts view shown on the top of UnifiedSystemTrayView.
class ASH_EXPORT TopShortcutsView : public views::View,
public views::ButtonListener,
public AccessibilityObserver {
public views::ButtonListener {
public:
explicit TopShortcutsView(UnifiedSystemTrayController* controller);
~TopShortcutsView() override;
// Change the expanded state. CollapseButton icon will rotate.
void SetExpandedAmount(double expanded_amount);
......@@ -56,9 +54,6 @@ class ASH_EXPORT TopShortcutsView : public views::View,
// views::ButtonListener:
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
// AccessibilityObserver:
void OnAccessibilityStatusChanged() override;
// views::View
const char* GetClassName() const override;
......
......@@ -259,11 +259,14 @@ bool UnifiedSystemTray::FocusMessageCenter(bool reverse) {
Shell::Get()->focus_cycler()->FocusWidget(message_center_widget);
// Do not focus an individual element in quick settings if chrome vox is
// enabled
if (!ShouldEnableExtraKeyboardAccessibility())
// Focus an individual element in the message center if chrome vox is
// disabled. Otherwise, ensure the message center is expanded.
if (!ShouldEnableExtraKeyboardAccessibility()) {
message_center_bubble_->FocusEntered(reverse);
} else if (message_center_bubble_->IsMessageCenterCollapsed()) {
ExpandMessageCenter();
EnsureQuickSettingsCollapsed(true /*animate*/);
}
return true;
}
......@@ -274,10 +277,12 @@ bool UnifiedSystemTray::FocusQuickSettings(bool reverse) {
views::Widget* quick_settings_widget = bubble_->GetBubbleWidget();
Shell::Get()->focus_cycler()->FocusWidget(quick_settings_widget);
// Do not focus an individual element in quick settings if chrome vox is
// enabled
// Focus an individual element in quick settings if chrome vox is
// disabled. Otherwise, ensure quick settings is expanded.
if (!ShouldEnableExtraKeyboardAccessibility())
bubble_->FocusEntered(reverse);
else
EnsureBubbleExpanded();
return true;
}
......
......@@ -350,6 +350,9 @@ void UnifiedSystemTrayController::EnsureExpanded() {
unified_view_->ResetDetailedView();
}
animation_->Show();
if (IsMessageCenterCollapseRequired())
bubble_->CollapseMessageCenter();
}
void UnifiedSystemTrayController::AnimationEnded(
......
......@@ -141,6 +141,8 @@ class AccessibilityFocusHelperView : public views::View {
: controller_(controller) {}
bool HandleAccessibleAction(const ui::AXActionData& action_data) override {
GetFocusManager()->ClearFocus();
GetFocusManager()->SetStoredFocusView(nullptr);
controller_->FocusOut(false);
return true;
}
......
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