tree b77b8dd20b10d3b32a86905fede1c528ddb7afbc
parent 687d974f6b77723fa5df7e6c22a75ad60e609d5c
author Hannah Jin <jhy03261997@gmail.com> 1749789988 -0700
committer dart-internal-monorepo <dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com> 1749792430 -0700

Reland (#167738)  but with some flags updated to use enum  (#170505)

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

- [ ] 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 <chris@bracken.jp>
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
https://dart.googlesource.com/external/github.com/flutter/flutter/+/978ef6b82012051ce2e3bea080dae73373e61f06
