Skip to content

[a11y][android] Set new CheckState APIs for android API 36 #182113

Merged
auto-submit[bot] merged 7 commits into
flutter:masterfrom
hannah-hyj:android-36-check-state
Feb 10, 2026
Merged

[a11y][android] Set new CheckState APIs for android API 36 #182113
auto-submit[bot] merged 7 commits into
flutter:masterfrom
hannah-hyj:android-36-check-state

Conversation

@hannah-hyj

@hannah-hyj hannah-hyj commented Feb 9, 2026

Copy link
Copy Markdown
Member

android API 36 has some new API for Check state
https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setChecked(boolean)

https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setChecked(int)

we need to set them so it will announce the states correctly.
fix #181321

Pre-launch Checklist

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

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

Update AccessibilityBridge.java

Update AccessibilityBridge.java

resolve comments

updates

Update AccessibilityBridge.java
@hannah-hyj hannah-hyj requested a review from a team as a code owner February 9, 2026 20:59
@github-actions github-actions Bot added platform-android Android applications specifically engine flutter/engine related. See also e: labels. team-android Owned by Android platform team labels Feb 9, 2026
@hannah-hyj hannah-hyj requested review from chunhtai and removed request for a team February 9, 2026 21:00
@hannah-hyj hannah-hyj added the a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) label Feb 9, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request updates the accessibility bridge to use the new CheckState APIs available from Android API level 36. The changes involve adding logic to AccessibilityBridge.java to call the new setChecked(int) method on AccessibilityNodeInfo for newer APIs, and a corresponding test case has been added to AccessibilityBridgeTest.java to verify this behavior.

My review has identified a couple of areas for improvement in AccessibilityBridge.java. There's a redundant call to setChecked on newer APIs which should be addressed by refactoring the version-specific logic. Additionally, there are adjacent if blocks checking for the same API level that could be merged for better code clarity.

@github-actions github-actions Bot removed the a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) label Feb 9, 2026
@hannah-hyj hannah-hyj added the a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) label Feb 9, 2026
@github-actions github-actions Bot removed the a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) label Feb 9, 2026

@chunhtai chunhtai left a comment

Copy link
Copy Markdown
Contributor

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 Feb 9, 2026
@auto-submit auto-submit Bot added this pull request to the merge queue Feb 10, 2026
Merged via the queue into flutter:master with commit 3e7835e Feb 10, 2026
181 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Feb 10, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Feb 10, 2026
Roll Flutter from e8f9dc50356d to 9bda20a11f1e (34 revisions)

flutter/flutter@e8f9dc5...9bda20a

2026-02-10 brackenavaron@gmail.com Remove Material import from focus_traversal_test.dart (flutter/flutter#180994)
2026-02-10 engine-flutter-autoroll@skia.org Roll Skia from 6e217430c052 to cffb3bf918df (1 revision) (flutter/flutter#182131)
2026-02-10 divyansh.shah.ece23@itbhu.ac.in Encourage splitting large test files in testing documentation 2 (flutter/flutter#182051)
2026-02-10 34465683+rkishan516@users.noreply.github.com refactor: migrate CupertinoPageTransitionsBuilder to cupertino folder (flutter/flutter#179776)
2026-02-10 30870216+gaaclarke@users.noreply.github.com Delete the last remaining skia only fragment shader tests (flutter/flutter#182127)
2026-02-10 jhy03261997@gmail.com [a11y][android] Set new CheckState APIs for android API 36  (flutter/flutter#182113)
2026-02-10 dkwingsmt@users.noreply.github.com Add missing dependencies to framework_tests_misc_leak_tracking (flutter/flutter#181929)
2026-02-10 engine-flutter-autoroll@skia.org Roll Dart SDK from eee0e2e11174 to 69eb951f8f7e (2 revisions) (flutter/flutter#182128)
2026-02-10 fluttergithubbot@gmail.com Marks Linux_android_emu android_display_cutout to be flaky (flutter/flutter#181901)
2026-02-10 737941+loic-sharma@users.noreply.github.com Bump Dart to 3.10 (flutter/flutter#174066)
2026-02-10 engine-flutter-autoroll@skia.org Roll Skia from d4b7e24a209b to 6e217430c052 (6 revisions) (flutter/flutter#182126)
2026-02-09 15619084+vashworth@users.noreply.github.com Intercept UIScene device log and print a guided warning (flutter/flutter#181515)
2026-02-09 47866232+chunhtai@users.noreply.github.com Introduce ScrollCacheExtent and also fixes unbound shrinkwrap cache ex… (flutter/flutter#181092)
2026-02-09 43054281+camsim99@users.noreply.github.com [Android] Add mechanism for setting Android engine flags via Android manifest (take 2) (flutter/flutter#181632)
2026-02-09 116356835+AbdeMohlbi@users.noreply.github.com Fix wrong comment about default impeller value (flutter/flutter#181831)
2026-02-09 huqian123hq@hotmail.com fix build fail for wayland only platform (flutter/flutter#182057)
2026-02-09 jesswon@google.com [AGP 9] Added Warning Against Updating to AGP 9 (flutter/flutter#181977)
2026-02-09 30870216+gaaclarke@users.noreply.github.com Updated Shaderc dep (flutter/flutter#180976)
2026-02-09 47866232+chunhtai@users.noreply.github.com Refactor accessibility guidelines out to widget layer (flutter/flutter#181672)
2026-02-09 engine-flutter-autoroll@skia.org Roll Skia from 68dff53238e5 to d4b7e24a209b (2 revisions) (flutter/flutter#182087)
2026-02-09 ikramhasan.dev@gmail.com fix: OutlineInputBorder not respecting BorderSide stroke alignment (flutter/flutter#180487)
2026-02-09 97480502+b-luk@users.noreply.github.com Adds opengles to engine dart tests (flutter/flutter#181933)
2026-02-09 15619084+vashworth@users.noreply.github.com Add command to build a Swift Package for Add to App and generate FlutterPluginRegistrant (flutter/flutter#181224)
2026-02-09 116356835+AbdeMohlbi@users.noreply.github.com Remove unused constant in `bundle.dart` (flutter/flutter#182023)
2026-02-09 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from iqtwdXlgKIyZkL5Li... to 7BGf7mPQvgLi7Axb6... (flutter/flutter#182082)
2026-02-09 116356835+AbdeMohlbi@users.noreply.github.com Remove unused getters in `user_messages.dart` (flutter/flutter#181867)
2026-02-09 engine-flutter-autoroll@skia.org Roll Packages from 7805d3e to 3d5eaa5 (3 revisions) (flutter/flutter#182083)
2026-02-09 engine-flutter-autoroll@skia.org Roll Skia from 5d891cd7fb7f to 68dff53238e5 (1 revision) (flutter/flutter#182080)
2026-02-09 robert.ancell@canonical.com Update example description (flutter/flutter#182067)
2026-02-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 965b51c219d3 to eee0e2e11174 (1 revision) (flutter/flutter#182073)
2026-02-09 engine-flutter-autoroll@skia.org Roll Skia from 9533d7533d59 to 5d891cd7fb7f (6 revisions) (flutter/flutter#182070)
2026-02-09 jwren@google.com Add a new flutter cli command, running-apps, using mDNS app discovery (flutter/flutter#180098)
2026-02-09 engine-flutter-autoroll@skia.org Roll Skia from b7db9f35f0f2 to 9533d7533d59 (2 revisions) (flutter/flutter#182069)
2026-02-08 robert.ancell@canonical.com Improve FlWindowMonitor API (flutter/flutter#181885)

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 boetger@google.com,stuartmorgan@google.com 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

...
rickhohler pushed a commit to rickhohler/flutter that referenced this pull request Feb 19, 2026
…82113)

android API 36 has some new API for Check state

https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setChecked(boolean)


https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setChecked(int)

 we need to set them so it will announce the states correctly.
fix flutter#181321 



## 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].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- 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
mboetger pushed a commit to mboetger/flutter that referenced this pull request Mar 26, 2026
…82113)

android API 36 has some new API for Check state

https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setChecked(boolean)


https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setChecked(int)

 we need to set them so it will announce the states correctly.
fix flutter#181321 



## 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].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- 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
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…r#10992)

Roll Flutter from e8f9dc50356d to 9bda20a11f1e (34 revisions)

flutter/flutter@e8f9dc5...9bda20a

2026-02-10 brackenavaron@gmail.com Remove Material import from focus_traversal_test.dart (flutter/flutter#180994)
2026-02-10 engine-flutter-autoroll@skia.org Roll Skia from 6e217430c052 to cffb3bf918df (1 revision) (flutter/flutter#182131)
2026-02-10 divyansh.shah.ece23@itbhu.ac.in Encourage splitting large test files in testing documentation 2 (flutter/flutter#182051)
2026-02-10 34465683+rkishan516@users.noreply.github.com refactor: migrate CupertinoPageTransitionsBuilder to cupertino folder (flutter/flutter#179776)
2026-02-10 30870216+gaaclarke@users.noreply.github.com Delete the last remaining skia only fragment shader tests (flutter/flutter#182127)
2026-02-10 jhy03261997@gmail.com [a11y][android] Set new CheckState APIs for android API 36  (flutter/flutter#182113)
2026-02-10 dkwingsmt@users.noreply.github.com Add missing dependencies to framework_tests_misc_leak_tracking (flutter/flutter#181929)
2026-02-10 engine-flutter-autoroll@skia.org Roll Dart SDK from eee0e2e11174 to 69eb951f8f7e (2 revisions) (flutter/flutter#182128)
2026-02-10 fluttergithubbot@gmail.com Marks Linux_android_emu android_display_cutout to be flaky (flutter/flutter#181901)
2026-02-10 737941+loic-sharma@users.noreply.github.com Bump Dart to 3.10 (flutter/flutter#174066)
2026-02-10 engine-flutter-autoroll@skia.org Roll Skia from d4b7e24a209b to 6e217430c052 (6 revisions) (flutter/flutter#182126)
2026-02-09 15619084+vashworth@users.noreply.github.com Intercept UIScene device log and print a guided warning (flutter/flutter#181515)
2026-02-09 47866232+chunhtai@users.noreply.github.com Introduce ScrollCacheExtent and also fixes unbound shrinkwrap cache ex… (flutter/flutter#181092)
2026-02-09 43054281+camsim99@users.noreply.github.com [Android] Add mechanism for setting Android engine flags via Android manifest (take 2) (flutter/flutter#181632)
2026-02-09 116356835+AbdeMohlbi@users.noreply.github.com Fix wrong comment about default impeller value (flutter/flutter#181831)
2026-02-09 huqian123hq@hotmail.com fix build fail for wayland only platform (flutter/flutter#182057)
2026-02-09 jesswon@google.com [AGP 9] Added Warning Against Updating to AGP 9 (flutter/flutter#181977)
2026-02-09 30870216+gaaclarke@users.noreply.github.com Updated Shaderc dep (flutter/flutter#180976)
2026-02-09 47866232+chunhtai@users.noreply.github.com Refactor accessibility guidelines out to widget layer (flutter/flutter#181672)
2026-02-09 engine-flutter-autoroll@skia.org Roll Skia from 68dff53238e5 to d4b7e24a209b (2 revisions) (flutter/flutter#182087)
2026-02-09 ikramhasan.dev@gmail.com fix: OutlineInputBorder not respecting BorderSide stroke alignment (flutter/flutter#180487)
2026-02-09 97480502+b-luk@users.noreply.github.com Adds opengles to engine dart tests (flutter/flutter#181933)
2026-02-09 15619084+vashworth@users.noreply.github.com Add command to build a Swift Package for Add to App and generate FlutterPluginRegistrant (flutter/flutter#181224)
2026-02-09 116356835+AbdeMohlbi@users.noreply.github.com Remove unused constant in `bundle.dart` (flutter/flutter#182023)
2026-02-09 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from iqtwdXlgKIyZkL5Li... to 7BGf7mPQvgLi7Axb6... (flutter/flutter#182082)
2026-02-09 116356835+AbdeMohlbi@users.noreply.github.com Remove unused getters in `user_messages.dart` (flutter/flutter#181867)
2026-02-09 engine-flutter-autoroll@skia.org Roll Packages from 7805d3e to 3d5eaa5 (3 revisions) (flutter/flutter#182083)
2026-02-09 engine-flutter-autoroll@skia.org Roll Skia from 5d891cd7fb7f to 68dff53238e5 (1 revision) (flutter/flutter#182080)
2026-02-09 robert.ancell@canonical.com Update example description (flutter/flutter#182067)
2026-02-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 965b51c219d3 to eee0e2e11174 (1 revision) (flutter/flutter#182073)
2026-02-09 engine-flutter-autoroll@skia.org Roll Skia from 9533d7533d59 to 5d891cd7fb7f (6 revisions) (flutter/flutter#182070)
2026-02-09 jwren@google.com Add a new flutter cli command, running-apps, using mDNS app discovery (flutter/flutter#180098)
2026-02-09 engine-flutter-autoroll@skia.org Roll Skia from b7db9f35f0f2 to 9533d7533d59 (2 revisions) (flutter/flutter#182069)
2026-02-08 robert.ancell@canonical.com Improve FlWindowMonitor API (flutter/flutter#181885)

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 boetger@google.com,stuartmorgan@google.com 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

...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engine flutter/engine related. See also e: labels. platform-android Android applications specifically team-android Owned by Android platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[a11y][Android] Checkbox and Switch state changes are not announced on Android 16 (SDK 36)

2 participants