Add reproducible browser and accessibility gates

This commit is contained in:
ms2k 2026-07-20 05:02:08 +09:00
commit 9ad8d27adf

View file

@ -27,6 +27,32 @@ same-origin credentials, encoding, binary bodies, response headers, declared
and undeclared failures, network failures, and the no-automatic-retry policy.
`make check-product` runs this gate before its kind product lane.
## Browser behavior and accessibility
`make check-browser` runs the browser unit and component tests, strict
TypeScript and Svelte diagnostics, the production Vite build, and one
Playwright journey against compiled assets served by the real Haskell
application. The reference lane uses Redis, Keycloak, and Garage from the
isolated kind fixture.
Vitest 4.1.10 with Testing Library owns component behavior. Playwright 1.61.1
with Chromium and axe-core 4.12.1 owns rendered accessibility and critical
product journeys. The browser runner installs the Chromium revision selected
by the pinned Playwright package before creating the fixture; the host
provides Playwright's supported Linux shared libraries. The browser gate
covers authenticated startup, active-root state, keyboard operation,
browsing, bounded partial search, upload failure and retry, worker-backed
upload, download, single-delete focus recovery, persisted recursive-delete
recovery, logout, and production asset loading. Accessibility checks cover
programmatic names, roles, states, focus, keyboard operation, and serious or
critical axe findings, including rendered color contrast.
Playwright retains traces, screenshots, and video for failures under
`web/test-results/`; its HTML report is written under `web/playwright-report/`.
Both directories are disposable and ignored. The fixture authentication file
contains only synthetic credentials, is mode-restricted, and is removed by
the runner.
## Model correspondence
`make check-model-correspondence` runs before the kind protocol-conformance