From 3dcbbbb65e705191b2fe9cdcaca46c4cbd4fb110 Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Tue, 13 Mar 2018 12:49:30 -0700 Subject: [PATCH] Send TYPE_VIEW_SELECTED event for changes to SemanticsFlag.isSelected (flutter/engine#4780) --- .../android/io/flutter/view/AccessibilityBridge.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/engine/src/flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java b/engine/src/flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java index 3af34e91f09..f45012954c3 100644 --- a/engine/src/flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java +++ b/engine/src/flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java @@ -538,6 +538,13 @@ class AccessibilityBridge extends AccessibilityNodeProvider implements BasicMess // Simulate a click so TalkBack announces the change in checked state. sendAccessibilityEvent(object.id, AccessibilityEvent.TYPE_VIEW_CLICKED); } + if (mA11yFocusedObject != null && mA11yFocusedObject.id == object.id + && !object.hadFlag(Flag.IS_SELECTED) && object.hasFlag(Flag.IS_SELECTED)) { + AccessibilityEvent event = + obtainAccessibilityEvent(object.id, AccessibilityEvent.TYPE_VIEW_SELECTED); + event.getText().add(object.label); + sendAccessibilityEvent(event); + } if (mInputFocusedObject != null && mInputFocusedObject.id == object.id && object.hadFlag(Flag.IS_TEXT_FIELD) && object.hasFlag(Flag.IS_TEXT_FIELD)) {