-
Notifications
You must be signed in to change notification settings - Fork 6k
Remove UIAccessibilityTraitKeyboardKey to fix touch typing #52333
Remove UIAccessibilityTraitKeyboardKey to fix touch typing #52333
Conversation
The original PR was made in 2018, so it could be that this changed in a newer version of iOS or something about how we do text input has changed? It's unclear to me. I only have an iOS 17 device to test with. @chunhtai Do you think it's worth wrapping in an |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you talk a bit more on why removing the trait fixes the issue? What is the observed behavior before and after?
Yes, the issue is that when touch typing is on, engine/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm Lines 262 to 267 in 33c828f
This is happening due to Flutter adding the engine/shell/platform/darwin/ios/framework/Source/accessibility_text_entry.mm Lines 307 to 312 in 33c828f
According to Apple's documentation UIAccessibilityTraitKeyboardKey tells iOS that the "accessibility element behaves like a keyboard key". And if we look at the different typing modes, Touch typing reacts on a single tap on a keyboard key whereas Standard typing reacts on a double tap on a keyboard key:
So by treating By removing |
Thanks for explanation, yes this makes sense. According to the doc, that trait should probably not be on the Textfield semantics object. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…147336) flutter/engine@b5d5832...b30c0a7 2024-04-24 [email protected] Remove UIAccessibilityTraitKeyboardKey to fix touch typing (flutter/engine#52333) 2024-04-24 [email protected] [Impeller] Remove libtess2 from libflutter. (flutter/engine#52357) 2024-04-24 [email protected] Roll Skia from 510b6766d907 to afcc1db27593 (2 revisions) (flutter/engine#52367) 2024-04-24 [email protected] [web:tests] switch to new HTML DOM matcher (flutter/engine#52354) 2024-04-24 [email protected] [Impeller] use spec constant for gaussian shader, rename, and reuse vertex sources. (flutter/engine#52361) 2024-04-24 [email protected] [Impeller] delete points compute shader. (flutter/engine#52346) 2024-04-24 [email protected] [darwin] Update pixel format handling in FlutterTexture (flutter/engine#52326) 2024-04-24 [email protected] [Impeller] make drawAtlas always use porterduff or vertices_uber shader (flutter/engine#52348) 2024-04-24 [email protected] Migrate ios_surface files to ARC (flutter/engine#52139) 2024-04-24 [email protected] Roll Dart SDK from f470eaaf6e6d to 38c43a01a51e (1 revision) (flutter/engine#52365) 2024-04-24 [email protected] Roll Skia from b5dd23bd29df to 510b6766d907 (16 revisions) (flutter/engine#52364) 2024-04-24 [email protected] Fix some warnings reported by recent versions of clang-tidy (flutter/engine#52349) 2024-04-24 [email protected] Roll Skia from e15464e6e982 to b5dd23bd29df (1 revision) (flutter/engine#52353) 2024-04-24 [email protected] Roll Dart SDK from 5227dc5103f6 to f470eaaf6e6d (1 revision) (flutter/engine#52359) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
UIAccessibilityTraitKeyboardKey
was added in #4575 so thatTextInputSemanticsObject
supported VoiceOver gestures for text editing features, such as pinch to select text, and up/down fling to move cursor. After experimenting with it, I found that those features were still available even after removingUIAccessibilityTraitKeyboardKey
.Fixes flutter/flutter#94465.
In Touch Typing Mode:
touch_typing.mov
In Standard Typing Mode:
standard_typing.mov
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.