Conversation
Expose Flutter's Semantics.identifier so native accessibility tools and widget tests can match a stable ID (Android resource-id, iOS accessibilityIdentifier) instead of visible labels. Co-authored-by: Corey McCrea <mccre110@users.noreply.github.com>
Co-authored-by: Corey McCrea <mccre110@users.noreply.github.com>
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Flet's
Semanticscontrol had noidentifierproperty, so Flutter 3.19+resource-id/accessibilityIdentifiertreatment was unavailable. Tests and native automation had to match on labels (or on widgetkeys, which never appear in the native accessibility tree).This adds:
Semantics.identifier— maps to Flutter'sSemantics.identifierTester.find_by_semantics_identifier()(host + remote tester)Setting
identifierimplicitly creates a dedicated semantics node (equivalent tocontainer=True), matching Flutter.find_by_keyremains the right default for Flet's own integration tests. Identifier is the right tool when you need a native accessibility ID, a match that survives copy/i18n changes, or one ID shared by widget tests and Appium/XCUITest/UIAutomator.Test code
Type of change
Checklist
website/sidebars.ymlfor breaking changes, removals, and deprecations, if applicable.Screenshots
N/A — API / testing change; no visual UI change.
Additional details
Python unit tests for
Semantics.identifierpass (pytest packages/flet/tests/test_semantics.py). Integration coverage is intest_finders.pyandtest_semantics_isolated.py.Summary by Sourcery
Add stable semantics identifiers and tester finders for reliable widget and native accessibility automation.
New Features:
Enhancements:
Documentation:
Tests:
Chores: