From cf1a65abbca234da0df2b4e8adb2b663a3beac48 Mon Sep 17 00:00:00 2001 From: flutter-zl Date: Sun, 9 Nov 2025 22:04:50 -0800 Subject: [PATCH] [web] Enable semantics via query parameter for automation testing --- .../web_ui/lib/src/engine/platform_dispatcher.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/engine/src/flutter/lib/web_ui/lib/src/engine/platform_dispatcher.dart b/engine/src/flutter/lib/web_ui/lib/src/engine/platform_dispatcher.dart index c868219f431..d54dc8988c2 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/engine/platform_dispatcher.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/engine/platform_dispatcher.dart @@ -48,6 +48,19 @@ class EnginePlatformDispatcher extends ui.PlatformDispatcher { /// and ensures proper focus is set, enabling Flutter's focus restoration to work correctly /// when users navigate between pages. _addNavigationFocusHandler(); + + /// Check for query parameter to enable semantics programmatically after initialization. + /// This must be done asynchronously to avoid circular dependency during construction. + scheduleMicrotask(_checkQueryParameterForSemantics); + } + + /// Check for query parameter to enable semantics programmatically. + /// This allows automation testing tools to enable semantics without modifying the app. + /// Usage: https://example.com/?flutter-semantics + void _checkQueryParameterForSemantics() { + if (Uri.base.queryParameters.containsKey('flutter-semantics')) { + EngineSemantics.instance.semanticsEnabled = true; + } } late StreamSubscription _onViewDisposedListener;