Repository navigation
test(flutter): add UI adapter and accessibility conformance for a2ui_flutter - #3586
Closed
gspencergoog wants to merge 17 commits into
Closed
gspencergoog wants to merge 17 commits into
gspencergoog wants to merge 17 commits into
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces support for live, hidden, and dynamically bound accessibility attributes in NodeView, and exposes validationResults on ComponentProps to display non-blocking warning helper text in TextField. It also adds a comprehensive adapter conformance test suite. The reviewer feedback suggests retaining explicit type annotations on loop variables within the newly added test file to comply with Dart analyzer lints.
gspencergoog
force-pushed
the
test/flutter-adapter-conformance
branch
from
October 23, 2026 23:56
f2b7622 to
6e8e62e
Compare
gspencergoog
force-pushed
the
test/web-renderers-adapter-conformance
branch
from
October 23, 2026 23:56
cc4abad to
34dd027
Compare
…he schema
From v1.0 the validation functions return a ValidationResult rather than a
boolean, and the specification defines DynamicBoolean as a boolean, a path,
or a call returning a boolean or a validation result object, coerced to its
'valid' boolean. The SDKs applied that coercion only inside and, or and not,
by name, so any other DynamicBoolean argument that resolved to a
ValidationResult was handed to the function as an object, which is truthy
in JavaScript, Python and Dart alike: formatNumber(grouping: required(''))
grouped the digits, and Dart's Catalog.invoke rejected the argument as not
matching DynamicBoolean.
Each core SDK now reads a resolved ValidationResult by its validity wherever
the function's argument schema types the argument as DynamicBoolean, for
v1.0 and later catalogs, whether the function is defined in code or loaded
from a catalog document, and leaves every other value alone. Four
conformance cases in functions.yaml run on a v1.0 surface so the nested
validation call reaches the outer function through the engine.
gspencergoog
force-pushed
the
test/web-renderers-adapter-conformance
branch
from
October 27, 2026 15:58
34dd027 to
d243f7d
Compare
gspencergoog
force-pushed
the
test/flutter-adapter-conformance
branch
from
October 27, 2026 15:58
6e8e62e to
010a25e
Compare
gspencergoog
force-pushed
the
test/web-renderers-adapter-conformance
branch
from
October 27, 2026 16:02
d243f7d to
c9eeac1
Compare
gspencergoog
force-pushed
the
test/flutter-adapter-conformance
branch
from
October 27, 2026 16:02
010a25e to
272ad43
Compare
An optional list[DynamicBoolean] argument was left uncoerced because the item annotation lookup did not look through the Optional. The member check for DynamicBoolean is also bidirectional now, so a union with a repeated member cannot match by length alone.
… conformance parity
… conformance parity
…ter paths, and conformance runners
…n NodeResolver and PayloadValidator
…, and expanded core suites
…, React, and Angular
…d update yarn.lock
gspencergoog
force-pushed
the
test/flutter-adapter-conformance
branch
from
October 27, 2026 16:24
272ad43 to
ad6b9c3
Compare
gspencergoog
force-pushed
the
test/web-renderers-adapter-conformance
branch
from
October 27, 2026 16:24
c9eeac1 to
5fbabe4
Compare
Base automatically changed from
test/web-renderers-adapter-conformance
to
main
October 27, 2026 17:10
Collaborator
Author
|
Consolidated into #3583, which now carries the shared suites and the adapter and accessibility conformance work for all five renderers (web, Flutter, SwiftUI). The commits and the resolved review threads from this PR are preserved there. 🤖 Agent-generated |
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.
Summary
Add declarative UI framework adapter conformance (
conformance/core/adapter_conformance.yaml) and accessibility conformance (conformance/core/accessibility.yaml) coverage fora2ui_flutter(dart/a2ui_flutter).What Changed
component_props.dart,node_view.dart, andcatalog/basic/text_field.dartindart/a2ui_fluttersoValidationResulterrorseverity disables interactive controls whilewarningandinfoseverities display non-blocking feedback without disabling controls, and alignedNodeViewfallback widgets (pending,unknown-type,cyclic) and semantics metadata.yaml: ^3.1.2todev_dependenciesindart/a2ui_flutter/pubspec.yamland createddart/a2ui_flutter/test/adapter_conformance_test.dartexecuting all 6 cases ofconformance/core/accessibility.yamland all 13 cases ofconformance/core/adapter_conformance.yamlagainstA2uiSurface.Testing
cd dart/a2ui_flutter && flutter analyze && flutter test🤖 Agent-generated