Document Android's SemanticsAction.tap behavior (#14031)

* Document Android's SemanticsAction.tap behavior

Fixes https://github.com/flutter/flutter/issues/13219.

* review comment
diff --git a/packages/flutter/lib/src/semantics/semantics.dart b/packages/flutter/lib/src/semantics/semantics.dart
index b6cf3bd..3678e20 100644
--- a/packages/flutter/lib/src/semantics/semantics.dart
+++ b/packages/flutter/lib/src/semantics/semantics.dart
@@ -1439,6 +1439,18 @@
   ///
   /// VoiceOver users on iOS and TalkBack users on Android can trigger this
   /// action by double-tapping the screen while an element is focused.
+  ///
+  /// On Android prior to Android Oreo a double-tap on the screen while an
+  /// element with an [onTap] handler is focused will not call the registered
+  /// handler. Instead, Android will simulate a pointer down and up event at the
+  /// center of the focused element. Those pointer events will get dispatched
+  /// just like a regular tap with TalkBack disabled would: The events will get
+  /// processed by any [GestureDetector] listening for gestures in the center of
+  /// the focused element. Therefore, to ensure that [onTap] handlers work
+  /// properly on Android versions prior to Oreo, a [GestureDetector] with an
+  /// onTap handler should always be wrapping an element that defines a
+  /// semantic [onTap] handler. By default a [GestureDetector] will register its
+  /// own semantic [onTap] handler that follows this principle.
   VoidCallback get onTap => _onTap;
   VoidCallback _onTap;
   set onTap(VoidCallback value) {