Commit 0fd86f27 authored by Ahmed Mehfooz's avatar Ahmed Mehfooz Committed by Commit Bot

Add accessible names for detailed views in system tray

This CL adds custom chromevox announcements for all
settings pages in the system tray.

Bug: 1009714
Change-Id: Ied1735f1afc1289de6c66fb449c1bce70ac5fd25
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2037956Reviewed-by: default avatarTim Song <tengs@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Ahmed Mehfooz <amehfooz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#738667}
parent 736cd40f
...@@ -200,6 +200,36 @@ This file contains the strings for ash. ...@@ -200,6 +200,36 @@ This file contains the strings for ash.
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION" desc="The accessible description of the quick settings bubble and the information in it."> <message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION" desc="The accessible description of the quick settings bubble and the information in it.">
Quick Settings, Press search + left to access the notification center. Quick Settings, Press search + left to access the notification center.
</message> </message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_A11Y_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for accessibility settings accessed through the accessibility feature pod.">
Accessibility Settings
</message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_AUDIO_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for audio settings accessed through the audio feature pod.">
Audio Settings
</message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_BLUETOOTH_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for bluetooth settings accessed through the bluetooth feature pod.">
Bluetooth Settings
</message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_CAST_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for cast settings accessed through the cast feature pod.">
Cast Settings
</message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_IME_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for IME settings accessed through the IME feature pod.">
IME Settings
</message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_LOCALE_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for locale settings accessed through the locale feature pod.">
Locale Settings
</message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_NETWORK_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for network settings accessed through the network feature pod.">
Network Settings
</message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_NOTIFIER_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for notification settings accessed through the notification feature pod.">
Notification Settings
</message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_USER_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for user settings accessed through the user avatar button.">
User Settings
</message>
<message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_VPN_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for VPN settings accessed through the VPN feature pod.">
VPN Settings
</message>
<message name="IDS_ASH_STATUS_TRAY_BRAILLE_DISPLAY_CONNECTED" desc="The message shown on a notification when a braille display is connected"> <message name="IDS_ASH_STATUS_TRAY_BRAILLE_DISPLAY_CONNECTED" desc="The message shown on a notification when a braille display is connected">
Braille display connected. Braille display connected.
</message> </message>
......
...@@ -6,8 +6,10 @@ ...@@ -6,8 +6,10 @@
#include "ash/accessibility/accessibility_controller_impl.h" #include "ash/accessibility/accessibility_controller_impl.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/accessibility/tray_accessibility.h" #include "ash/system/accessibility/tray_accessibility.h"
#include "ash/system/tray/detailed_view_delegate.h" #include "ash/system/tray/detailed_view_delegate.h"
#include "ui/base/l10n/l10n_util.h"
namespace ash { namespace ash {
...@@ -30,6 +32,12 @@ views::View* UnifiedAccessibilityDetailedViewController::CreateView() { ...@@ -30,6 +32,12 @@ views::View* UnifiedAccessibilityDetailedViewController::CreateView() {
return view_; return view_;
} }
base::string16 UnifiedAccessibilityDetailedViewController::GetAccessibleName()
const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_A11Y_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
void UnifiedAccessibilityDetailedViewController:: void UnifiedAccessibilityDetailedViewController::
OnAccessibilityStatusChanged() { OnAccessibilityStatusChanged() {
view_->OnAccessibilityStatusChanged(); view_->OnAccessibilityStatusChanged();
......
...@@ -31,6 +31,7 @@ class UnifiedAccessibilityDetailedViewController ...@@ -31,6 +31,7 @@ class UnifiedAccessibilityDetailedViewController
// DetailedViewControllerBase: // DetailedViewControllerBase:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
// AccessibilityObserver: // AccessibilityObserver:
void OnAccessibilityStatusChanged() override; void OnAccessibilityStatusChanged() override;
......
...@@ -4,8 +4,10 @@ ...@@ -4,8 +4,10 @@
#include "ash/system/audio/unified_audio_detailed_view_controller.h" #include "ash/system/audio/unified_audio_detailed_view_controller.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/audio/audio_detailed_view.h" #include "ash/system/audio/audio_detailed_view.h"
#include "ash/system/tray/detailed_view_delegate.h" #include "ash/system/tray/detailed_view_delegate.h"
#include "ui/base/l10n/l10n_util.h"
using chromeos::CrasAudioHandler; using chromeos::CrasAudioHandler;
...@@ -29,6 +31,11 @@ views::View* UnifiedAudioDetailedViewController::CreateView() { ...@@ -29,6 +31,11 @@ views::View* UnifiedAudioDetailedViewController::CreateView() {
return view_; return view_;
} }
base::string16 UnifiedAudioDetailedViewController::GetAccessibleName() const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_AUDIO_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
void UnifiedAudioDetailedViewController::OnAudioNodesChanged() { void UnifiedAudioDetailedViewController::OnAudioNodesChanged() {
view_->Update(); view_->Update();
} }
......
...@@ -31,6 +31,7 @@ class UnifiedAudioDetailedViewController ...@@ -31,6 +31,7 @@ class UnifiedAudioDetailedViewController
// DetailedViewControllerBase: // DetailedViewControllerBase:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
// CrasAudioHandler::AudioObserver. // CrasAudioHandler::AudioObserver.
void OnAudioNodesChanged() override; void OnAudioNodesChanged() override;
......
...@@ -10,11 +10,13 @@ ...@@ -10,11 +10,13 @@
#include "ash/session/session_controller_impl.h" #include "ash/session/session_controller_impl.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/bluetooth/bluetooth_detailed_view.h" #include "ash/system/bluetooth/bluetooth_detailed_view.h"
#include "ash/system/bluetooth/tray_bluetooth_helper.h" #include "ash/system/bluetooth/tray_bluetooth_helper.h"
#include "ash/system/tray/detailed_view_delegate.h" #include "ash/system/tray/detailed_view_delegate.h"
#include "ash/system/tray/system_tray_notifier.h" #include "ash/system/tray/system_tray_notifier.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "ui/base/l10n/l10n_util.h"
using device::mojom::BluetoothSystem; using device::mojom::BluetoothSystem;
using device::mojom::BluetoothDeviceInfo; using device::mojom::BluetoothDeviceInfo;
...@@ -82,6 +84,12 @@ views::View* UnifiedBluetoothDetailedViewController::CreateView() { ...@@ -82,6 +84,12 @@ views::View* UnifiedBluetoothDetailedViewController::CreateView() {
return view_; return view_;
} }
base::string16 UnifiedBluetoothDetailedViewController::GetAccessibleName()
const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_BLUETOOTH_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
void UnifiedBluetoothDetailedViewController::OnBluetoothSystemStateChanged() { void UnifiedBluetoothDetailedViewController::OnBluetoothSystemStateChanged() {
auto* helper = Shell::Get()->tray_bluetooth_helper(); auto* helper = Shell::Get()->tray_bluetooth_helper();
const BluetoothSystem::State bluetooth_state = helper->GetBluetoothState(); const BluetoothSystem::State bluetooth_state = helper->GetBluetoothState();
......
...@@ -32,6 +32,7 @@ class UnifiedBluetoothDetailedViewController ...@@ -32,6 +32,7 @@ class UnifiedBluetoothDetailedViewController
// DetailedViewControllerBase: // DetailedViewControllerBase:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
// BluetoothObserver: // BluetoothObserver:
void OnBluetoothSystemStateChanged() override; void OnBluetoothSystemStateChanged() override;
......
...@@ -5,8 +5,10 @@ ...@@ -5,8 +5,10 @@
#include "ash/system/cast/unified_cast_detailed_view_controller.h" #include "ash/system/cast/unified_cast_detailed_view_controller.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/cast/tray_cast.h" #include "ash/system/cast/tray_cast.h"
#include "ash/system/tray/detailed_view_delegate.h" #include "ash/system/tray/detailed_view_delegate.h"
#include "ui/base/l10n/l10n_util.h"
namespace ash { namespace ash {
...@@ -24,4 +26,9 @@ views::View* UnifiedCastDetailedViewController::CreateView() { ...@@ -24,4 +26,9 @@ views::View* UnifiedCastDetailedViewController::CreateView() {
return view_; return view_;
} }
base::string16 UnifiedCastDetailedViewController::GetAccessibleName() const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_CAST_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
} // namespace ash } // namespace ash
...@@ -26,6 +26,7 @@ class UnifiedCastDetailedViewController : public DetailedViewController { ...@@ -26,6 +26,7 @@ class UnifiedCastDetailedViewController : public DetailedViewController {
// DetailedViewControllerBase: // DetailedViewControllerBase:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
private: private:
const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_; const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_;
......
...@@ -7,9 +7,11 @@ ...@@ -7,9 +7,11 @@
#include "ash/accessibility/accessibility_controller_impl.h" #include "ash/accessibility/accessibility_controller_impl.h"
#include "ash/ime/ime_controller_impl.h" #include "ash/ime/ime_controller_impl.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/ime/tray_ime_chromeos.h" #include "ash/system/ime/tray_ime_chromeos.h"
#include "ash/system/tray/detailed_view_delegate.h" #include "ash/system/tray/detailed_view_delegate.h"
#include "ash/system/tray/system_tray_notifier.h" #include "ash/system/tray/system_tray_notifier.h"
#include "ui/base/l10n/l10n_util.h"
namespace ash { namespace ash {
...@@ -46,6 +48,11 @@ views::View* UnifiedIMEDetailedViewController::CreateView() { ...@@ -46,6 +48,11 @@ views::View* UnifiedIMEDetailedViewController::CreateView() {
return view_; return view_;
} }
base::string16 UnifiedIMEDetailedViewController::GetAccessibleName() const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_IME_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
void UnifiedIMEDetailedViewController::OnKeyboardSuppressionChanged( void UnifiedIMEDetailedViewController::OnKeyboardSuppressionChanged(
bool suppressed) { bool suppressed) {
keyboard_suppressed_ = suppressed; keyboard_suppressed_ = suppressed;
......
...@@ -33,6 +33,7 @@ class UnifiedIMEDetailedViewController : public DetailedViewController, ...@@ -33,6 +33,7 @@ class UnifiedIMEDetailedViewController : public DetailedViewController,
// DetailedViewControllerBase: // DetailedViewControllerBase:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
// VirtualKeyboardObserver: // VirtualKeyboardObserver:
void OnKeyboardSuppressionChanged(bool suppressed) override; void OnKeyboardSuppressionChanged(bool suppressed) override;
......
...@@ -4,9 +4,11 @@ ...@@ -4,9 +4,11 @@
#include "ash/system/locale/unified_locale_detailed_view_controller.h" #include "ash/system/locale/unified_locale_detailed_view_controller.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/locale/locale_detailed_view.h" #include "ash/system/locale/locale_detailed_view.h"
#include "ash/system/tray/detailed_view_delegate.h" #include "ash/system/tray/detailed_view_delegate.h"
#include "base/logging.h" #include "base/logging.h"
#include "ui/base/l10n/l10n_util.h"
namespace ash { namespace ash {
...@@ -24,4 +26,9 @@ views::View* UnifiedLocaleDetailedViewController::CreateView() { ...@@ -24,4 +26,9 @@ views::View* UnifiedLocaleDetailedViewController::CreateView() {
return view_; return view_;
} }
base::string16 UnifiedLocaleDetailedViewController::GetAccessibleName() const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_LOCALE_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
} // namespace ash } // namespace ash
...@@ -28,6 +28,7 @@ class UnifiedLocaleDetailedViewController : public DetailedViewController { ...@@ -28,6 +28,7 @@ class UnifiedLocaleDetailedViewController : public DetailedViewController {
// DetailedViewControllerBase: // DetailedViewControllerBase:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
private: private:
const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_; const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_;
......
...@@ -6,8 +6,10 @@ ...@@ -6,8 +6,10 @@
#include "ash/session/session_controller_impl.h" #include "ash/session/session_controller_impl.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/network/network_list_view.h" #include "ash/system/network/network_list_view.h"
#include "ash/system/tray/detailed_view_delegate.h" #include "ash/system/tray/detailed_view_delegate.h"
#include "ui/base/l10n/l10n_util.h"
namespace ash { namespace ash {
...@@ -29,4 +31,9 @@ views::View* UnifiedNetworkDetailedViewController::CreateView() { ...@@ -29,4 +31,9 @@ views::View* UnifiedNetworkDetailedViewController::CreateView() {
return view_; return view_;
} }
base::string16 UnifiedNetworkDetailedViewController::GetAccessibleName() const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_NETWORK_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
} // namespace ash } // namespace ash
...@@ -28,6 +28,7 @@ class UnifiedNetworkDetailedViewController : public DetailedViewController { ...@@ -28,6 +28,7 @@ class UnifiedNetworkDetailedViewController : public DetailedViewController {
// DetailedViewControllerBase: // DetailedViewControllerBase:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
private: private:
const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_; const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_;
......
...@@ -6,8 +6,10 @@ ...@@ -6,8 +6,10 @@
#include "ash/session/session_controller_impl.h" #include "ash/session/session_controller_impl.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/network/vpn_list_view.h" #include "ash/system/network/vpn_list_view.h"
#include "ash/system/tray/detailed_view_delegate.h" #include "ash/system/tray/detailed_view_delegate.h"
#include "ui/base/l10n/l10n_util.h"
namespace ash { namespace ash {
...@@ -28,4 +30,9 @@ views::View* UnifiedVPNDetailedViewController::CreateView() { ...@@ -28,4 +30,9 @@ views::View* UnifiedVPNDetailedViewController::CreateView() {
return view_; return view_;
} }
base::string16 UnifiedVPNDetailedViewController::GetAccessibleName() const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_VPN_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
} // namespace ash } // namespace ash
...@@ -28,6 +28,7 @@ class UnifiedVPNDetailedViewController : public DetailedViewController { ...@@ -28,6 +28,7 @@ class UnifiedVPNDetailedViewController : public DetailedViewController {
// DetailedViewControllerBase: // DetailedViewControllerBase:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
private: private:
const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_; const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_;
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#ifndef ASH_SYSTEM_UNIFIED_DETAILED_VIEW_CONTROLLER_H_ #ifndef ASH_SYSTEM_UNIFIED_DETAILED_VIEW_CONTROLLER_H_
#define ASH_SYSTEM_UNIFIED_DETAILED_VIEW_CONTROLLER_H_ #define ASH_SYSTEM_UNIFIED_DETAILED_VIEW_CONTROLLER_H_
#include "base/strings/string16.h"
namespace views { namespace views {
class View; class View;
} // namespace views } // namespace views
...@@ -21,6 +23,7 @@ class DetailedViewController { ...@@ -21,6 +23,7 @@ class DetailedViewController {
// Create the detailed view. The view will be owned by views hierarchy. The // Create the detailed view. The view will be owned by views hierarchy. The
// view will be always deleted after the controller is destructed. // view will be always deleted after the controller is destructed.
virtual views::View* CreateView() = 0; virtual views::View* CreateView() = 0;
virtual base::string16 GetAccessibleName() const = 0;
}; };
} // namespace ash } // namespace ash
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "ash/system/message_center/notifier_settings_view.h" #include "ash/system/message_center/notifier_settings_view.h"
#include "ash/system/tray/detailed_view_delegate.h" #include "ash/system/tray/detailed_view_delegate.h"
#include "ash/system/tray/tray_detailed_view.h" #include "ash/system/tray/tray_detailed_view.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/message_center/message_center.h" #include "ui/message_center/message_center.h"
#include "ui/message_center/message_center_observer.h" #include "ui/message_center/message_center_observer.h"
#include "ui/views/layout/box_layout.h" #include "ui/views/layout/box_layout.h"
...@@ -62,4 +63,9 @@ views::View* UnifiedNotifierSettingsController::CreateView() { ...@@ -62,4 +63,9 @@ views::View* UnifiedNotifierSettingsController::CreateView() {
return new UnifiedNotifierSettingsView(detailed_view_delegate_.get()); return new UnifiedNotifierSettingsView(detailed_view_delegate_.get());
} }
base::string16 UnifiedNotifierSettingsController::GetAccessibleName() const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_NOTIFIER_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
} // namespace ash } // namespace ash
...@@ -24,6 +24,7 @@ class UnifiedNotifierSettingsController : public DetailedViewController { ...@@ -24,6 +24,7 @@ class UnifiedNotifierSettingsController : public DetailedViewController {
// DetailedViewControllerBase: // DetailedViewControllerBase:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
private: private:
const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_; const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_;
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "ash/system/unified/unified_slider_bubble_controller.h" #include "ash/system/unified/unified_slider_bubble_controller.h"
#include "ash/system/unified/unified_system_tray_bubble.h" #include "ash/system/unified/unified_system_tray_bubble.h"
#include "ash/system/unified/unified_system_tray_model.h" #include "ash/system/unified/unified_system_tray_model.h"
#include "ash/system/unified/unified_system_tray_view.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "base/timer/timer.h" #include "base/timer/timer.h"
#include "chromeos/network/network_handler.h" #include "chromeos/network/network_handler.h"
...@@ -388,6 +389,9 @@ base::string16 UnifiedSystemTray::GetAccessibleNameForBubble() { ...@@ -388,6 +389,9 @@ base::string16 UnifiedSystemTray::GetAccessibleNameForBubble() {
} }
base::string16 UnifiedSystemTray::GetAccessibleNameForQuickSettingsBubble() { base::string16 UnifiedSystemTray::GetAccessibleNameForQuickSettingsBubble() {
if (bubble_->unified_view()->IsDetailedViewShown())
return bubble_->unified_view()->GetDetailedViewAccessibleName();
return l10n_util::GetStringUTF16( return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION); IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION);
} }
......
...@@ -134,6 +134,10 @@ class ASH_EXPORT UnifiedSystemTrayController ...@@ -134,6 +134,10 @@ class ASH_EXPORT UnifiedSystemTrayController
return pagination_controller_.get(); return pagination_controller_.get();
} }
DetailedViewController* detailed_view_controller() {
return detailed_view_controller_.get();
}
private: private:
friend class UnifiedSystemTrayControllerTest; friend class UnifiedSystemTrayControllerTest;
friend class UnifiedMessageCenterBubbleTest; friend class UnifiedMessageCenterBubbleTest;
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "ash/system/message_center/unified_message_center_view.h" #include "ash/system/message_center/unified_message_center_view.h"
#include "ash/system/tray/interacted_by_tap_recorder.h" #include "ash/system/tray/interacted_by_tap_recorder.h"
#include "ash/system/tray/tray_constants.h" #include "ash/system/tray/tray_constants.h"
#include "ash/system/unified/detailed_view_controller.h"
#include "ash/system/unified/feature_pod_button.h" #include "ash/system/unified/feature_pod_button.h"
#include "ash/system/unified/feature_pods_container_view.h" #include "ash/system/unified/feature_pods_container_view.h"
#include "ash/system/unified/notification_hidden_view.h" #include "ash/system/unified/notification_hidden_view.h"
...@@ -510,6 +511,14 @@ int UnifiedSystemTrayView::GetVisibleFeaturePodCount() const { ...@@ -510,6 +511,14 @@ int UnifiedSystemTrayView::GetVisibleFeaturePodCount() const {
return feature_pods_container_->GetVisibleCount(); return feature_pods_container_->GetVisibleCount();
} }
base::string16 UnifiedSystemTrayView::GetDetailedViewAccessibleName() const {
return controller_->detailed_view_controller()->GetAccessibleName();
}
bool UnifiedSystemTrayView::IsDetailedViewShown() const {
return detailed_view_container_->GetVisible();
}
views::View* UnifiedSystemTrayView::GetFirstFocusableChild() { views::View* UnifiedSystemTrayView::GetFirstFocusableChild() {
FocusTraversable* focus_traversable = GetFocusTraversable(); FocusTraversable* focus_traversable = GetFocusTraversable();
views::View* focus_traversable_view = this; views::View* focus_traversable_view = this;
......
...@@ -134,6 +134,13 @@ class ASH_EXPORT UnifiedSystemTrayView : public views::View, ...@@ -134,6 +134,13 @@ class ASH_EXPORT UnifiedSystemTrayView : public views::View,
// Returns the number of visible feature pods. // Returns the number of visible feature pods.
int GetVisibleFeaturePodCount() const; int GetVisibleFeaturePodCount() const;
// Get the accessible name for the currently shown detailed view.
base::string16 GetDetailedViewAccessibleName() const;
// Returns true if a detailed view is being shown in the tray. (e.g Bluetooth
// Settings).
bool IsDetailedViewShown() const;
// views::View: // views::View:
void OnGestureEvent(ui::GestureEvent* event) override; void OnGestureEvent(ui::GestureEvent* event) override;
void ChildPreferredSizeChanged(views::View* child) override; void ChildPreferredSizeChanged(views::View* child) override;
...@@ -159,6 +166,7 @@ class ASH_EXPORT UnifiedSystemTrayView : public views::View, ...@@ -159,6 +166,7 @@ class ASH_EXPORT UnifiedSystemTrayView : public views::View,
return notification_hidden_view_; return notification_hidden_view_;
} }
View* detailed_view() { return detailed_view_container_; }
View* detailed_view_for_testing() { return detailed_view_container_; } View* detailed_view_for_testing() { return detailed_view_container_; }
private: private:
......
...@@ -7,8 +7,10 @@ ...@@ -7,8 +7,10 @@
#include "ash/multi_profile_uma.h" #include "ash/multi_profile_uma.h"
#include "ash/session/session_controller_impl.h" #include "ash/session/session_controller_impl.h"
#include "ash/shell.h" #include "ash/shell.h"
#include "ash/strings/grit/ash_strings.h"
#include "ash/system/unified/unified_system_tray_controller.h" #include "ash/system/unified/unified_system_tray_controller.h"
#include "ash/system/unified/user_chooser_view.h" #include "ash/system/unified/user_chooser_view.h"
#include "ui/base/l10n/l10n_util.h"
namespace ash { namespace ash {
...@@ -73,4 +75,9 @@ views::View* UserChooserDetailedViewController::CreateView() { ...@@ -73,4 +75,9 @@ views::View* UserChooserDetailedViewController::CreateView() {
return new UserChooserView(this); return new UserChooserView(this);
} }
base::string16 UserChooserDetailedViewController::GetAccessibleName() const {
return l10n_util::GetStringUTF16(
IDS_ASH_QUICK_SETTINGS_BUBBLE_USER_SETTINGS_ACCESSIBLE_DESCRIPTION);
}
} // namespace ash } // namespace ash
...@@ -34,6 +34,7 @@ class UserChooserDetailedViewController : public DetailedViewController { ...@@ -34,6 +34,7 @@ class UserChooserDetailedViewController : public DetailedViewController {
// DetailedViewController: // DetailedViewController:
views::View* CreateView() override; views::View* CreateView() override;
base::string16 GetAccessibleName() const override;
private: private:
UnifiedSystemTrayController* tray_controller_; UnifiedSystemTrayController* tray_controller_;
......
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