Index: ui/views/bubble/bubble_delegate.cc |
diff --git a/ui/views/bubble/bubble_delegate.cc b/ui/views/bubble/bubble_delegate.cc |
index 55ce980289149c322219d60e35222009d4ee8614..0378892b708185ebb446df7b904366ff4c6b0161 100644 |
--- a/ui/views/bubble/bubble_delegate.cc |
+++ b/ui/views/bubble/bubble_delegate.cc |
@@ -305,6 +305,17 @@ void BubbleDelegateView::HandleVisibilityChanged(Widget* widget, bool visible) { |
else |
anchor_widget()->GetTopLevelWidget()->EnableInactiveRendering(); |
} |
+ |
+ // Fire AX_EVENT_ALERT for bubbles marked as AX_ROLE_ALERT_DIALOG; this |
+ // instructs accessibility tools to read the bubble in its entirety rather |
+ // than just its title and initially focused view. See |
+ // http://crbug.com/474622 for details. |
+ if (widget == GetWidget() && visible) { |
+ ui::AXViewState state; |
+ GetAccessibleState(&state); |
+ if (state.role == ui::AX_ROLE_ALERT_DIALOG) |
+ NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, true); |
+ } |
} |
} // namespace views |