-
Notifications
You must be signed in to change notification settings - Fork 6k
[ios] Fix text input edit rotor accessibility #54351
[ios] Fix text input edit rotor accessibility #54351
Conversation
c9409e9
to
05f72a9
Compare
Verified |
Verified still need double tap gesture to reveal the edit options with this change, but it seems to be also true for native text field. I will check our behavior before this change to see if it's a regression. |
05f72a9
to
c48c830
Compare
After reverting #52333, I was able to confirm that it's been an existing behavior to require to double tap to bring up this rotor. So it's not a regression. |
c48c830
to
239b294
Compare
@@ -462,4 +462,34 @@ - (BOOL)hasText { | |||
return [[self textInputSurrogate] hasText]; | |||
} | |||
|
|||
#pragma mark - UIResponder overrides | |||
|
|||
- (void)cut:(id)sender { |
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.
I'm not sure all the gotchas, but can this class use forwardingTargetForSelector
instead of directly calling every method on textInputSurrogate
? It's inevitable we will miss some as they are added in future SDKs. I'm not sure it's the right behavior for this class, though, and I'm not sure if the super class UIAccessibilityElement
already implements, in which case it won't work...
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.
It turns out that iOS determines whether to show these options in accessibility rotor by checking the presence of these functions, So we can't use forwardingTargetForSelector
.
Not related to objc message forwarding, but found a very interesting crash on select. Looking into it! |
Surprisingly, it turns out that |
239b294
to
bf10ef4
Compare
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
…ions) (#154153) Manual roll requested by [email protected] flutter/engine@f645ca5...b41ca79 2024-08-26 [email protected] [Impeller] fix incorrect origins for mesh gradient computation. (flutter/engine#54762) 2024-08-26 [email protected] Change the `ci/analyze.sh` script to analyze _all_ of the engine (flutter/engine#54779) 2024-08-26 [email protected] Use GNI group instead of hardcoding PNG codecs source files. (flutter/engine#54781) 2024-08-26 [email protected] [ios] Fix text input edit rotor accessibility (flutter/engine#54351) 2024-08-26 [email protected] Ensure orchestrators aren't assigned to 32 core machines (flutter/engine#54754) 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
…ions) (flutter#154153) Manual roll requested by [email protected] flutter/engine@f645ca5...b41ca79 2024-08-26 [email protected] [Impeller] fix incorrect origins for mesh gradient computation. (flutter/engine#54762) 2024-08-26 [email protected] Change the `ci/analyze.sh` script to analyze _all_ of the engine (flutter/engine#54779) 2024-08-26 [email protected] Use GNI group instead of hardcoding PNG codecs source files. (flutter/engine#54781) 2024-08-26 [email protected] [ios] Fix text input edit rotor accessibility (flutter/engine#54351) 2024-08-26 [email protected] Ensure orchestrators aren't assigned to 32 core machines (flutter/engine#54754) 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
@hellohuanlin
As I mentioned in flutter/flutter#151029 : Suppose there are two text fields on an interface.
Native behavior: The text will be pasted into the second text field. In other words, the native rotor operation targets the text field that VoiceOver is focused on. |
I can probably put up a PR to disable selectAll in that case
This has been the existing behavior before I reverted the PR, so not a regression. Can you create a new issue for that? |
@hellohuanlin |
Fixes text input edit rotor accessibility missing edit actions.
It also fixes a few edit items that is displayed where it's not supposed to. (e.g. displaying select item while nothing to select).
List which issues are fixed by this PR. You must list at least one issue.
Fixes flutter/flutter#151029
If you had to change anything in the flutter/tests repo, include a link to the migration guide as per the breaking change policy.
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.