diff --git a/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm b/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm index 0bf0a6963606f..9fb441413b665 100644 --- a/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm +++ b/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm @@ -7,6 +7,8 @@ #include "flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge.h" #include "flutter/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.h" +static const UIAccessibilityTraits UIAccessibilityTraitUndocumentedEmptyLine = 0x800000000000; + @implementation FlutterInactiveTextInput { } @@ -284,8 +286,13 @@ - (UIAccessibilityTraits)accessibilityTraits { // Adding UIAccessibilityTraitKeyboardKey to the trait list so that iOS treats it like // a keyboard entry control, thus adding support for text editing features, such as // pinch to select text, and up/down fling to move cursor. - return [super accessibilityTraits] | [self textInputSurrogate].accessibilityTraits | - UIAccessibilityTraitKeyboardKey; + UIAccessibilityTraits results = [super accessibilityTraits] | + [self textInputSurrogate].accessibilityTraits | + UIAccessibilityTraitKeyboardKey; + // We remove an undocumented flag to get rid of a bug where single-tapping + // a text input field incorrectly says "empty line". + // See also: https://github.com/flutter/flutter/issues/52487 + return results & (~UIAccessibilityTraitUndocumentedEmptyLine); } #pragma mark - UITextInput overrides