Index: ui/accessibility/platform/ax_platform_node_mac.mm |
diff --git a/ui/accessibility/platform/ax_platform_node_mac.mm b/ui/accessibility/platform/ax_platform_node_mac.mm |
index 88ab503003939c38fe2445d8d7efe90d2dd0a465..ea1372573832a80c54b0b489c83e939f3156584e 100644 |
--- a/ui/accessibility/platform/ax_platform_node_mac.mm |
+++ b/ui/accessibility/platform/ax_platform_node_mac.mm |
@@ -8,6 +8,7 @@ |
#include <stddef.h> |
#include "base/macros.h" |
+#import "base/mac/sdk_forward_declarations.h" |
#include "base/strings/sys_string_conversions.h" |
#include "ui/accessibility/ax_node_data.h" |
#include "ui/accessibility/ax_view_state.h" |
@@ -199,10 +200,11 @@ RoleMap BuildSubroleMap() { |
EventMap BuildEventMap() { |
const EventMapEntry events[] = { |
+ {ui::AX_EVENT_CHILDREN_CHANGED, NSAccessibilityLayoutChangedNotification}, |
{ui::AX_EVENT_TEXT_CHANGED, NSAccessibilityTitleChangedNotification}, |
- {ui::AX_EVENT_VALUE_CHANGED, NSAccessibilityValueChangedNotification}, |
{ui::AX_EVENT_TEXT_SELECTION_CHANGED, |
NSAccessibilitySelectedTextChangedNotification}, |
+ {ui::AX_EVENT_VALUE_CHANGED, NSAccessibilityValueChangedNotification}, |
// TODO(patricialor): Add more events. |
}; |
@@ -558,6 +560,18 @@ void AXPlatformNodeMac::NotifyAccessibilityEvent(ui::AXEvent event_type) { |
// Add mappings between ui::AXEvent and NSAccessibility notifications using |
// the EventMap above. This switch contains exceptions to those mappings. |
switch (event_type) { |
+ case ui::AX_EVENT_ALERT: { |
+ NSString* announcement = base::SysUTF8ToNSString( |
+ GetData().GetStringAttribute(ui::AX_ATTR_NAME)); |
+ NSDictionary* notification_info = @{ |
+ NSAccessibilityAnnouncementKey : announcement, |
+ NSAccessibilityPriorityKey : @(NSAccessibilityPriorityHigh) |
+ }; |
+ NSAccessibilityPostNotificationWithUserInfo( |
+ [NSApp mainWindow], NSAccessibilityAnnouncementRequestedNotification, |
+ notification_info); |
+ return; |
+ } |
case ui::AX_EVENT_TEXT_CHANGED: |
// If the view is a user-editable textfield, this should change the value. |
if (GetData().role == ui::AX_ROLE_TEXT_FIELD) { |