From 9892873d8904db3669f968ac47ee7d443030f3e0 Mon Sep 17 00:00:00 2001 From: Victoria Ashworth Date: Tue, 23 Apr 2024 14:12:56 -0500 Subject: [PATCH] Remove UIAccessibilityTraitKeyboardKey to fix touch typing --- .../ios/framework/Source/SemanticsObjectTest.mm | 16 ++++++++++++++++ .../framework/Source/accessibility_text_entry.mm | 8 ++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm b/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm index 02430aad16b4b..45285d7cc418b 100644 --- a/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm +++ b/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm @@ -10,6 +10,7 @@ #import "flutter/shell/platform/darwin/ios/framework/Source/FlutterTouchInterceptingView_Test.h" #import "flutter/shell/platform/darwin/ios/framework/Source/SemanticsObject.h" #import "flutter/shell/platform/darwin/ios/framework/Source/SemanticsObjectTestMocks.h" +#import "flutter/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.h" FLUTTER_ASSERT_ARC @@ -1008,4 +1009,19 @@ - (void)testFlutterPlatformViewSemanticsContainer { XCTAssertNil(weakPlatformView); } +- (void)testTextInputSemanticsObject { + fml::WeakPtrFactory factory( + new flutter::testing::MockAccessibilityBridge()); + fml::WeakPtr bridge = factory.GetWeakPtr(); + + flutter::SemanticsNode node; + node.label = "foo"; + node.flags = static_cast(flutter::SemanticsFlags::kIsTextField) | + static_cast(flutter::SemanticsFlags::kIsReadOnly); + TextInputSemanticsObject* object = [[TextInputSemanticsObject alloc] initWithBridge:bridge uid:0]; + [object setSemanticsNode:&node]; + [object accessibilityBridgeDidFinishUpdate]; + XCTAssertEqual([object accessibilityTraits], UIAccessibilityTraitNone); +} + @end 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 92820ea8e522f..878f61b978078 100644 --- a/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm +++ b/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm @@ -304,12 +304,8 @@ - (UIAccessibilityTraits)accessibilityTraits { if (![self isAccessibilityBridgeAlive]) { return 0; } - // 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. - UIAccessibilityTraits results = [super accessibilityTraits] | - [self textInputSurrogate].accessibilityTraits | - UIAccessibilityTraitKeyboardKey; + UIAccessibilityTraits results = + [super accessibilityTraits] | [self textInputSurrogate].accessibilityTraits; // 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