summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/views/accessibility_event_router_views.cc3
-rw-r--r--chrome/browser/views/infobars/infobars.cc4
-rw-r--r--views/accessibility/accessibility_types.h2
-rw-r--r--views/accessibility/view_accessibility.cc4
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: