Repository navigation
Infrastructure: Complete portable Storybook accessibility coverage and reporting #4343
Description
Goal
Complete the portable native accessibility cohort, qualification, and reporting above the assertion foundation delivered by #4255. Parent: #4275.
Status - 2026-10-01
Open; assertion support and a broader behavioral suite are implemented, full conformance is not.
Native providers normalize role/name/state/text/value; catalog tests now use top-level named WDIO callbacks, not the obsolete parameters.desktopTest proposal. Merged PRs #4306, #4313, and #4314 provide real native role/state/focus and interaction assertions.
Current main discovers 29 cases across 17 stories and ten component/primitive families on each endpoint. That is not 29 accessibility-conformance cases: some test motion/layout, many require unavailable hosted input, and Radio/Tag/Accordion/standalone Tab plus the negative Divider case are not a complete authored accessibility cohort.
The active WDIO run.json contains per-case status/error/skip data, but no dedicated role/name/reachability counters or observed-primary-element summary.
Remaining scope and acceptance criteria
- Complete the initial Button, Checkbox, Radio, Switch, Tag, Tab, and Accordion cohort, plus Divider or another documented noninteractive negative fixture.
- Each applicable case asserts a deterministic accessible name, normalized role, relevant native state/value, and positive or negative keyboard reachability.
- Reachability proves bounded real Tab navigation where required; an enabled flag, programmatic focus, or component-owned state is not substituted for actual keyboard/native accessibility evidence.
- Test both label-prop names and deterministic visible-label fallback; intentional name/role mismatches fail clearly in portable contract tests.
- Verify and document the Switch role mapping against the actual native Windows/Win32/macOS control representations. Keep normalization in the provider boundary rather than platform-native literals in shared assertions.
- Add versioned accessibility reporting with passed/failed/skipped role/name/reachability counts, observed native attributes, and actionable unsupported-state diagnostics.
- Run the complete cohort on authoritative interactive Windows and managed macOS endpoints, publishing exact runtime/helper/manifest identities and results. Qualify Win32 separately where its provider/control behavior differs.
- Resolve or explicitly track native disabled/selected/enabled-state projection gaps; behavioral callbacks and focus exclusion must not be claimed as AX/UIA state passes.
- Required coverage excludes quarantine and capability skips. Preserve explicit reasoned exclusions until the native catalog crashes are fixed.
- Public type/report changes have compatibility tests, documentation, appropriate changesets, and the owning package/root validation.
Scope boundary
This issue owns native-tree assertions, their cohort, and reports. Component prop-propagation/unit coverage and the package-wide conformance registry remain with #4216/#4214. Manual VoiceOver/NVDA validation is separate; do not claim it from UIA/AX assertions.
Evidence
- Native assertion/test integration
- Current WDIO result implementation
- Merged focus and accessibility evidence/limits
- Focus qualification and renderer gaps
- Delivered milestone: Infrastructure: Add native accessibility assertions and Storybook test support #4255. Coordinate Infrastructure: Qualify and require native Storybook CI coverage #4349 for authoritative required CI, Infrastructure: Fix native accessibility-state projection gaps on macOS and Win32 #4346 for native state projection, Infrastructure: Restore Storybook stories excluded by native desktop crashes #4344 for catalog crashes, and Infrastructure: Restore Windows Storybook focus-regression parity #4347 for historical focus parity.
Activity