Repository navigation
Infrastructure: Add native accessibility assertions and Storybook test support #4255
Description
Goal
Deliver portable native accessibility assertion support and component-authored Storybook tests. Parent: #4275.
Status - 2026-10-01
Completed assertion-foundation milestone. Full cohort conformance, reporting, and authoritative qualification are preserved in #4343. Native state-projection gaps are tracked separately in #4346. Closing this delivered foundation does not certify the original full accessibility cohort.
Delivered
- PR Infrastructure: add native desktop driver providers #4306 added source-built macOS AX and Windows/Win32 UIA providers with normalized role, accessible-name, state, text, value, and focus lookup/assertion support.
- PR Add wdio test support in stories #4313 delivered typed, named executable
wdiocallbacks, source-digest verification, per-case worker/session isolation, and integration with the owned native smoke lifecycle. - PR Fix desktop focus management and accessibility action handling #4314 expanded real native focus, state, disabled-stop, activation, Input, Switch, TabList, and FocusZone coverage; it also repaired macOS modifier handling and CI Keyboard navigation setup.
- Current main discovers 29 cases across 17 stories and ten component/primitive families on each endpoint, rather than only the original Button/Checkbox/Input static-plan foundation.
- Capability and native-state limitations have explicit skip reasons rather than synthetic attribute passes.
The supported contract is named WDIO callbacks and portable native assertions. The old expectRole/expectName action spellings, XCUI numeric-role proposal, Appium backend, and parameters.desktopTest draft are superseded.
Evidence boundary
PR #4314 records an interactive macOS run with 20 passes and two native AX-state skips at its tested revision. The newer October 1 CI run selects 29 cases per endpoint and records 7 passes / 22 skips in each hosted lane.
Those are scoped execution results, not proof that every selected case is accessibility coverage or that missing hosted input has been qualified.
Follow-up
- Infrastructure: Complete portable Storybook accessibility coverage and reporting #4343: complete Button/Checkbox/Radio/Switch/Tag/Tab/Accordion plus a negative Divider fixture; deterministic accessible names, normalized roles, real positive/negative keyboard reachability, Switch mapping, observed-attribute summaries/counters, and authoritative native runs.
- Infrastructure: Fix native accessibility-state projection gaps on macOS and Win32 #4346: resolve documented macOS disabled/selected AX projection and Win32 Input enabled-state gaps; remove skips only after native proof.
- Infrastructure: Restore Storybook stories excluded by native desktop crashes #4344: restore stories excluded by native host crashes.
- Infrastructure: Qualify and require native Storybook CI coverage #4349: required native coverage, runner authority, and CI policy.
Package-level prop tests/conformance remain with #4216/#4214. Native attribute reads do not claim VoiceOver/NVDA or actual assistive-action dispatch qualification.
Activity
[-]Add accessibility assertions to Storybook story tests[/-][+]Infrastructure: Add accessibility assertions to Storybook story tests[/+]JasonVMo commentedon Sep 3, 2026
Status update - 2026-09-03
PR #4306 completed the native accessibility foundation: the macOS and shared
Windows/Win32 providers expose normalized accessibility snapshots and support
portable role, accessible-name, state, text, and value lookup/assertion paths.
stories-and-testsnow executes component-authored plans through those nativeproviders. Button, Checkbox, and Input currently provide the first role,
state, focus, and value plans.
The merged V1 schema uses generic
{ expect: { state, target, value } }steps rather than the issue's earlierproposed
expectRole/expectNameaction spellings; acceptance should be judgedby the portable behavior, not those obsolete draft names.
Remaining: expand beyond the three-story cohort, add deterministic
accessible-name and positive/negative keyboard-reachability coverage, verify
the switch mapping, add accessibility-specific result summaries, and run the
full initial cohort on authoritative interactive Windows and managed macOS
environments. Hosted capability skips are coverage information, not completion.
[-]Infrastructure: Add accessibility assertions to Storybook story tests[/-][+]Infrastructure: Add native accessibility assertions and Storybook test support[/+]JasonVMo commentedon Oct 1, 2026
The native assertion and authored-test foundation is delivered by #4306/#4313/#4314. Closing the delivery milestone, not claiming full conformance: complete cohort/reporting/qualification remains #4343 and native accessibility-state projection gaps are tracked in #4346.