Skip to content

Text input on iOS/Safari is broken when using VoiceOver #115099

@nbayati

Description

@nbayati

Users can't interact with a text input using VoiceOver on iOS/Safari. The logic that updates the text field's state is broke when we switched to shadow dom.
The current logic uses domDocument.activeElement == editableElement to determine if the input field currently has focus, but this condition always returns false. We have to use flutterViewEmbedder.glassPaneShadow!.activeElement in order to get the active element instead of domDocument.activeElement throughout the update() function.

https://github.com/flutter/engine/blob/4cb5be089e587d71bf9b283cb72d21668baf81be/lib/web_ui/lib/src/engine/semantics/text_field.dart#L365-#L392

Metadata

Metadata

Assignees

Labels

P0Critical issues such as a build break or regressiona: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)browser: safari-iosonly manifests in Safari on iOScustomer: huggsy (g3)customer: troyengineflutter/engine related. See also e: labels.platform-webWeb applications specifically

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions