Skip to content
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

Merged
merged 3 commits into from
Jun 11, 2024

Conversation

yjbanov
Copy link
Contributor

@yjbanov yjbanov commented May 30, 2024

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

Copy link
Contributor

@mdebbar mdebbar left a 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,
Copy link
Contributor

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?

Copy link
Contributor Author

@yjbanov yjbanov May 31, 2024

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).

Copy link
Contributor

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?

Copy link
Contributor Author

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:

Screenshot 2024-05-31 at 12 44 06 PM

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:

Screenshot 2024-05-31 at 12 46 29 PM

Here's another example, where the a11y focus is on the last name field, but I'm entering the first name field:

Screenshot 2024-05-31 at 12 57 05 PM

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.

Copy link
Contributor

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.

@yjbanov yjbanov requested a review from chunhtai May 31, 2024 18:03
Copy link
Contributor

@chunhtai chunhtai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@mdebbar mdebbar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still LGTM!

Comment on lines +2755 to +2757
/// 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].
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😣

@kevmoo
Copy link
Contributor

kevmoo commented Jun 9, 2024

@yjbanov – good to land?

@martin-bautista-nimble
Copy link

Hey, any update on this? We're currently hoping this fixes an issue with our automated test framework

@kevmoo
Copy link
Contributor

kevmoo commented Jun 11, 2024

I think @yjbanov is OOO

@kevmoo kevmoo added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 11, 2024
@auto-submit auto-submit bot merged commit a22270b into flutter:main Jun 11, 2024
27 checks passed
@yjbanov yjbanov added the revert Label used to revert changes in a closed and merged pull request. label Jun 11, 2024
Copy link
Contributor

auto-submit bot commented Jun 11, 2024

A reason for requesting a revert of flutter/engine/53134 could
not be found or the reason was not properly formatted. Begin a comment with 'Reason for revert:' to tell the bot why
this issue is being reverted.

@auto-submit auto-submit bot removed the revert Label used to revert changes in a closed and merged pull request. label Jun 11, 2024
yjbanov added a commit to yjbanov/engine that referenced this pull request Jun 11, 2024
yjbanov added a commit that referenced this pull request Jun 11, 2024
#53342)

…#53134)"

This reverts commit a22270b.

Reverting because the engine PR landed prematurely. It needs to wait for
a framework change, otherwise, things will break.
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Jun 12, 2024
…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)
...
victorsanni pushed a commit to victorsanni/flutter that referenced this pull request Jun 14, 2024
…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)
...
victorsanni pushed a commit to victorsanni/flutter that referenced this pull request Jun 14, 2024
…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)
...
auto-submit bot pushed a commit that referenced this pull request Jun 28, 2024
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App platform-web Code specifically for the web engine
Projects
None yet
5 participants