Skip to content

Commit 6fef0d0

Browse files
authored
Removed a text input trait that causes VoiceOver to be incorrect when tapping a text input. (flutter#17203)
1 parent 9343c5e commit 6fef0d0

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
#include "flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge.h"
88
#include "flutter/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.h"
99

10+
static const UIAccessibilityTraits UIAccessibilityTraitUndocumentedEmptyLine = 0x800000000000;
11+
1012
@implementation FlutterInactiveTextInput {
1113
}
1214

@@ -284,8 +286,13 @@ - (UIAccessibilityTraits)accessibilityTraits {
284286
// Adding UIAccessibilityTraitKeyboardKey to the trait list so that iOS treats it like
285287
// a keyboard entry control, thus adding support for text editing features, such as
286288
// pinch to select text, and up/down fling to move cursor.
287-
return [super accessibilityTraits] | [self textInputSurrogate].accessibilityTraits |
288-
UIAccessibilityTraitKeyboardKey;
289+
UIAccessibilityTraits results = [super accessibilityTraits] |
290+
[self textInputSurrogate].accessibilityTraits |
291+
UIAccessibilityTraitKeyboardKey;
292+
// We remove an undocumented flag to get rid of a bug where single-tapping
293+
// a text input field incorrectly says "empty line".
294+
// See also: https://github.com/flutter/flutter/issues/52487
295+
return results & (~UIAccessibilityTraitUndocumentedEmptyLine);
289296
}
290297

291298
#pragma mark - UITextInput overrides

0 commit comments

Comments
 (0)