-
Notifications
You must be signed in to change notification settings - Fork 29.8k
[Desktop] Propagate SemanticsNode::identifier to AXPlatformNodeDelegate::AuthorUniqueId #175405
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
[Desktop] Propagate SemanticsNode::identifier to AXPlatformNodeDelegate::AuthorUniqueId #175405
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.
Code Review
This pull request correctly propagates the SemanticsNode.identifier from the Flutter framework to the native accessibility tree, exposing it as AuthorUniqueId for UI test automation. The implementation adds the identifier field to the necessary data structures and uses it to set the kHtmlId accessibility attribute, which is appropriate. The associated tests have been updated accordingly. My review includes a couple of suggestions to improve code clarity and maintainability: one to rename a new function for better cross-platform understanding, and another to refactor test code to reduce boilerplate.
engine/src/flutter/shell/platform/common/accessibility_bridge.cc
Outdated
Show resolved
Hide resolved
engine/src/flutter/shell/platform/common/flutter_platform_node_delegate_unittests.cc
Show resolved
Hide resolved
|
@loic-sharma could you review this updated PR ? |
|
@loic-peron-inetum-public Thanks for the contribution! This is looking good. I left some comments, but otherwise this is looking good! cc @chunhtai as I'm less familiar with the |
|
agree with @loic-sharma , we should not use the htmlId since the data doesn't come from a web dom but flutter app |
fd3f374 to
e11faa6
Compare
|
Rebased on master and replaced kHtmlId with kIdentifier. |
chunhtai
left a comment
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.
LGTM! Thanks for the contribution :)
|
Hi @loic-peron-inetum-public can you rebase this pr again to see if it passes ci |
…icsNode2::identifier
…Bridge::SemanticsNode::identifier
…a::StringAttributes[Identifier]
…elegate::AuthorUniqueId
e11faa6 to
78b33e8
Compare
|
Rebased on master. |
…deDelegate::AuthorUniqueId (flutter/flutter#175405)
…deDelegate::AuthorUniqueId (flutter/flutter#175405)
…deDelegate::AuthorUniqueId (flutter/flutter#175405)
…deDelegate::AuthorUniqueId (flutter/flutter#175405)
…deDelegate::AuthorUniqueId (flutter/flutter#175405)
Roll Flutter from 75004a6 to cb18290 (48 revisions) flutter/flutter@75004a6...cb18290 2025-10-24 116356835+AbdeMohlbi@users.noreply.github.com Remove unnecessary `deprecated` withOpacity in `text_button.0.dart` in examples (flutter/flutter#177374) 2025-10-24 engine-flutter-autoroll@skia.org Roll Packages from 9ec29b6 to 53d6138 (3 revisions) (flutter/flutter#177502) 2025-10-24 engine-flutter-autoroll@skia.org Roll Dart SDK from d3248b00f545 to a0480f399f8f (1 revision) (flutter/flutter#177498) 2025-10-24 engine-flutter-autoroll@skia.org Roll Skia from a47931d09585 to 3ed332b77bec (3 revisions) (flutter/flutter#177487) 2025-10-24 jason-simmons@users.noreply.github.com Roll Abseil to Chromium's 5b92b04a2e (based on Abseil commit fc4481e968) (flutter/flutter#177059) 2025-10-24 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Reverts "Enhance PR template with changelog and impact details (#177333)" (#177468)" (flutter/flutter#177499) 2025-10-24 bruno.leroux@gmail.com Document DropdownMenu showTrailingIcon and decorationBuilder interaction (flutter/flutter#177488) 2025-10-24 engine-flutter-autoroll@skia.org Roll Dart SDK from 4a65fb890852 to d3248b00f545 (1 revision) (flutter/flutter#177486) 2025-10-24 huy@nevercode.io Fix bottom sheet Semantics route label for mismatched platforms (flutter/flutter#177094) 2025-10-24 engine-flutter-autoroll@skia.org Roll Skia from eba11de00d5b to a47931d09585 (5 revisions) (flutter/flutter#177481) 2025-10-24 huy@nevercode.io Fix Dialog Semantics label and flags for mismatched platforms (flutter/flutter#176781) 2025-10-24 huy@nevercode.io Fix drawer Semantics for mismatched platforms (flutter/flutter#177095) 2025-10-24 engine-flutter-autoroll@skia.org Roll Dart SDK from f7751ccea102 to 4a65fb890852 (2 revisions) (flutter/flutter#177480) 2025-10-23 jason-simmons@users.noreply.github.com Change the root path of the license crawl to engine/src (flutter/flutter#177352) 2025-10-23 43054281+camsim99@users.noreply.github.com [Material] Change default mouse cursor of buttons to basic arrow instead of click (except on web) (flutter/flutter#171796) 2025-10-23 loic.peron@inetum.com [Desktop] Propagate SemanticsNode::identifier to AXPlatformNodeDelegate::AuthorUniqueId (flutter/flutter#175405) 2025-10-23 engine-flutter-autoroll@skia.org Roll Skia from 59ef57f4104e to eba11de00d5b (5 revisions) (flutter/flutter#177461) 2025-10-23 737941+loic-sharma@users.noreply.github.com Roll customer tests (flutter/flutter#177409) 2025-10-23 1063596+reidbaker@users.noreply.github.com Update CHANGELOG 3.35.7 notes (flutter/flutter#177463) 2025-10-23 fluttergithubbot@gmail.com Marks Mac module_uiscene_test_ios to be unflaky (flutter/flutter#177378) 2025-10-23 31859944+LongCatIsLooong@users.noreply.github.com Allow empty dart defines in `flutter assemble` (flutter/flutter#177198) 2025-10-23 engine-flutter-autoroll@skia.org Roll Packages from d113bbc to 9ec29b6 (12 revisions) (flutter/flutter#177455) 2025-10-23 zhongliu88889@gmail.com Implements engine-side declarative pointer event handling for semantics. (flutter/flutter#176974) 2025-10-23 jason-simmons@users.noreply.github.com Fix the platform name of the windowing_test target for macOS in ci.yaml (flutter/flutter#177472) 2025-10-23 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Enhance PR template with changelog and impact details (#177333)" (flutter/flutter#177468) 2025-10-23 kjlubick@users.noreply.github.com Change Flutter APIs to use spans (flutter/flutter#177272) 2025-10-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 020988602772 to f7751ccea102 (4 revisions) (flutter/flutter#177449) 2025-10-23 matej.knopp@gmail.com [macOS] Implement regular window (flutter/flutter#176361) 2025-10-23 1063596+reidbaker@users.noreply.github.com Enhance PR template with changelog and impact details (flutter/flutter#177333) 2025-10-23 engine-flutter-autoroll@skia.org Roll Skia from 6e6acf6644ef to 59ef57f4104e (2 revisions) (flutter/flutter#177436) 2025-10-23 sokolovskyi.konstantin@gmail.com Add directional static members to AlignmentGeometry. (flutter/flutter#176571) 2025-10-23 engine-flutter-autoroll@skia.org Roll ICU from 1b2e3e8a421e to ff35c4f9df23 (5 revisions) (flutter/flutter#177434) 2025-10-23 goderbauer@google.com Adds a new CI build for Linux host DDM-enabled artifacts (flutter/flutter#177252) 2025-10-23 engine-flutter-autoroll@skia.org Roll Skia from 920cdcadd74c to 6e6acf6644ef (1 revision) (flutter/flutter#177432) 2025-10-23 engine-flutter-autoroll@skia.org Roll Skia from 8cd449e4953b to 920cdcadd74c (6 revisions) (flutter/flutter#177426) 2025-10-23 30870216+gaaclarke@users.noreply.github.com Added ahem license (flutter/flutter#177423) 2025-10-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 75f6ccb9bdc5 to 020988602772 (1 revision) (flutter/flutter#177421) 2025-10-23 1961493+harryterkelsen@users.noreply.github.com [web] Set `pointer-events: none` for img-element-backed images (flutter/flutter#177418) 2025-10-22 jason-simmons@users.noreply.github.com Remove the x64 version of build_ios_framework_module_test (flutter/flutter#177136) 2025-10-22 robert.ancell@canonical.com Fix accessibility events not being correctly translated to ATK (flutter/flutter#176991) 2025-10-22 engine-flutter-autoroll@skia.org Roll Skia from b55bd60ed95b to 8cd449e4953b (8 revisions) (flutter/flutter#177405) 2025-10-22 engine-flutter-autoroll@skia.org Roll Dart SDK from c23010c4f9e6 to 75f6ccb9bdc5 (4 revisions) (flutter/flutter#177399) 2025-10-22 47866232+chunhtai@users.noreply.github.com Fixes crash when adding and removing mulitple page-based route (flutter/flutter#177338) 2025-10-22 61709763+cuteUtya@users.noreply.github.com Move child parameter to end of RefreshIndicator constructor (flutter/flutter#177019) 2025-10-22 34465683+rkishan516@users.noreply.github.com refactor: migrate OpenUpwardsPageTransitionsBuilder to widgets (flutter/flutter#177080) 2025-10-22 1961493+harryterkelsen@users.noreply.github.com Delete stray 'text' file (flutter/flutter#177355) ...
|
Hi these changes are not working for macos and linux flutter apps, can you please suggest a workaround? |
What is not working ? Has something been broken on these platforms ? |
accessibility inspector still shows the main window only when inspected in mac, even after adding the semantics |
This is expected. This PR only propagates the semantics identifier to the cross-platform AXPlatformNodeDelegate. Native work needs to be done to expose the value through each native accessibility framework. See #175406 for Windows. Additional contributions are needed for Linux and macOS, but are not in my scope. |
Thanks alot for the details, any ETA for [#175406] to be merged to master? |
…te::AuthorUniqueId (flutter#175405) Expose flutter Semantics.identifier as AXPlatformNodeDelegate::AuthorUniqueId. To be used for UI test automation through Windows AutomationId. see flutter#148763 followup to flutter#161955 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing.
Expose flutter Semantics.identifier as AXPlatformNodeDelegate::AuthorUniqueId.
To be used for UI test automation through Windows AutomationId.
see #148763
followup to #161955
Pre-launch Checklist
///).