Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7a82b2be authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

AnnounceForAccessibility is broken for any view that has a ContentDescription.

1. The purpose of the View#announceForAccessibility method is to
   give a message to the user that is not related to a predefined
   view state change. The current implementation is grabbing the
   source view's content description which in general overrides
   the event text which defeats the purpose of the announcement.

bug:6721440

Change-Id: I8814914bea38c5f4c04f57391a64cf2bb06cb975
parent 0a6101b2
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -4496,11 +4496,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     * @param text The announcement text.
     */
    public void announceForAccessibility(CharSequence text) {
        if (AccessibilityManager.getInstance(mContext).isEnabled()) {
        if (AccessibilityManager.getInstance(mContext).isEnabled() && mParent != null) {
            AccessibilityEvent event = AccessibilityEvent.obtain(
                    AccessibilityEvent.TYPE_ANNOUNCEMENT);
            onInitializeAccessibilityEvent(event);
            event.getText().add(text);
            sendAccessibilityEventUnchecked(event);
            event.setContentDescription(null);
            mParent.requestSendAccessibilityEvent(this, event);
        }
    }