diff --git a/lib/web_ui/lib/src/engine/semantics/text_field.dart b/lib/web_ui/lib/src/engine/semantics/text_field.dart index 289248ea0c50f..fa3ba97e0ff7e 100644 --- a/lib/web_ui/lib/src/engine/semantics/text_field.dart +++ b/lib/web_ui/lib/src/engine/semantics/text_field.dart @@ -2,10 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:async'; import 'package:ui/ui.dart' as ui; import '../browser_detection.dart'; import '../dom.dart'; +import '../embedder.dart'; import '../platform_dispatcher.dart'; import '../safe_browser_api.dart'; import '../text_editing/text_editing.dart'; @@ -29,7 +31,8 @@ class SemanticsTextEditingStrategy extends DefaultTextEditingStrategy { /// Initializes the [SemanticsTextEditingStrategy] singleton. /// /// This method must be called prior to accessing [instance]. - static SemanticsTextEditingStrategy ensureInitialized(HybridTextEditing owner) { + static SemanticsTextEditingStrategy ensureInitialized( + HybridTextEditing owner) { if (_instance != null && instance.owner == owner) { return instance; } @@ -205,35 +208,62 @@ class SemanticsTextEditingStrategy extends DefaultTextEditingStrategy { /// This role is implemented via a content-editable HTML element. This role does /// not proactively switch modes depending on the current /// [EngineSemanticsOwner.gestureMode]. However, in Chrome on Android it ignores -/// browser gestures when in pointer mode. In Safari on iOS touch events are +/// browser gestures when in pointer mode. In Safari on iOS pointer events are /// used to detect text box invocation. This is because Safari issues touch /// events even when Voiceover is enabled. class TextField extends RoleManager { TextField(SemanticsObject semanticsObject) : super(Role.textField, semanticsObject) { - editableElement = - semanticsObject.hasFlag(ui.SemanticsFlag.isMultiline) - ? createDomHTMLTextAreaElement() - : createDomHTMLInputElement(); _setupDomElement(); } /// The element used for editing, e.g. ``, `