Index: views/controls/menu/menu_item_view.cc |
diff --git a/views/controls/menu/menu_item_view.cc b/views/controls/menu/menu_item_view.cc |
index 78fcb95c98326a1193e9713670752f9abce0a417..e578f34364b1ac1735830b429862ce12ea491a58 100644 |
--- a/views/controls/menu/menu_item_view.cc |
+++ b/views/controls/menu/menu_item_view.cc |
@@ -139,7 +139,18 @@ bool MenuItemView::GetTooltipText(const gfx::Point& p, |
void MenuItemView::GetAccessibleState(ui::AccessibleViewState* state) { |
state->role = ui::AccessibilityTypes::ROLE_MENUITEM; |
- state->name = accessible_name_; |
+ |
+ string16 item_text; |
dmazzoni
2011/11/09 14:43:20
If we do this, add a comment like "One case to dea
|
+ if (child_count() == 1 && title_.empty()) { |
sky
2011/11/09 15:11:37
This seems weird. Why do we want the accessible ti
dmazzoni
2011/11/09 15:50:21
The motivating example is the status bar menus on
hashimoto
2011/11/10 05:22:51
I don't know examples other than ChromeOS status a
|
+ View* child = child_at(0); |
+ ui::AccessibleViewState state; |
+ child->GetAccessibleState(&state); |
+ item_text = state.name; |
+ } else { |
+ item_text = title_; |
+ } |
+ state->name = GetAccessibleNameForMenuItem(item_text, GetAcceleratorText()); |
+ |
switch (GetType()) { |
case SUBMENU: |
state->state |= ui::AccessibilityTypes::STATE_HASPOPUP; |
@@ -330,7 +341,6 @@ SubmenuView* MenuItemView::GetSubmenu() const { |
void MenuItemView::SetTitle(const string16& title) { |
title_ = title; |
- accessible_name_ = GetAccessibleNameForMenuItem(title_, GetAcceleratorText()); |
pref_size_.SetSize(0, 0); // Triggers preferred size recalculation. |
} |