-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Expose Semantics.identifier as Windows UIA AutomationId #161955
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
Expose Semantics.identifier as Windows UIA AutomationId #161955
Conversation
|
Hi @loic-peron-inetum-public , are you still working on this pr? |
Yes I am, but I have difficulties to find a Mac to fix the problems it created with the macOS desktop target, as well as time to work on the subject due to other pressing deadline. The windows desktop changes have not been altered since last summer, and are used internally to automate tests on the project. They still seem to fulfill the intended purpose. I intend to fix the tests as soon as possible, but I cannot make any promise. Some concerns have been raised with enabling UIA support (flutter/engine#53476 (comment)). I have not been able to treat that and would need some guidance on this specific matter, as UIA seems mandatory for this feature: I have not been able to have AutomationId exposed without enabling UIA. |
|
I've converted this into a draft while it's still a work in progress. Feel free to mark this as ready for review once you're ready! :) |
677567b to
d24a19e
Compare
8ac9c57 to
e037856
Compare
|
@loic-peron-inetum-public Hi, any update on this, as we also require the AutomationID. |
|
@pgn001 |
ab142ac to
8d7525c
Compare
I have updated the PR and removed the draft marker, and would like to have reviews from Flutter project members on this proposal. |
engine/src/flutter/shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm
Outdated
Show resolved
Hide resolved
engine/src/flutter/shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm
Outdated
Show resolved
Hide resolved
engine/src/flutter/shell/platform/windows/flutter_platform_node_delegate_windows.h
Outdated
Show resolved
Hide resolved
|
This pull request executed golden file tests, but it has not been updated in a while (20+ days). Test results from Gold expire after as many days, so this pull request will need to be updated with a fresh commit in order to get results from Gold. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
64ef5cc to
ec52913
Compare
| } | ||
|
|
||
| // | ||
| // IAccessibleEx implementation. |
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.
Can you split this into two pull requests?
- Add
identifierto Flutter and pipe it to all embedders' accessibility bridge - Update Flutter Windows to implement IAccessibleEx, and use that to implement the
AutomationIdUIA property
I think the first one is very close to landing. However, for the second one I need to some research before I feel comfortable landing it. Since the bulk of the work is in that first pull request, I would land that first without blocking on the second pull request.
|
@loic-peron-inetum-public are you able to split it into 2 PRs as requested by @loic-sharma |
I will make time to rework this PR in September. |
|
converted to draft, feel free to reopen when this is ready |
|
This pull request has been changed to a draft. The currently pending flutter-gold status will not be able to resolve until a new commit is pushed or the change is marked ready for review again. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
2c324dd to
0b592f3
Compare
…icsNode2::identifier
…Bridge::SemanticsNode::identifier
…a::StringAttributes[HtmlId]
…ate::AuthorUniqueId
0b592f3 to
e2788c9
Compare
|
Rebased and added tests. Will split in two PR
|
|
Split in two parts: |
…te::AuthorUniqueId (#175405) 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 - [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.
…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 Semantics.identifier as Windows AutomationId to ease application automation.
see #148763
followup to flutter/engine#53729 and flutter/engine#53476
Pre-launch Checklist
///).