Skip to content

Enabling accessibility semantics causes errors on Flutter web #173239

@dmitry-fbm

Description

@dmitry-fbm

Steps to reproduce

These are two separate bugs but reporting together as both concern the same input field type.

Cursor wouldn't move when typing in

This looks like a regression, hadn't been noticed in previous versions. When changing to keyboardType: TextInputType.text, the issue is gone.

Repositioning cursor into field that already has text triggers error:

InvalidStateError: The input element's type ('email') does not support selection.

Log entries
Details
dart://_internal/js_shared/lib/js_util_patch.dart 173:10            DomHTMLInputElement|setSelectionRange
org-dartlang-sdk:///lib/_engine/engine/text_editing/text_editing.dart 1438:21                 DefaultTextEditingStrategy.setEditingState
org-dartlang-sdk:///lib/_engine/engine/text_editing/text_editing.dart 1559:7                  DefaultTextEditingStrategy.enable
org-dartlang-sdk:///lib/_engine/engine/semantics/text_field.dart 81:11                        SemanticsTextEditingStrategy.activate
org-dartlang-sdk:///lib/_engine/engine/semantics/semantics.dart 2008:9                        SemanticsObject._updateRole
org-dartlang-sdk:///lib/_engine/engine/semantics/semantics.dart 1692:5                        EngineSemanticsOwner.updateSemantics
org-dartlang-sdk:///lib/_engine/engine/window.dart 109:15                                     RenderView.updateSemantics
../../../../../../flutter/packages/flutter/lib/src/semantics/semantics.dart 4246:5            SemanticsOwner.sendSemanticsUpdate
../../../../../../flutter/packages/flutter/lib/src/rendering/object.dart 1502:7               PipelineOwner.flushSemantics
../../../../../../flutter/packages/flutter/lib/src/rendering/object.dart 1504:9               PipelineOwner.flushSemantics
../../../../../../flutter/packages/flutter/lib/src/rendering/binding.dart 325:22              RendererBinding.rootPipelineOwner
../../../../../../flutter/packages/flutter/lib/src/widgets/binding.dart 1242:13               _WidgetsFlutterBinding&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame
../../../../../../flutter/packages/flutter/lib/src/rendering/binding.dart 495:5               RendererBinding._handlePersistentFrameCallback
dart://_internal/js_runtime/lib/js_helper.dart 2621:9               Closure.cspForwardCall
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1438:7              SchedulerBinding._invokeFrameCallback
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1351:9              SchedulerBinding.handleDrawFrame
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1204:5              SchedulerBinding._handleDrawFrame
dart://_internal/js_runtime/lib/js_helper.dart 2610:9               Closure.cspForwardCall
org-dartlang-sdk:///lib/_engine/engine/platform_dispatcher.dart 1312:5                        invoke
org-dartlang-sdk:///lib/_engine/engine/platform_dispatcher.dart 255:5                         FrameService._renderFrame
dart://async/zone.dart 1546:12                                      _rootRunUnary
dart://async/zone.dart 1428:34                                      _CustomZone.runUnary
dart://_internal/js_runtime/lib/js_allow_interop_patch.dart 363:27  _callDartFunctionFast1

Expected results

Cursor should follow typed in chars; there should be no error when returning focus to a prefilled field.

Actual results

See above.

Code sample

Code sample
keyboardType: TextInputType.emailAddress

Screenshots or Video

Screenshots / Video demonstration Image

Logs

Logs
dart://_internal/js_shared/lib/js_util_patch.dart 173:10            DomHTMLInputElement|setSelectionRange
org-dartlang-sdk:///lib/_engine/engine/text_editing/text_editing.dart 1438:21                 DefaultTextEditingStrategy.setEditingState
org-dartlang-sdk:///lib/_engine/engine/text_editing/text_editing.dart 1559:7                  DefaultTextEditingStrategy.enable
org-dartlang-sdk:///lib/_engine/engine/semantics/text_field.dart 81:11                        SemanticsTextEditingStrategy.activate
org-dartlang-sdk:///lib/_engine/engine/semantics/semantics.dart 2008:9                        SemanticsObject._updateRole
org-dartlang-sdk:///lib/_engine/engine/semantics/semantics.dart 1692:5                        EngineSemanticsOwner.updateSemantics
org-dartlang-sdk:///lib/_engine/engine/window.dart 109:15                                     RenderView.updateSemantics
../../../../../../flutter/packages/flutter/lib/src/semantics/semantics.dart 4246:5            SemanticsOwner.sendSemanticsUpdate
../../../../../../flutter/packages/flutter/lib/src/rendering/object.dart 1502:7               PipelineOwner.flushSemantics
../../../../../../flutter/packages/flutter/lib/src/rendering/object.dart 1504:9               PipelineOwner.flushSemantics
../../../../../../flutter/packages/flutter/lib/src/rendering/binding.dart 325:22              RendererBinding.rootPipelineOwner
../../../../../../flutter/packages/flutter/lib/src/widgets/binding.dart 1242:13               _WidgetsFlutterBinding&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame
../../../../../../flutter/packages/flutter/lib/src/rendering/binding.dart 495:5               RendererBinding._handlePersistentFrameCallback
dart://_internal/js_runtime/lib/js_helper.dart 2621:9               Closure.cspForwardCall
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1438:7              SchedulerBinding._invokeFrameCallback
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1351:9              SchedulerBinding.handleDrawFrame
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1204:5              SchedulerBinding._handleDrawFrame
dart://_internal/js_runtime/lib/js_helper.dart 2610:9               Closure.cspForwardCall
org-dartlang-sdk:///lib/_engine/engine/platform_dispatcher.dart 1312:5                        invoke
org-dartlang-sdk:///lib/_engine/engine/platform_dispatcher.dart 255:5                         FrameService._renderFrame
dart://async/zone.dart 1546:12                                      _rootRunUnary
dart://async/zone.dart 1428:34                                      _CustomZone.runUnary
dart://_internal/js_runtime/lib/js_allow_interop_patch.dart 363:27  _callDartFunctionFast1

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.32.8, on macOS 15.3.2 24D81 darwin-arm64, locale en-US) [220ms]
  • Flutter version 3.32.8 on channel stable at /Users/ilija/flutter
  • Upstream repository https://github.com/flutter/flutter.git
  • Framework revision edada7c56e (10 days ago), 2025-07-25 14:08:03 +0000
  • Engine revision ef0cd00091
  • Dart version 3.8.1
  • DevTools version 2.45.1

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [807ms]
  • Android SDK at /Users/ilija/Library/Android/sdk
  • Platform android-36, build-tools 36.0.0
  • Java binary at: /opt/homebrew/opt/openjdk@17/bin/java
   This JDK is specified in your Flutter configuration.
   To change the current JDK, run: `flutter config --jdk-dir="path/to/jdk"`.
  • Java version OpenJDK Runtime Environment Homebrew (build 17.0.14+0)
  • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.2) [440ms]
  • Xcode at /Applications/Xcode.app/Contents/Developer
  • Build 16C5032a
  • CocoaPods version 1.16.2

[✓] Chrome - develop for the web [7ms]
  • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2025.1) [7ms]
  • Android Studio at /Applications/Android Studio.app/Contents
  • Flutter plugin can be installed from:
   :hammer: https://plugins.jetbrains.com/plugin/9212-flutter
  • Dart plugin can be installed from:
   :hammer: https://plugins.jetbrains.com/plugin/6351-dart
  • Java version OpenJDK Runtime Environment (build 21.0.6+-13391695-b895.109)

[✓] Connected device (2 available) [5.6s]
  • macOS (desktop) • macos • darwin-arm64  • macOS 15.3.2 24D81 darwin-arm64
  • Chrome (web)  • chrome • web-javascript • Google Chrome 134.0.6998.166

[✓] Network resources [321ms]
  • All expected network resources are available.

• No issues found!

[✓] Flutter (Channel stable, 3.32.8, on macOS 15.3.2 24D81 darwin-arm64, locale en-US) [220ms]
  • Flutter version 3.32.8 on channel stable at /Users/ilija/flutter
  • Upstream repository https://github.com/flutter/flutter.git
  • Framework revision edada7c56e (10 days ago), 2025-07-25 14:08:03 +0000
  • Engine revision ef0cd00091
  • Dart version 3.8.1
  • DevTools version 2.45.1

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [807ms]
  • Android SDK at /Users/ilija/Library/Android/sdk
  • Platform android-36, build-tools 36.0.0
  • Java binary at: /opt/homebrew/opt/openjdk@17/bin/java
   This JDK is specified in your Flutter configuration.
   To change the current JDK, run: `flutter config --jdk-dir="path/to/jdk"`.
  • Java version OpenJDK Runtime Environment Homebrew (build 17.0.14+0)
  • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.2) [440ms]
  • Xcode at /Applications/Xcode.app/Contents/Developer
  • Build 16C5032a
  • CocoaPods version 1.16.2

[✓] Chrome - develop for the web [7ms]
  • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2025.1) [7ms]
  • Android Studio at /Applications/Android Studio.app/Contents
  • Flutter plugin can be installed from:
   :hammer: https://plugins.jetbrains.com/plugin/9212-flutter
  • Dart plugin can be installed from:
   :hammer: https://plugins.jetbrains.com/plugin/6351-dart
  • Java version OpenJDK Runtime Environment (build 21.0.6+-13391695-b895.109)

[✓] Connected device (2 available) [5.6s]
  • macOS (desktop) • macos • darwin-arm64  • macOS 15.3.2 24D81 darwin-arm64
  • Chrome (web)  • chrome • web-javascript • Google Chrome 134.0.6998.166

[✓] Network resources [321ms]
  • All expected network resources are available.

• No issues found!

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work lista: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)a: text inputEntering text in a text field or keyboard related problemsc: crashStack traces logged to the consolec: regressionIt was better in the past than it is nowfound in release: 3.32Found to occur in 3.32found in release: 3.33Found to occur in 3.33fyi-accessibilityFor the attention of Framework Accessibility teamhas reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-webWeb applications specificallyr: fixedIssue is closed as already fixed in a newer versionteam-webOwned by Web platform teamtriaged-webTriaged by Web platform team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions