diff options
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/app/generated_resources.grd | 6 | ||||
-rw-r--r-- | chrome/browser/views/browser_actions_container.cc | 38 | ||||
-rw-r--r-- | chrome/browser/views/browser_actions_container.h | 6 |
3 files changed, 49 insertions, 1 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 02486fd..59a7674 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -3701,6 +3701,12 @@ Keep your key file in a safe place. You will need it to create new versions of y <message name="IDS_ACCNAME_EXTENSIONS" desc="The accessible name for the Extensions toolbar."> Extensions </message> + <message name="IDS_ACCNAME_EXTENSIONS_BROWSER_ACTION" desc="The accessible name for a browser action."> + Browser Action + </message> + <message name="IDS_ACCNAME_EXTENSIONS_CHEVRON" desc="The accessible name for the chevron visible if not all the extension buttons fit."> + Menu containing hidden extensions + </message> <message name="IDS_ACCNAME_NEWTAB" desc="The accessible name for the New Tab (+) button."> New Tab </message> diff --git a/chrome/browser/views/browser_actions_container.cc b/chrome/browser/views/browser_actions_container.cc index acf06c2..9634c93 100644 --- a/chrome/browser/views/browser_actions_container.cc +++ b/chrome/browser/views/browser_actions_container.cc @@ -5,6 +5,7 @@ #include "chrome/browser/views/browser_actions_container.h" #include "app/gfx/canvas.h" +#include "app/l10n_util.h" #include "app/resource_bundle.h" #include "app/slide_animation.h" #include "base/stl_util-inl.h" @@ -28,6 +29,7 @@ #include "chrome/common/notification_type.h" #include "chrome/common/pref_names.h" #include "grit/app_resources.h" +#include "grit/generated_resources.h" #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkTypeface.h" #include "third_party/skia/include/effects/SkGradientShader.h" @@ -163,7 +165,12 @@ void BrowserActionButton::UpdateState() { else if (!default_icon_.isNull()) SetIcon(default_icon_); - SetTooltipText(UTF8ToWide(browser_action()->GetTitle(tab_id))); + // If the browser action name is empty, show the extension name instead. + std::wstring name = UTF8ToWide(browser_action()->GetTitle(tab_id)); + if (name.empty()) + name = UTF8ToWide(extension()->name()); + SetTooltipText(name); + SetAccessibleName(name); GetParent()->SchedulePaint(); } @@ -307,6 +314,18 @@ gfx::Canvas* BrowserActionView::GetIconWithBadge() { return canvas; } +bool BrowserActionView::GetAccessibleRole(AccessibilityTypes::Role* role) { + DCHECK(role); + *role = AccessibilityTypes::ROLE_GROUPING; + return true; +} + +bool BrowserActionView::GetAccessibleName(std::wstring* name) { + DCHECK(name); + *name = l10n_util::GetString(IDS_ACCNAME_EXTENSIONS_BROWSER_ACTION); + return true; +} + void BrowserActionView::Layout() { button_->SetBounds(0, kControlVertOffset, width(), kButtonSize); } @@ -348,6 +367,8 @@ BrowserActionsContainer::BrowserActionsContainer( resize_animation_.reset(new SlideAnimation(this)); resize_gripper_ = new views::ResizeGripper(this); + resize_gripper_->SetAccessibleName( + l10n_util::GetString(IDS_ACCNAME_SEPARATOR)); resize_gripper_->SetVisible(false); AddChildView(resize_gripper_); @@ -357,6 +378,8 @@ BrowserActionsContainer::BrowserActionsContainer( chevron_ = new views::MenuButton(NULL, std::wstring(), this, false); chevron_->SetVisible(false); chevron_->SetIcon(*chevron_image); + chevron_->SetAccessibleName( + l10n_util::GetString(IDS_ACCNAME_EXTENSIONS_CHEVRON)); // Chevron contains >> that should point left in LTR locales. chevron_->EnableCanvasFlippingForRTLUI(true); AddChildView(chevron_); @@ -779,6 +802,19 @@ int BrowserActionsContainer::OnPerformDrop( return DragDropTypes::DRAG_MOVE; } +bool BrowserActionsContainer::GetAccessibleRole( + AccessibilityTypes::Role* role) { + DCHECK(role); + *role = AccessibilityTypes::ROLE_GROUPING; + return true; +} + +bool BrowserActionsContainer::GetAccessibleName(std::wstring* name) { + DCHECK(name); + *name = l10n_util::GetString(IDS_ACCNAME_EXTENSIONS); + return !name->empty(); +} + void BrowserActionsContainer::MoveBrowserAction( const std::string& extension_id, size_t new_index) { ExtensionsService* service = profile_->GetExtensionsService(); diff --git a/chrome/browser/views/browser_actions_container.h b/chrome/browser/views/browser_actions_container.h index cb73ccb..6b4f123 100644 --- a/chrome/browser/views/browser_actions_container.h +++ b/chrome/browser/views/browser_actions_container.h @@ -144,6 +144,10 @@ class BrowserActionView : public views::View { // returned object. gfx::Canvas* GetIconWithBadge(); + // Accessibility accessors, overridden from View. + virtual bool GetAccessibleRole(AccessibilityTypes::Role* role); + virtual bool GetAccessibleName(std::wstring* name); + private: virtual void Layout(); @@ -310,6 +314,8 @@ class BrowserActionsContainer virtual int OnDragUpdated(const views::DropTargetEvent& event); virtual void OnDragExited(); virtual int OnPerformDrop(const views::DropTargetEvent& event); + virtual bool GetAccessibleRole(AccessibilityTypes::Role* role); + virtual bool GetAccessibleName(std::wstring* name); // Overridden from views::ViewMenuDelegate: virtual void RunMenu(View* source, const gfx::Point& pt); |