From 83548a4b7d23ca252944fa1dabfbe85bf5742157 Mon Sep 17 00:00:00 2001 From: "dmazzoni@chromium.org" Date: Fri, 18 Jun 2010 13:53:37 +0000 Subject: Improve toolbar keyboard accessibility. Design doc: https://docs.google.com/a/google.com/Doc?docid=0ATICCjR-gNReY2djdjkyNnNfNzl4ZnpiODQ2Mg&hl=en BUG=40745 BUG=36728 BUG=36222 TEST=New test added to focus_manager_unittest.cc Review URL: http://codereview.chromium.org/2737010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50234 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/chromeos/frame/browser_view.cc | 14 ++++++++++++++ chrome/browser/chromeos/frame/browser_view.h | 8 ++++++++ chrome/browser/chromeos/status/status_area_view.h | 3 ++- 3 files changed, 24 insertions(+), 1 deletion(-) (limited to 'chrome/browser/chromeos') diff --git a/chrome/browser/chromeos/frame/browser_view.cc b/chrome/browser/chromeos/frame/browser_view.cc index c03141a..124ecca 100644 --- a/chrome/browser/chromeos/frame/browser_view.cc +++ b/chrome/browser/chromeos/frame/browser_view.cc @@ -490,6 +490,11 @@ void BrowserView::SetFocusToLocationBar(bool select_all) { ::BrowserView::SetFocusToLocationBar(select_all); } +void BrowserView::FocusChromeOSStatus() { + SaveFocusedView(); + status_area_->SetToolbarFocus(last_focused_view_storage_id(), NULL); +} + void BrowserView::ToggleCompactNavigationBar() { UIStyle new_style = static_cast((ui_style_ + 1) % 2); if (new_style != StandardStyle && UseVerticalTabs()) @@ -595,6 +600,15 @@ void BrowserView::ShowCompactLocationBarUnderSelectedTab(bool select_all) { } //////////////////////////////////////////////////////////////////////////////// +// BrowserView protected: + +void BrowserView::GetAccessibleToolbars( + std::vector* toolbars) { + ::BrowserView::GetAccessibleToolbars(toolbars); + toolbars->push_back(status_area_); +} + +//////////////////////////////////////////////////////////////////////////////// // BrowserView private: void BrowserView::InitSystemMenu() { diff --git a/chrome/browser/chromeos/frame/browser_view.h b/chrome/browser/chromeos/frame/browser_view.h index 2bdb029..8a53c97 100644 --- a/chrome/browser/chromeos/frame/browser_view.h +++ b/chrome/browser/chromeos/frame/browser_view.h @@ -5,9 +5,12 @@ #ifndef CHROME_BROWSER_CHROMEOS_FRAME_BROWSER_VIEW_H_ #define CHROME_BROWSER_CHROMEOS_FRAME_BROWSER_VIEW_H_ +#include + #include "chrome/browser/chromeos/status/status_area_host.h" #include "chrome/browser/views/frame/browser_view.h" +class AccessibleToolbarView; class TabStripModel; namespace menus { @@ -59,6 +62,7 @@ class BrowserView : public ::BrowserView, virtual void Show(); virtual bool IsToolbarVisible() const; virtual void SetFocusToLocationBar(bool select_all); + virtual void FocusChromeOSStatus(); virtual void ToggleCompactNavigationBar(); virtual views::LayoutManager* CreateLayoutManager() const; virtual void InitTabStrip(TabStripModel* tab_strip_model); @@ -88,6 +92,10 @@ class BrowserView : public ::BrowserView, return ui_style_ == CompactStyle; } + protected: + virtual void GetAccessibleToolbars( + std::vector* toolbars); + private: friend class CompactLocationBarHostTest; diff --git a/chrome/browser/chromeos/status/status_area_view.h b/chrome/browser/chromeos/status/status_area_view.h index c760779..076ed34 100644 --- a/chrome/browser/chromeos/status/status_area_view.h +++ b/chrome/browser/chromeos/status/status_area_view.h @@ -6,6 +6,7 @@ #define CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_VIEW_H_ #include "base/basictypes.h" +#include "chrome/browser/views/accessible_toolbar_view.h" #include "views/view.h" namespace chromeos { @@ -19,7 +20,7 @@ class StatusAreaHost; // This class is used to wrap the small informative widgets in the upper-right // of the window title bar. It is used on ChromeOS only. -class StatusAreaView : public views::View { +class StatusAreaView : public AccessibleToolbarView { public: enum OpenTabsMode { OPEN_TABS_ON_LEFT = 1, -- cgit v1.1