-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[web] switch from .didGain/LoseAccessibilityFocus to .focus #53134
[web] switch from .didGain/LoseAccessibilityFocus to .focus #53134
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't fully understand the difference between SemanticsAction.focus
and the others, but the code changes look good to me.
acquireFocus | ||
? ui.SemanticsAction.didGainAccessibilityFocus | ||
: ui.SemanticsAction.didLoseAccessibilityFocus, | ||
ui.SemanticsAction.focus, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't we also want to send a11yfocus as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That would be a wrong thing to do. On the web, accessibility focus is not observable through any platform API. If the accessibility focus is indeed detached from the input focus, sending didGainAccessibilityFocus
together with focus
would make the framework believe a wrong widget has accessibility focus. I think instead, we want the framework to be resilient to the absence of accessibility focus signals (it seems to be the case already for our own widgets; according to flutter/flutter#83809 (comment) it's only used for highlighting, which can be achieved at least on desktop through input focus).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the accessibility focus is indeed detached from the input focus, sending didGainAccessibilityFocus together with focus would make the framework believe a wrong widget has accessibility focus.
but on the web they are not detached, right? or at least we can't tell whether something receives only the a11y focus. but when something receives focus, it must also have received a11y focus?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They can be detached on the web too. For example, you can uncheck the following checkbox in macOS VoiceOver utility:
With that checkbox off, you can move the accessibility focus around without moving the input focus. Here's an example of VoiceOver focus being on a text field inside the web page, but when typing your input goes into the address bar instead:
Here's another example, where the a11y focus is on the last name field, but I'm entering the first name field:
You need to take special action to activate the widget under VoiceOver cursor, e.g. Control + Option + Space.
However, there's no listeners we can hook up on the web page to tell where the VoiceOver cursor is headed. So it's not observable to us. That's not a real problem though. The browser already does whatever it needs and determines when input focus should move into the field, and send us a DOM "focus" event. The web engine will simply forward it to the framework as SemanticsAction.focus
.
I must say, this detached mode feels confusing to me. I think when both kinds of focus are synchronized, it's easier to use the UI. VoiceOver itself seems to be giving incorrect instructions. For example, when you move focus to a text field, it says "To enter text in this field, type", which is incorrect in this mode as the text field does not yet have focus.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see, so the web just not going to use a11y focus. Now I think of it this is probably correct since native web can't tell which dom has the a11y focus either.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still LGTM!
/// This type cannot be part of the actual type hierarchy because each DOM type | ||
/// defines its `disabled` property ad hoc, without inheriting it from a common | ||
/// type, e.g. [DomHTMLInputElement] and [DomHTMLTextAreaElement]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😣
@yjbanov – good to land? |
Hey, any update on this? We're currently hoping this fixes an issue with our automated test framework |
I think @yjbanov is OOO |
A reason for requesting a revert of flutter/engine/53134 could |
…lutter#53134)" This reverts commit a22270b.
…150069) Roll Flutter Engine from 1cdbebee1901 to c7fcbfce608f (54 revisions) flutter/engine@1cdbebe...c7fcbfc 2024-06-11 [email protected] Fix character getter API usage in stripLeftSlashes/stripRightSlashes (flutter/engine#53299) 2024-06-11 [email protected] [web] switch from .didGain/LoseAccessibilityFocus to .focus (flutter/engine#53134) 2024-06-11 [email protected] Roll Dart SDK from 282b3347dc3e to ab4d5a0b789d (1 revision) (flutter/engine#53338) 2024-06-11 [email protected] [Flutter GPU] Generate DescriptorSetLayouts for pipelines & export symbols on Android. (flutter/engine#53184) 2024-06-11 [email protected] Roll Skia from cd2249d1ba33 to b5f974ec2dcd (4 revisions) (flutter/engine#53337) 2024-06-11 [email protected] [Impeller] remove varying interpolation for solid colors. (flutter/engine#53281) 2024-06-11 [email protected] Roll Skia from 67c3ee616fb5 to cd2249d1ba33 (4 revisions) (flutter/engine#53335) 2024-06-11 [email protected] [engine] null check texture registry in OnPlatformViewMarkTextureFrameAvailable. (flutter/engine#53334) 2024-06-11 [email protected] Manual roll Dart SDK from 66ed61abe85e to 282b3347dc3e (4 revisions) (flutter/engine#53332) 2024-06-11 [email protected] Roll Skia from 74061baa5402 to 67c3ee616fb5 (2 revisions) (flutter/engine#53333) 2024-06-11 [email protected] Roll Skia from f4d3467f2742 to 74061baa5402 (1 revision) (flutter/engine#53331) 2024-06-11 [email protected] Roll Skia from 5afbe0a7aded to f4d3467f2742 (1 revision) (flutter/engine#53330) 2024-06-11 [email protected] Roll Skia from eb8a53033e88 to 5afbe0a7aded (1 revision) (flutter/engine#53328) 2024-06-11 [email protected] Roll Skia from ed92d84ffd3a to eb8a53033e88 (1 revision) (flutter/engine#53327) 2024-06-11 [email protected] Roll Skia from 6e7a7a72cf3e to ed92d84ffd3a (5 revisions) (flutter/engine#53326) 2024-06-11 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.25.6 to 3.25.8 (flutter/engine#53325) 2024-06-11 49699333+dependabot[bot]@users.noreply.github.com Bump google/osv-scanner-action from 1.7.3 to 1.7.4 (flutter/engine#53324) 2024-06-11 [email protected] Roll Skia from b2bc3608f5c7 to 6e7a7a72cf3e (1 revision) (flutter/engine#53323) 2024-06-11 [email protected] Manual roll Dart SDK from 235dc289e4bf to 66ed61abe85e (5 revisions) (flutter/engine#53319) 2024-06-11 [email protected] Roll Skia from 38733e27e0d2 to b2bc3608f5c7 (1 revision) (flutter/engine#53321) 2024-06-10 [email protected] Temporarily run Linux linux_web_engine Mac tests on Mac-13 only (flutter/engine#53318) 2024-06-10 [email protected] Roll Fuchsia Linux SDK from -oOBf1l63tk7CztFd... to LS0Ff8PwQEGXzO0iA... (flutter/engine#53317) 2024-06-10 [email protected] Map mouse pointer type on Linux (flutter/engine#52418) 2024-06-10 [email protected] Roll Skia from 09cebc502599 to 38733e27e0d2 (1 revision) (flutter/engine#53316) 2024-06-10 [email protected] Temporarily run Mac mac_host_engine on only Mac-13 (flutter/engine#53313) 2024-06-10 [email protected] Roll Skia from 178953621308 to 09cebc502599 (1 revision) (flutter/engine#53312) 2024-06-10 [email protected] Roll Skia from 009d184e82c5 to 178953621308 (2 revisions) (flutter/engine#53311) 2024-06-10 [email protected] Roll Skia from 163df01252cd to 009d184e82c5 (1 revision) (flutter/engine#53309) 2024-06-10 [email protected] Use dart.library.html to distinguish dart2wasm from dart2js/ddc in conditional imports (flutter/engine#53307) 2024-06-10 [email protected] Roll Skia from 74b1e88878e1 to 163df01252cd (1 revision) (flutter/engine#53308) 2024-06-10 [email protected] Use new dart:js_interop way to externalize/internalize objects (flutter/engine#53304) 2024-06-10 [email protected] Roll Skia from 09e5ddcd4d23 to 74b1e88878e1 (1 revision) (flutter/engine#53305) 2024-06-10 [email protected] Roll Skia from e22a628e1ee0 to 09e5ddcd4d23 (1 revision) (flutter/engine#53302) 2024-06-10 [email protected] Roll Skia from 70d479753d41 to e22a628e1ee0 (2 revisions) (flutter/engine#53301) 2024-06-10 [email protected] Roll Skia from aafc81dcd88d to 70d479753d41 (1 revision) (flutter/engine#53300) 2024-06-09 [email protected] Roll Fuchsia Linux SDK from 8-r8iw3r4h35XQ4GP... to -oOBf1l63tk7CztFd... (flutter/engine#53298) 2024-06-09 [email protected] Roll Skia from 7d410bf13546 to aafc81dcd88d (1 revision) (flutter/engine#53297) 2024-06-08 [email protected] [Impeller] Move SeparatedVector2 to impeller/geometry. (flutter/engine#53264) 2024-06-08 [email protected] Roll Fuchsia Linux SDK from zpBZmUB_JC5AjG-f4... to 8-r8iw3r4h35XQ4GP... (flutter/engine#53291) 2024-06-08 [email protected] Roll Skia from a6c905943fe6 to 7d410bf13546 (1 revision) (flutter/engine#53290) 2024-06-08 [email protected] Roll Dart SDK from 48c6249a5b97 to 235dc289e4bf (1 revision) (flutter/engine#53289) 2024-06-08 [email protected] Roll Skia from ad3c9f203f4e to a6c905943fe6 (1 revision) (flutter/engine#53288) 2024-06-08 [email protected] Roll Dart SDK from d4f17e0bf28b to 48c6249a5b97 (1 revision) (flutter/engine#53287) 2024-06-08 [email protected] [impeller] switches gaussian blur to a "source space" calculation (flutter/engine#53261) 2024-06-07 [email protected] [web] add test for inefficient overlay allocation (flutter/engine#53284) 2024-06-07 [email protected] Update Chrome to 125. (flutter/engine#53282) ...
…lutter#150069) Roll Flutter Engine from 1cdbebee1901 to c7fcbfce608f (54 revisions) flutter/engine@1cdbebe...c7fcbfc 2024-06-11 [email protected] Fix character getter API usage in stripLeftSlashes/stripRightSlashes (flutter/engine#53299) 2024-06-11 [email protected] [web] switch from .didGain/LoseAccessibilityFocus to .focus (flutter/engine#53134) 2024-06-11 [email protected] Roll Dart SDK from 282b3347dc3e to ab4d5a0b789d (1 revision) (flutter/engine#53338) 2024-06-11 [email protected] [Flutter GPU] Generate DescriptorSetLayouts for pipelines & export symbols on Android. (flutter/engine#53184) 2024-06-11 [email protected] Roll Skia from cd2249d1ba33 to b5f974ec2dcd (4 revisions) (flutter/engine#53337) 2024-06-11 [email protected] [Impeller] remove varying interpolation for solid colors. (flutter/engine#53281) 2024-06-11 [email protected] Roll Skia from 67c3ee616fb5 to cd2249d1ba33 (4 revisions) (flutter/engine#53335) 2024-06-11 [email protected] [engine] null check texture registry in OnPlatformViewMarkTextureFrameAvailable. (flutter/engine#53334) 2024-06-11 [email protected] Manual roll Dart SDK from 66ed61abe85e to 282b3347dc3e (4 revisions) (flutter/engine#53332) 2024-06-11 [email protected] Roll Skia from 74061baa5402 to 67c3ee616fb5 (2 revisions) (flutter/engine#53333) 2024-06-11 [email protected] Roll Skia from f4d3467f2742 to 74061baa5402 (1 revision) (flutter/engine#53331) 2024-06-11 [email protected] Roll Skia from 5afbe0a7aded to f4d3467f2742 (1 revision) (flutter/engine#53330) 2024-06-11 [email protected] Roll Skia from eb8a53033e88 to 5afbe0a7aded (1 revision) (flutter/engine#53328) 2024-06-11 [email protected] Roll Skia from ed92d84ffd3a to eb8a53033e88 (1 revision) (flutter/engine#53327) 2024-06-11 [email protected] Roll Skia from 6e7a7a72cf3e to ed92d84ffd3a (5 revisions) (flutter/engine#53326) 2024-06-11 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.25.6 to 3.25.8 (flutter/engine#53325) 2024-06-11 49699333+dependabot[bot]@users.noreply.github.com Bump google/osv-scanner-action from 1.7.3 to 1.7.4 (flutter/engine#53324) 2024-06-11 [email protected] Roll Skia from b2bc3608f5c7 to 6e7a7a72cf3e (1 revision) (flutter/engine#53323) 2024-06-11 [email protected] Manual roll Dart SDK from 235dc289e4bf to 66ed61abe85e (5 revisions) (flutter/engine#53319) 2024-06-11 [email protected] Roll Skia from 38733e27e0d2 to b2bc3608f5c7 (1 revision) (flutter/engine#53321) 2024-06-10 [email protected] Temporarily run Linux linux_web_engine Mac tests on Mac-13 only (flutter/engine#53318) 2024-06-10 [email protected] Roll Fuchsia Linux SDK from -oOBf1l63tk7CztFd... to LS0Ff8PwQEGXzO0iA... (flutter/engine#53317) 2024-06-10 [email protected] Map mouse pointer type on Linux (flutter/engine#52418) 2024-06-10 [email protected] Roll Skia from 09cebc502599 to 38733e27e0d2 (1 revision) (flutter/engine#53316) 2024-06-10 [email protected] Temporarily run Mac mac_host_engine on only Mac-13 (flutter/engine#53313) 2024-06-10 [email protected] Roll Skia from 178953621308 to 09cebc502599 (1 revision) (flutter/engine#53312) 2024-06-10 [email protected] Roll Skia from 009d184e82c5 to 178953621308 (2 revisions) (flutter/engine#53311) 2024-06-10 [email protected] Roll Skia from 163df01252cd to 009d184e82c5 (1 revision) (flutter/engine#53309) 2024-06-10 [email protected] Use dart.library.html to distinguish dart2wasm from dart2js/ddc in conditional imports (flutter/engine#53307) 2024-06-10 [email protected] Roll Skia from 74b1e88878e1 to 163df01252cd (1 revision) (flutter/engine#53308) 2024-06-10 [email protected] Use new dart:js_interop way to externalize/internalize objects (flutter/engine#53304) 2024-06-10 [email protected] Roll Skia from 09e5ddcd4d23 to 74b1e88878e1 (1 revision) (flutter/engine#53305) 2024-06-10 [email protected] Roll Skia from e22a628e1ee0 to 09e5ddcd4d23 (1 revision) (flutter/engine#53302) 2024-06-10 [email protected] Roll Skia from 70d479753d41 to e22a628e1ee0 (2 revisions) (flutter/engine#53301) 2024-06-10 [email protected] Roll Skia from aafc81dcd88d to 70d479753d41 (1 revision) (flutter/engine#53300) 2024-06-09 [email protected] Roll Fuchsia Linux SDK from 8-r8iw3r4h35XQ4GP... to -oOBf1l63tk7CztFd... (flutter/engine#53298) 2024-06-09 [email protected] Roll Skia from 7d410bf13546 to aafc81dcd88d (1 revision) (flutter/engine#53297) 2024-06-08 [email protected] [Impeller] Move SeparatedVector2 to impeller/geometry. (flutter/engine#53264) 2024-06-08 [email protected] Roll Fuchsia Linux SDK from zpBZmUB_JC5AjG-f4... to 8-r8iw3r4h35XQ4GP... (flutter/engine#53291) 2024-06-08 [email protected] Roll Skia from a6c905943fe6 to 7d410bf13546 (1 revision) (flutter/engine#53290) 2024-06-08 [email protected] Roll Dart SDK from 48c6249a5b97 to 235dc289e4bf (1 revision) (flutter/engine#53289) 2024-06-08 [email protected] Roll Skia from ad3c9f203f4e to a6c905943fe6 (1 revision) (flutter/engine#53288) 2024-06-08 [email protected] Roll Dart SDK from d4f17e0bf28b to 48c6249a5b97 (1 revision) (flutter/engine#53287) 2024-06-08 [email protected] [impeller] switches gaussian blur to a "source space" calculation (flutter/engine#53261) 2024-06-07 [email protected] [web] add test for inefficient overlay allocation (flutter/engine#53284) 2024-06-07 [email protected] Update Chrome to 125. (flutter/engine#53282) ...
…lutter#150069) Roll Flutter Engine from 1cdbebee1901 to c7fcbfce608f (54 revisions) flutter/engine@1cdbebe...c7fcbfc 2024-06-11 [email protected] Fix character getter API usage in stripLeftSlashes/stripRightSlashes (flutter/engine#53299) 2024-06-11 [email protected] [web] switch from .didGain/LoseAccessibilityFocus to .focus (flutter/engine#53134) 2024-06-11 [email protected] Roll Dart SDK from 282b3347dc3e to ab4d5a0b789d (1 revision) (flutter/engine#53338) 2024-06-11 [email protected] [Flutter GPU] Generate DescriptorSetLayouts for pipelines & export symbols on Android. (flutter/engine#53184) 2024-06-11 [email protected] Roll Skia from cd2249d1ba33 to b5f974ec2dcd (4 revisions) (flutter/engine#53337) 2024-06-11 [email protected] [Impeller] remove varying interpolation for solid colors. (flutter/engine#53281) 2024-06-11 [email protected] Roll Skia from 67c3ee616fb5 to cd2249d1ba33 (4 revisions) (flutter/engine#53335) 2024-06-11 [email protected] [engine] null check texture registry in OnPlatformViewMarkTextureFrameAvailable. (flutter/engine#53334) 2024-06-11 [email protected] Manual roll Dart SDK from 66ed61abe85e to 282b3347dc3e (4 revisions) (flutter/engine#53332) 2024-06-11 [email protected] Roll Skia from 74061baa5402 to 67c3ee616fb5 (2 revisions) (flutter/engine#53333) 2024-06-11 [email protected] Roll Skia from f4d3467f2742 to 74061baa5402 (1 revision) (flutter/engine#53331) 2024-06-11 [email protected] Roll Skia from 5afbe0a7aded to f4d3467f2742 (1 revision) (flutter/engine#53330) 2024-06-11 [email protected] Roll Skia from eb8a53033e88 to 5afbe0a7aded (1 revision) (flutter/engine#53328) 2024-06-11 [email protected] Roll Skia from ed92d84ffd3a to eb8a53033e88 (1 revision) (flutter/engine#53327) 2024-06-11 [email protected] Roll Skia from 6e7a7a72cf3e to ed92d84ffd3a (5 revisions) (flutter/engine#53326) 2024-06-11 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.25.6 to 3.25.8 (flutter/engine#53325) 2024-06-11 49699333+dependabot[bot]@users.noreply.github.com Bump google/osv-scanner-action from 1.7.3 to 1.7.4 (flutter/engine#53324) 2024-06-11 [email protected] Roll Skia from b2bc3608f5c7 to 6e7a7a72cf3e (1 revision) (flutter/engine#53323) 2024-06-11 [email protected] Manual roll Dart SDK from 235dc289e4bf to 66ed61abe85e (5 revisions) (flutter/engine#53319) 2024-06-11 [email protected] Roll Skia from 38733e27e0d2 to b2bc3608f5c7 (1 revision) (flutter/engine#53321) 2024-06-10 [email protected] Temporarily run Linux linux_web_engine Mac tests on Mac-13 only (flutter/engine#53318) 2024-06-10 [email protected] Roll Fuchsia Linux SDK from -oOBf1l63tk7CztFd... to LS0Ff8PwQEGXzO0iA... (flutter/engine#53317) 2024-06-10 [email protected] Map mouse pointer type on Linux (flutter/engine#52418) 2024-06-10 [email protected] Roll Skia from 09cebc502599 to 38733e27e0d2 (1 revision) (flutter/engine#53316) 2024-06-10 [email protected] Temporarily run Mac mac_host_engine on only Mac-13 (flutter/engine#53313) 2024-06-10 [email protected] Roll Skia from 178953621308 to 09cebc502599 (1 revision) (flutter/engine#53312) 2024-06-10 [email protected] Roll Skia from 009d184e82c5 to 178953621308 (2 revisions) (flutter/engine#53311) 2024-06-10 [email protected] Roll Skia from 163df01252cd to 009d184e82c5 (1 revision) (flutter/engine#53309) 2024-06-10 [email protected] Use dart.library.html to distinguish dart2wasm from dart2js/ddc in conditional imports (flutter/engine#53307) 2024-06-10 [email protected] Roll Skia from 74b1e88878e1 to 163df01252cd (1 revision) (flutter/engine#53308) 2024-06-10 [email protected] Use new dart:js_interop way to externalize/internalize objects (flutter/engine#53304) 2024-06-10 [email protected] Roll Skia from 09e5ddcd4d23 to 74b1e88878e1 (1 revision) (flutter/engine#53305) 2024-06-10 [email protected] Roll Skia from e22a628e1ee0 to 09e5ddcd4d23 (1 revision) (flutter/engine#53302) 2024-06-10 [email protected] Roll Skia from 70d479753d41 to e22a628e1ee0 (2 revisions) (flutter/engine#53301) 2024-06-10 [email protected] Roll Skia from aafc81dcd88d to 70d479753d41 (1 revision) (flutter/engine#53300) 2024-06-09 [email protected] Roll Fuchsia Linux SDK from 8-r8iw3r4h35XQ4GP... to -oOBf1l63tk7CztFd... (flutter/engine#53298) 2024-06-09 [email protected] Roll Skia from 7d410bf13546 to aafc81dcd88d (1 revision) (flutter/engine#53297) 2024-06-08 [email protected] [Impeller] Move SeparatedVector2 to impeller/geometry. (flutter/engine#53264) 2024-06-08 [email protected] Roll Fuchsia Linux SDK from zpBZmUB_JC5AjG-f4... to 8-r8iw3r4h35XQ4GP... (flutter/engine#53291) 2024-06-08 [email protected] Roll Skia from a6c905943fe6 to 7d410bf13546 (1 revision) (flutter/engine#53290) 2024-06-08 [email protected] Roll Dart SDK from 48c6249a5b97 to 235dc289e4bf (1 revision) (flutter/engine#53289) 2024-06-08 [email protected] Roll Skia from ad3c9f203f4e to a6c905943fe6 (1 revision) (flutter/engine#53288) 2024-06-08 [email protected] Roll Dart SDK from d4f17e0bf28b to 48c6249a5b97 (1 revision) (flutter/engine#53287) 2024-06-08 [email protected] [impeller] switches gaussian blur to a "source space" calculation (flutter/engine#53261) 2024-06-07 [email protected] [web] add test for inefficient overlay allocation (flutter/engine#53284) 2024-06-07 [email protected] Update Chrome to 125. (flutter/engine#53282) ...
This is a repeat of #53134, which was merged prematurely. > [!WARNING] > Only land this after: > * flutter/flutter#149840 lands in the framework. > * You have personally manually tested the change together with the latest framework on all browsers. ## Original PR description Stop using `SemanticsAction.didGain/LoseAccessibilityFocus` on the web, start using `SemanticsAction.focus`. This is because on the web, a11y focus is not observable, only input focus is. Sending `SemanticsAction.focus` will guarantee that the framework move focus to the respective widget. There currently is no "unfocus" signal, because it seems to be already covered: either another widget gains focus, or an HTML DOM element outside the Flutter view does, both of which have their respective signals already. More details in the discussion in the issue flutter/flutter#83809. Fixes flutter/flutter#83809 Fixes flutter/flutter#148285 Fixes flutter/flutter#143337
Stop using
SemanticsAction.didGain/LoseAccessibilityFocus
on the web, start usingSemanticsAction.focus
. This is because on the web, a11y focus is not observable, only input focus is. SendingSemanticsAction.focus
will guarantee that the framework move focus to the respective widget. There currently is no "unfocus" signal, because it seems to be already covered: either another widget gains focus, or an HTML DOM element outside the Flutter view does, both of which have their respective signals already.More details in the discussion in the issue flutter/flutter#83809.
Fixes flutter/flutter#83809
Fixes flutter/flutter#148285
Fixes flutter/flutter#143337