[Android] Stop speaking current announcement before announcing something else.

TalkBack announces successive AccessibilityEvent.TYPE_ANNOUNCEMENT
events by adding rather than flushing the queue.

With Android’s migration away from using ChromeVox for WebViews, this
became more noticeable.

Adding AccessibilityManager.interrupt() before the announcement stops
any speech that may be in progress, before making an announcement.
This commit is contained in:
Michael Jordan 2015-02-20 18:18:14 -05:00
parent cb94a6c8eb
commit c1e6bf44a8

View File

@ -40,6 +40,7 @@ public class JellyBeanMobileAccessibilityHelper extends
@Override
public void announceForAccessibility(CharSequence text) {
if (mAccessibilityManager.isEnabled() && mParent != null) {
mAccessibilityManager.interrupt();
AccessibilityEvent event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_ANNOUNCEMENT);
mWebView.onInitializeAccessibilityEvent(event);