Skip to content

a11y: run axe over Holocene stories in CI (report-only)#3683

Draft
ardiewen wants to merge 1 commit into
mainfrom
a11y/storybook-axe-ci
Draft

a11y: run axe over Holocene stories in CI (report-only)#3683
ardiewen wants to merge 1 commit into
mainfrom
a11y/storybook-axe-ci

Conversation

@ardiewen

Copy link
Copy Markdown
Contributor

Summary

Runs axe over every Holocene story (271) in CI, via the existing stories:test runner (@storybook/addon-a11y + axe-playwright). This catches the per-component structural / name / contrast band that the Svelte compiler gate (#3682) structurally cannot see — the biggest single coverage gain for shift-left a11y, since fixing a primitive cascades to every consumer.

Report-only for now (continue-on-error: true): the baseline isn't clean, so the job surfaces violations in the log without blocking merge. Remove continue-on-error to make it a hard gate once the baseline below is burned down.

Baseline to burn down — 13 failing tests / 6 components

  • vertical-nav (6 stories) — aria-current, aria-required-parent/children, aria-disabled
  • duration-input (2), deployments-compute-badge (2), code-block (With Header), markdown-editor, tab-button
  • Top rules: aria-disabled (29), aria-required-parent/children (8 — often isolated-render artifacts, i.e. a child role rendered without its required parent in the story), aria-current (6), color-contrast (2), label, button-name.

Notes

  • Uses pnpm dlx for the serve tooling (http-server / wait-on / concurrently) to avoid lockfile churn — vendor them as devDeps when flipping to blocking.
  • Runs on every PR (~2–4 min: SB build + axe). Could move to a nightly schedule if per-PR cost is a concern.

🤖 Generated with Claude Code

Adds a Storybook a11y job that runs axe over every story (271) via the
existing `stories:test` runner (@storybook/addon-a11y + axe-playwright),
catching the per-component structural/name/contrast band that the Svelte
compiler gate (#3682) cannot see.

Report-only (`continue-on-error: true`): the current baseline isn't clean
(13 failing tests across 6 components), so the job surfaces violations
without blocking merge. Remove `continue-on-error` to make it a hard gate
once the baseline is burned down.

Uses `pnpm dlx` for the serve tooling (http-server/wait-on/concurrently) to
avoid lockfile churn; vendor as devDeps when flipping to blocking.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
holocene Ready Ready Preview, Comment Jul 16, 2026 7:26pm

Request Review

@github-actions github-actions Bot added a11y Accessibility audit PR a11y:no-fix-doc No A11y-Audit-Ref line; audit team triage labels Jul 16, 2026
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Accessibility triage

No A11y-Audit-Ref: lines found in the PR body. If this PR closes an audit fix doc, add an A11y-Audit-Ref: <slug> line (one per fix doc). If this is a net-new accessibility finding not yet covered by the audit, coordinate with the audit team via #team-feux so they can add a manifest entry.


See DT-4048 for the triage system design.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a11y:no-fix-doc No A11y-Audit-Ref line; audit team triage a11y Accessibility audit PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant