diff options
-rw-r--r-- | chrome/browser/views/accessibility_event_router_views.cc | 3 | ||||
-rw-r--r-- | chrome/browser/views/infobars/infobars.cc | 4 | ||||
-rw-r--r-- | views/accessibility/accessibility_types.h | 2 | ||||
-rw-r--r-- | views/accessibility/view_accessibility.cc | 4 |
4 files changed, 12 insertions, 1 deletions
diff --git a/chrome/browser/views/accessibility_event_router_views.cc b/chrome/browser/views/accessibility_event_router_views.cc index 71c75e7..abdb650 100644 --- a/chrome/browser/views/accessibility_event_router_views.cc +++ b/chrome/browser/views/accessibility_event_router_views.cc @@ -67,6 +67,9 @@ void AccessibilityEventRouterViews::RemoveView(views::View* view) { void AccessibilityEventRouterViews::HandleAccessibilityEvent( views::View* view, AccessibilityTypes::Event event_type) { switch (event_type) { + case AccessibilityTypes::EVENT_ALERT: + // TODO(dtseng): does this have any meaning in this context. + break; case AccessibilityTypes::EVENT_FOCUS: DispatchAccessibilityNotification( view, NotificationType::ACCESSIBILITY_CONTROL_FOCUSED); diff --git a/chrome/browser/views/infobars/infobars.cc b/chrome/browser/views/infobars/infobars.cc index 58a4db6..1fe3921 100644 --- a/chrome/browser/views/infobars/infobars.cc +++ b/chrome/browser/views/infobars/infobars.cc @@ -127,7 +127,7 @@ InfoBar::~InfoBar() { bool InfoBar::GetAccessibleRole(AccessibilityTypes::Role* role) { DCHECK(role); - *role = AccessibilityTypes::ROLE_PANE; + *role = AccessibilityTypes::ROLE_ALERT; return true; } @@ -253,6 +253,8 @@ void InfoBar::InfoBarAdded() { GetFocusManager())); } #endif + + NotifyAccessibilityEvent(AccessibilityTypes::EVENT_ALERT); } void InfoBar::InfoBarRemoved() { diff --git a/views/accessibility/accessibility_types.h b/views/accessibility/accessibility_types.h index 4470344..b30208f 100644 --- a/views/accessibility/accessibility_types.h +++ b/views/accessibility/accessibility_types.h @@ -47,6 +47,7 @@ class AccessibilityTypes { // must provide a conversion to its own roles (see e.g. // ViewAccessibility::get_accRole and ViewAccessibility::MSAARole). enum Role { + ROLE_ALERT, ROLE_APPLICATION, ROLE_BUTTONDROPDOWN, ROLE_BUTTONMENU, @@ -82,6 +83,7 @@ class AccessibilityTypes { // events must provide a conversion to its own events (see e.g. // ViewAccessibility::MSAAEvent). enum Event { + EVENT_ALERT, EVENT_FOCUS, EVENT_MENUSTART, EVENT_MENUEND, diff --git a/views/accessibility/view_accessibility.cc b/views/accessibility/view_accessibility.cc index 07eec0d..e40534d 100644 --- a/views/accessibility/view_accessibility.cc +++ b/views/accessibility/view_accessibility.cc @@ -675,6 +675,8 @@ STDMETHODIMP ViewAccessibility::put_accValue(VARIANT var_id, BSTR put_val) { int32 ViewAccessibility::MSAAEvent(AccessibilityTypes::Event event) { switch (event) { + case AccessibilityTypes::EVENT_ALERT: + return EVENT_SYSTEM_ALERT; case AccessibilityTypes::EVENT_FOCUS: return EVENT_OBJECT_FOCUS; case AccessibilityTypes::EVENT_MENUSTART: @@ -694,6 +696,8 @@ int32 ViewAccessibility::MSAAEvent(AccessibilityTypes::Event event) { int32 ViewAccessibility::MSAARole(AccessibilityTypes::Role role) { switch (role) { + case AccessibilityTypes::ROLE_ALERT: +return ROLE_SYSTEM_ALERT; case AccessibilityTypes::ROLE_APPLICATION: return ROLE_SYSTEM_APPLICATION; case AccessibilityTypes::ROLE_BUTTONDROPDOWN: |