attest_flutter
Flutter widget-test integration for attest: a WidgetTester accessibility audit, raster and text-scale collectors, and gate matchers for CI.
1.5.0
sahland/attest
What this package is like to depend on
Last release 1 months ago
17 Jul 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 10 of 10 stable releases
Nothing withdrawn
no release was ever pulled
1 months old
10 releases · first in 2026
10 releases in the last 12 months
see the full history below
Release timeline
10 releases · Jul 2026 to Jul 2026Releases
latest 10-
1.5.017 Jul 2026Release notes
Open source →Changed
- The contrast raster pass is substantially faster on busy screens. The background scan now reads packed pixels straight from the buffer instead of allocating an object per pixel, and it subsamples large text boxes with a stride — the background is taken as the mode, which a uniform stride over a solid field leaves unchanged. On a 240-node screen collection dropped from ~145 ms to ~40 ms (the pixel scan itself ~13× faster; the remaining cost is the fixed rasterization). Measured ratios are unchanged: the reference pairs still validate, and a new test pins that a box far larger than the sampling cap yields the same contrast. No API change.
-
1.4.015 Jul 2026Release notes
Open source →Added
- The gate-failure output now prints a finding's
codeExample— a ready-to-paste// Before/// Aftersnippet — indented under the fix, so the remedy is right there in the failing test. Requiresattest1.10.0.
- The gate-failure output now prints a finding's
-
1.2.214 Jul 2026Release notes
Open source →tester.auditAccessibility works unchanged on a live binding, so the rendered
app can be audited on a device or desktop — catching native-semantics and
platform-channel differences a widget test cannot, with real input focus
present. A runnable example lands at example/integration_test, and the
attest_flutter README gains an on-device section with the honest caveats:
contrast needs a debug build, and the text-scale overflow pass relies on a
test-only re-pump, so start with textScales [1.0] on a live binding.attest_flutter 1.2.2 (docs + example only); core and CLI are unchanged.
Release notes
Open source →Added
- Documented auditing on a device with
integration_test:auditAccessibilityworks unchanged on a live binding, so the rendered app can be audited on a device or desktop (native semantics, real focus). A runnable example lives atexample/integration_test. Contrast needs a debug build; the overflow pass relies on a test-only re-pump, so start withtextScales: [1.0]on device.
- Documented auditing on a device with
-
1.2.105 Jul 2026Release notes
Open source →Changed
- Require
attest1.7.0 forFlowAnalysis, which diffsauditFlowreports to show which step introduced a barrier; documented in the flow section.
- Require
-
1.2.005 Jul 2026Release notes
Open source →Added
tester.auditFlow(...)andAuditStep: audit across interactions, not just one static screen. It drives a scripted flow (tap, scroll, navigate) and re-audits after each step, catching barriers that only appear in motion — an unlabeled control in a dialog, semantics that break on a state change, a focus trap that only exists post-navigation. Returns one labelled report per step. Experimental; the flow API will grow.
-
1.1.205 Jul 2026Release notes
Open source →Changed
- Require
attest1.6.0, which adds theattest/generic-link-textrule (WCAG 2.4.4): links with vague text like "read more" are now flagged. No API change in this package.
- Require
-
1.1.105 Jul 2026Release notes
Open source →Changed
- Require
attest1.5.0, which adds theattest/adjustable-valuerule (WCAG 4.1.2): sliders and steppers that expose no current value are now flagged. No API change in this package.
- Require
-
1.1.002 Jul 2026Release notes
Open source →Added
- The raster collector detects icon glyphs (Private Use Area code points) and
marks their samples as non-text, so the new
attest/non-text-contrastrule (WCAG 1.4.11) can hold them to the 3:1 minimum. Requiresattest1.1.0.
Fixed
- A small icon whose contrast is between 3:1 and 4.5:1 is no longer flagged as a text-contrast failure.
- The raster collector detects icon glyphs (Private Use Area code points) and
marks their samples as non-text, so the new
-
1.0.002 Jul 2026Release notes
Open source →First stable release. Requires
attest1.0.0.Added
- The snapshot builder captures the developer-assigned
SemanticsProperties.identifier, and the raster collector attaches the nearest semantics identifier to each contrast sample, so findings can be anchored to an authored, stable id. - Reference validation of the measurement paths: the contrast pipeline is checked end to end against a table of known colour pairs (within 0.1 of independently computed WCAG ratios), gradient and disabled-control abstention are pinned by test, and the overflow fixture is proven to fit at text scale 1.0 and overflow at 2.0.
Changed
- The public API is frozen for 1.0:
auditAccessibility, the gate matchers and the re-exported core are stable within a major. The plumbing classes (SemanticsSnapshotBuilder,RasterCollector,TextScaleCollector) are annotated@experimental— ordinary tests never need them directly, and their signatures may still evolve forintegration_testsupport. - Stated the version-support policy: Flutter ≥ 3.32 is a hard floor (the
tri-state
flagsCollectionsemantics API), with the current and previous three stable Flutter releases supported and each new stable tracked within one release cycle.
- The snapshot builder captures the developer-assigned
-
0.9.001 Jul 2026