diff --git a/shell/platform/android/io/flutter/view/AccessibilityBridge.java b/shell/platform/android/io/flutter/view/AccessibilityBridge.java index f422a5f7a39..57b171994d6 100644 --- a/shell/platform/android/io/flutter/view/AccessibilityBridge.java +++ b/shell/platform/android/io/flutter/view/AccessibilityBridge.java @@ -278,9 +278,19 @@ class AccessibilityBridge extends AccessibilityNodeProvider implements BasicMess } switch (action) { case AccessibilityNodeInfo.ACTION_CLICK: { + // Note: TalkBack prior to Oreo doesn't use this handler and instead simulates a + // click event at the center of the SemanticsNode. Other a11y services might go + // through this handler though. mOwner.dispatchSemanticsAction(virtualViewId, Action.TAP); return true; } + case AccessibilityNodeInfo.ACTION_LONG_CLICK: { + // Note: TalkBack doesn't use this handler and instead simulates a long click event + // at the center of the SemanticsNode. Other a11y services might go through this + // handler though. + mOwner.dispatchSemanticsAction(virtualViewId, Action.LONG_PRESS); + return true; + } case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { if (object.hasAction(Action.SCROLL_UP)) { mOwner.dispatchSemanticsAction(virtualViewId, Action.SCROLL_UP);