diff options
-rw-r--r-- | views/accessibility/accessibility_types.h | 1 | ||||
-rw-r--r-- | views/accessibility/view_accessibility.cc | 2 | ||||
-rw-r--r-- | views/controls/menu/menu_scroll_view_container.cc | 2 | ||||
-rw-r--r-- | views/controls/menu/submenu_view.cc | 18 | ||||
-rw-r--r-- | views/controls/menu/submenu_view.h | 3 |
5 files changed, 22 insertions, 4 deletions
diff --git a/views/accessibility/accessibility_types.h b/views/accessibility/accessibility_types.h index eccf14f..4470344 100644 --- a/views/accessibility/accessibility_types.h +++ b/views/accessibility/accessibility_types.h @@ -57,6 +57,7 @@ class AccessibilityTypes { ROLE_GRAPHIC, ROLE_GROUPING, ROLE_LINK, + ROLE_MENUBAR, ROLE_MENUITEM, ROLE_MENUPOPUP, ROLE_OUTLINE, diff --git a/views/accessibility/view_accessibility.cc b/views/accessibility/view_accessibility.cc index 4a9c0b3..5ed0c99 100644 --- a/views/accessibility/view_accessibility.cc +++ b/views/accessibility/view_accessibility.cc @@ -809,6 +809,8 @@ int32 ViewAccessibility::MSAARole(AccessibilityTypes::Role role) { return ROLE_SYSTEM_GROUPING; case AccessibilityTypes::ROLE_LINK: return ROLE_SYSTEM_LINK; + case AccessibilityTypes::ROLE_MENUBAR: + return ROLE_SYSTEM_MENUBAR; case AccessibilityTypes::ROLE_MENUITEM: return ROLE_SYSTEM_MENUITEM; case AccessibilityTypes::ROLE_MENUPOPUP: diff --git a/views/controls/menu/menu_scroll_view_container.cc b/views/controls/menu/menu_scroll_view_container.cc index ff7ff22..afdcc16 100644 --- a/views/controls/menu/menu_scroll_view_container.cc +++ b/views/controls/menu/menu_scroll_view_container.cc @@ -270,7 +270,7 @@ gfx::Size MenuScrollViewContainer::GetPreferredSize() { bool MenuScrollViewContainer::GetAccessibleRole( AccessibilityTypes::Role* role) { DCHECK(role); - *role = AccessibilityTypes::ROLE_MENUPOPUP; + *role = AccessibilityTypes::ROLE_MENUBAR; return true; } diff --git a/views/controls/menu/submenu_view.cc b/views/controls/menu/submenu_view.cc index ba40933..a6e48d5 100644 --- a/views/controls/menu/submenu_view.cc +++ b/views/controls/menu/submenu_view.cc @@ -124,6 +124,11 @@ void SubmenuView::DidChangeBounds(const gfx::Rect& previous, SchedulePaint(); } +bool SubmenuView::GetAccessibleRole(AccessibilityTypes::Role* role) { + *role = AccessibilityTypes::ROLE_MENUPOPUP; + return true; +} + void SubmenuView::PaintChildren(gfx::Canvas* canvas) { View::PaintChildren(canvas); @@ -229,7 +234,9 @@ void SubmenuView::ShowAt(gfx::NativeWindow parent, host_->ShowMenuHost(do_capture); GetScrollViewContainer()->NotifyAccessibilityEvent( - AccessibilityTypes::EVENT_MENUPOPUPSTART); + AccessibilityTypes::EVENT_MENUSTART); + + NotifyAccessibilityEvent(AccessibilityTypes::EVENT_MENUPOPUPSTART); return; } @@ -241,7 +248,9 @@ void SubmenuView::ShowAt(gfx::NativeWindow parent, host_->Init(parent, bounds, scroll_view_container_, do_capture); GetScrollViewContainer()->NotifyAccessibilityEvent( - AccessibilityTypes::EVENT_MENUPOPUPSTART); + AccessibilityTypes::EVENT_MENUSTART); + + NotifyAccessibilityEvent(AccessibilityTypes::EVENT_MENUPOPUPSTART); } void SubmenuView::Reposition(const gfx::Rect& bounds) { @@ -251,8 +260,10 @@ void SubmenuView::Reposition(const gfx::Rect& bounds) { void SubmenuView::Close() { if (host_) { + NotifyAccessibilityEvent(AccessibilityTypes::EVENT_MENUPOPUPEND); + GetScrollViewContainer()->NotifyAccessibilityEvent( - AccessibilityTypes::EVENT_MENUPOPUPEND); + AccessibilityTypes::EVENT_MENUEND); host_->DestroyMenuHost(); host_ = NULL; @@ -302,6 +313,7 @@ MenuScrollViewContainer* SubmenuView::GetScrollViewContainer() { std::wstring accessible_name; GetMenuItem()->GetAccessibleName(&accessible_name); scroll_view_container_->SetAccessibleName(accessible_name); + SetAccessibleName(accessible_name); } return scroll_view_container_; } diff --git a/views/controls/menu/submenu_view.h b/views/controls/menu/submenu_view.h index 85cf95bc..263f988 100644 --- a/views/controls/menu/submenu_view.h +++ b/views/controls/menu/submenu_view.h @@ -58,6 +58,9 @@ class SubmenuView : public View { virtual void DidChangeBounds(const gfx::Rect& previous, const gfx::Rect& current); + // Override from View. + virtual bool GetAccessibleRole(AccessibilityTypes::Role* role); + // Painting. void PaintChildren(gfx::Canvas* canvas); |