Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

hannah-hyj
Copy link
Member

@hannah-hyj hannah-hyj commented Jun 12, 2025

Reland (#167738) : [a11y] Semantics flag refactor step 2: embedder part with some updates

The original PR was reverted because the changes to embedder should be in one PR to avoid introducing breaking changes.

This PR contains 2 commits, one commit of re-landing #167738 and one commit of new enum updates.

new Updates :
Add new enum FlutterTristate and FlutterCheckState in embedder.h for 7 flags.
For CheckState, it used to use 3 bools (hasCheck, isChecked, isCheckStateMixed) to represent check states, replace them with a FlutterCheckState enum.
For other 6 flags, each has 2 bools (hasXXState and isXX), replace them with a FlutterTristate enum.

TODO:
Will also update these flags in dart:ui and framework to be tristate too in another PR, this PR is only for embedder.

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

issue: flutter#166101, overall goal is
to update semantics flag to be a struct/class to support more than 32
flags.


step 1: flutter#167421 updated
semantics_node.h and dart:ui
step 2(this PR): Update Embedder part to use a struct instead of a int
bit mask.
step 3: flutter#167771 Update Framework
use the SemanticsFlags class instead of bitmask
step 4 flutter#168852 Update web engine
to use the new class and update SemanticsUpdateBuilder.updateNode to
pass the new class instead of bitmask

## Pre-launch Checklist

- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [ ] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md

---------

Co-authored-by: Chris Bracken <[email protected]>
Co-authored-by: Loïc Sharma <[email protected]>
@github-actions github-actions bot added engine flutter/engine related. See also e: labels. a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) platform-windows Building on or for Windows specifically platform-linux Building on or for Linux specifically a: desktop Running on desktop platform-macos labels Jun 12, 2025
@hannah-hyj hannah-hyj changed the title Reland [a11y] Semantics flag refactor step 2: embedder part (#167738) but with some flags updated to use enum Reland (#167738) but with some flags updated to use enum Jun 12, 2025
@hannah-hyj hannah-hyj force-pushed the semanticsflags-embedder-2 branch from 004f39e to b600529 Compare June 12, 2025 05:07
@hannah-hyj hannah-hyj requested a review from chunhtai June 12, 2025 05:10
@hannah-hyj hannah-hyj force-pushed the semanticsflags-embedder-2 branch from b600529 to 53b72ee Compare June 12, 2025 06:46
Copy link
Member

@loic-sharma loic-sharma left a comment

Choose a reason for hiding this comment

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

Thanks for doing this, it's a nice improvement! :)

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

@hannah-hyj hannah-hyj added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 12, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Jun 13, 2025
Merged via the queue into flutter:master with commit 978ef6b Jun 13, 2025
181 of 182 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jun 13, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jun 16, 2025
flutter/flutter@f79452e...8303a96

2025-06-13 [email protected] infa: linux_android_emulator_tests to bringup (bad kvm config) (flutter/flutter#170607)
2025-06-13 [email protected] Roll Skia from 70455b7c74dd to 438ea4e05e15 (1 revision) (flutter/flutter#170570)
2025-06-13 [email protected] [web] Add Paint dithering. (flutter/flutter#170362)
2025-06-13 [email protected] Reland (#167738)  but with some flags updated to use enum  (flutter/flutter#170505)
2025-06-13 [email protected] Roll Dart SDK from ac589dba5282 to 1a6f6d7c6f2c (4 revisions) (flutter/flutter#170566)
2025-06-13 [email protected] Roll Skia from 22018eab8c1f to 70455b7c74dd (1 revision) (flutter/flutter#170564)
2025-06-13 [email protected] Roll Fuchsia Linux SDK from Dueykg3VpLT5D_jSG... to lVfYTWxB0rTTuW_k3... (flutter/flutter#170557)
2025-06-13 [email protected] [Windows] Use ANGLE blit extension on GLES 2.0 (flutter/flutter#170298)
2025-06-12 [email protected] chore: move experimental setup steps to composite action (flutter/flutter#170496)
2025-06-12 [email protected] [Impeller] fix mask filter application to Vertices. (flutter/flutter#170548)
2025-06-12 [email protected] Roll Skia from b41e7017658e to 22018eab8c1f (2 revisions) (flutter/flutter#170551)
2025-06-12 [email protected] Add CupertinoSheetRoute widget of the week video (flutter/flutter#170026)
2025-06-12 [email protected] Fix stray `--packages` argument from `workspace` refactor; add a test. (flutter/flutter#170449)
2025-06-12 [email protected] Roll pub packages (flutter/flutter#170522)
2025-06-12 [email protected] Navigator should call didpop when popping page based route (flutter/flutter#170376)
2025-06-12 [email protected] Relax RadioGroup semantics to allow non-radio children (flutter/flutter#170273)
2025-06-12 [email protected] [ Widget Preview ] Refactor the `flutter widget-preview` command (flutter/flutter#170467)
2025-06-12 [email protected] Pause UIScene migration (flutter/flutter#170490)
2025-06-12 [email protected] Roll Dart SDK from 9f741ef8a689 to ac589dba5282 (3 revisions) (flutter/flutter#170519)
2025-06-12 [email protected] Roll Packages from 0b322a2 to 6d3aaf4 (2 revisions) (flutter/flutter#170528)
2025-06-12 [email protected] Fix the path to `packages_autoroller`. (flutter/flutter#170538)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Ortes pushed a commit to Ortes/packages that referenced this pull request Jun 25, 2025
…r#9433)

flutter/flutter@f79452e...8303a96

2025-06-13 [email protected] infa: linux_android_emulator_tests to bringup (bad kvm config) (flutter/flutter#170607)
2025-06-13 [email protected] Roll Skia from 70455b7c74dd to 438ea4e05e15 (1 revision) (flutter/flutter#170570)
2025-06-13 [email protected] [web] Add Paint dithering. (flutter/flutter#170362)
2025-06-13 [email protected] Reland (#167738)  but with some flags updated to use enum  (flutter/flutter#170505)
2025-06-13 [email protected] Roll Dart SDK from ac589dba5282 to 1a6f6d7c6f2c (4 revisions) (flutter/flutter#170566)
2025-06-13 [email protected] Roll Skia from 22018eab8c1f to 70455b7c74dd (1 revision) (flutter/flutter#170564)
2025-06-13 [email protected] Roll Fuchsia Linux SDK from Dueykg3VpLT5D_jSG... to lVfYTWxB0rTTuW_k3... (flutter/flutter#170557)
2025-06-13 [email protected] [Windows] Use ANGLE blit extension on GLES 2.0 (flutter/flutter#170298)
2025-06-12 [email protected] chore: move experimental setup steps to composite action (flutter/flutter#170496)
2025-06-12 [email protected] [Impeller] fix mask filter application to Vertices. (flutter/flutter#170548)
2025-06-12 [email protected] Roll Skia from b41e7017658e to 22018eab8c1f (2 revisions) (flutter/flutter#170551)
2025-06-12 [email protected] Add CupertinoSheetRoute widget of the week video (flutter/flutter#170026)
2025-06-12 [email protected] Fix stray `--packages` argument from `workspace` refactor; add a test. (flutter/flutter#170449)
2025-06-12 [email protected] Roll pub packages (flutter/flutter#170522)
2025-06-12 [email protected] Navigator should call didpop when popping page based route (flutter/flutter#170376)
2025-06-12 [email protected] Relax RadioGroup semantics to allow non-radio children (flutter/flutter#170273)
2025-06-12 [email protected] [ Widget Preview ] Refactor the `flutter widget-preview` command (flutter/flutter#170467)
2025-06-12 [email protected] Pause UIScene migration (flutter/flutter#170490)
2025-06-12 [email protected] Roll Dart SDK from 9f741ef8a689 to ac589dba5282 (3 revisions) (flutter/flutter#170519)
2025-06-12 [email protected] Roll Packages from 0b322a2 to 6d3aaf4 (2 revisions) (flutter/flutter#170528)
2025-06-12 [email protected] Fix the path to `packages_autoroller`. (flutter/flutter#170538)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
mboetger pushed a commit to mboetger/flutter that referenced this pull request Jul 21, 2025
…ter#170505)

Reland (flutter#167738) : [a11y] Semantics flag refactor step 2: embedder part
*with some updates*

The original PR was reverted because the changes to embedder should be
in one PR to avoid introducing breaking changes.

This PR contains 2 commits, one commit of re-landing flutter#167738 and one
commit of new enum updates.

new Updates : 
Add new enum FlutterTristate and FlutterCheckState in embedder.h for 7
flags.
For CheckState, it used to use 3 bools (hasCheck, isChecked,
isCheckStateMixed) to represent check states, replace them with a
FlutterCheckState enum.
For other 6 flags, each has 2 bools (hasXXState and isXX), replace them
with a FlutterTristate enum.


TODO:
Will also update these flags in dart:ui and framework to be tristate too
in another PR, this PR is only for embedder.



## Pre-launch Checklist

- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [ ] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md

---------

Co-authored-by: Chris Bracken <[email protected]>
Co-authored-by: Loïc Sharma <[email protected]>
vashworth pushed a commit to vashworth/packages that referenced this pull request Jul 30, 2025
…r#9433)

flutter/flutter@f79452e...8303a96

2025-06-13 [email protected] infa: linux_android_emulator_tests to bringup (bad kvm config) (flutter/flutter#170607)
2025-06-13 [email protected] Roll Skia from 70455b7c74dd to 438ea4e05e15 (1 revision) (flutter/flutter#170570)
2025-06-13 [email protected] [web] Add Paint dithering. (flutter/flutter#170362)
2025-06-13 [email protected] Reland (#167738)  but with some flags updated to use enum  (flutter/flutter#170505)
2025-06-13 [email protected] Roll Dart SDK from ac589dba5282 to 1a6f6d7c6f2c (4 revisions) (flutter/flutter#170566)
2025-06-13 [email protected] Roll Skia from 22018eab8c1f to 70455b7c74dd (1 revision) (flutter/flutter#170564)
2025-06-13 [email protected] Roll Fuchsia Linux SDK from Dueykg3VpLT5D_jSG... to lVfYTWxB0rTTuW_k3... (flutter/flutter#170557)
2025-06-13 [email protected] [Windows] Use ANGLE blit extension on GLES 2.0 (flutter/flutter#170298)
2025-06-12 [email protected] chore: move experimental setup steps to composite action (flutter/flutter#170496)
2025-06-12 [email protected] [Impeller] fix mask filter application to Vertices. (flutter/flutter#170548)
2025-06-12 [email protected] Roll Skia from b41e7017658e to 22018eab8c1f (2 revisions) (flutter/flutter#170551)
2025-06-12 [email protected] Add CupertinoSheetRoute widget of the week video (flutter/flutter#170026)
2025-06-12 [email protected] Fix stray `--packages` argument from `workspace` refactor; add a test. (flutter/flutter#170449)
2025-06-12 [email protected] Roll pub packages (flutter/flutter#170522)
2025-06-12 [email protected] Navigator should call didpop when popping page based route (flutter/flutter#170376)
2025-06-12 [email protected] Relax RadioGroup semantics to allow non-radio children (flutter/flutter#170273)
2025-06-12 [email protected] [ Widget Preview ] Refactor the `flutter widget-preview` command (flutter/flutter#170467)
2025-06-12 [email protected] Pause UIScene migration (flutter/flutter#170490)
2025-06-12 [email protected] Roll Dart SDK from 9f741ef8a689 to ac589dba5282 (3 revisions) (flutter/flutter#170519)
2025-06-12 [email protected] Roll Packages from 0b322a2 to 6d3aaf4 (2 revisions) (flutter/flutter#170528)
2025-06-12 [email protected] Fix the path to `packages_autoroller`. (flutter/flutter#170538)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) a: desktop Running on desktop engine flutter/engine related. See also e: labels. platform-linux Building on or for Linux specifically platform-macos platform-windows Building on or for Windows specifically
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants