Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 2f296ee

Browse files
author
nturgut
committed
adding click event for removal. adding unit tests
1 parent 83e68c6 commit 2f296ee

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

lib/web_ui/lib/src/engine/semantics/semantics_helper.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,11 @@ class MobileSemanticsEnabler extends SemanticsEnabler {
256256
@override
257257
bool tryEnableSemantics(html.Event event) {
258258
if (_schedulePlaceholderRemoval) {
259+
// The event type can also be click for VoiceOver.
259260
final bool removeNow = (browserEngine != BrowserEngine.webkit ||
260261
event.type == 'touchend' ||
261-
event.type == 'pointerup');
262+
event.type == 'pointerup' ||
263+
event.type == 'click');
262264
if (removeNow) {
263265
_semanticsPlaceholder!.remove();
264266
_semanticsPlaceholder = null;

lib/web_ui/test/engine/semantics/semantics_helper_test.dart

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import 'package:test/bootstrap/browser.dart';
99
import 'package:test/test.dart';
1010
import 'package:ui/src/engine.dart';
1111

12+
const PointerSupportDetector _defaultSupportDetector = PointerSupportDetector();
13+
1214
void main() {
1315
internalBootstrapBrowserTest(() => testMain);
1416
}
@@ -151,15 +153,31 @@ void testMain() {
151153
skip: browserEngine == BrowserEngine.webkit);
152154

153155
test('Not relevant events should be forwarded to the framework', () async {
154-
final html.Event event = html.TouchEvent('touchcancel');
156+
html.Event event;
157+
if (_defaultSupportDetector.hasPointerEvents) {
158+
event = html.PointerEvent('pointerdown');
159+
} else if(_defaultSupportDetector.hasTouchEvents) {
160+
event = html.TouchEvent('touchcancel');
161+
} else {
162+
event = html.MouseEvent('mousemove');
163+
}
164+
155165
bool shouldForwardToFramework =
156166
mobileSemanticsEnabler.tryEnableSemantics(event);
157167

158168
expect(shouldForwardToFramework, true);
159169
},
160-
// TODO(nurhan): https://github.com/flutter/flutter/issues/50590
161-
// TODO(nurhan): https://github.com/flutter/flutter/issues/46638
162-
// TODO(nurhan): https://github.com/flutter/flutter/issues/50754
163-
skip: browserEngine != BrowserEngine.blink);
170+
skip: browserEngine == BrowserEngine.edge);
171+
172+
test('Pointer down is relevant event', () async {
173+
expect(mobileSemanticsEnabler.semanticsActivationAttempts, isZero);
174+
175+
final html.Event event = html.PointerEvent('pointerdown');
176+
mobileSemanticsEnabler.tryEnableSemantics(event);
177+
178+
expect(mobileSemanticsEnabler.semanticsActivationAttempts, isNonZero);
179+
},
180+
skip: browserEngine == BrowserEngine.edge ||
181+
browserEngine == BrowserEngine.firefox);
164182
});
165183
}

0 commit comments

Comments
 (0)