Skip to content

ci(atomic): add weekly a11y scan workflow#7117

Draft
y-lakhdar wants to merge 26 commits intofeat/a11y-merge-shardsfrom
feat/a11y-ci-integration
Draft

ci(atomic): add weekly a11y scan workflow#7117
y-lakhdar wants to merge 26 commits intofeat/a11y-merge-shardsfrom
feat/a11y-ci-integration

Conversation

@y-lakhdar
Copy link
Contributor

@y-lakhdar y-lakhdar commented Feb 13, 2026

Summary

Adds CI integration for the @coveo/atomic-a11y package — the final PR in the a11y chain.

What's included

  • Weekly A11y Scan Workflow (a11y-weekly-scan.yml): A scheduled workflow that runs every Monday at 9 AM UTC on main, executing the full Storybook a11y test suite and uploading the report as an artifact with 30-day retention.

How it works

The existing storybook-atomic CI job (from main) already runs test:storybook, which — thanks to the VitestA11yReporter wired in PR #7126 — automatically generates the a11y report. This PR adds a dedicated weekly scan for tracking a11y compliance trends over time.

PR Chain (7 of 7)

main
 └── #7111 feat/a11y-package-scaffold
      └── #7122 feat/a11y-shared-foundation
           └── #7123 feat/a11y-reporter
                └── #7124 feat/a11y-openacr
                     └── #7125 feat/a11y-scripts
                          └── #7126 feat/a11y-reporter-wiring
                               └── #7117 feat/a11y-ci-integration ← this PR

How to verify

# Check the workflow file is valid YAML
cat .github/workflows/a11y-weekly-scan.yml

# The workflow can be triggered manually via GitHub Actions UI
# (workflow_dispatch is enabled)

Related

@y-lakhdar y-lakhdar changed the base branch from master to feat/a11y-reporter-and-scripts February 13, 2026 22:59
@y-lakhdar y-lakhdar force-pushed the feat/a11y-reporter-and-scripts branch from 347ae6f to dca717d Compare February 13, 2026 23:09
@y-lakhdar y-lakhdar added the a11y Accessibility issues label Feb 13, 2026
- Add VitestA11yReporter class for collecting axe-core results during vitest runs
- Add reporter-utils.ts with shard resolution, component extraction, error processing
- Add axe-integration.ts with axe-core type guards and WCAG tag parsing
- Add merge-shards.ts for combining sharded a11y reports
- Add unit tests for reporter (9 tests) and merge-shards (3 tests)
- Update index.ts with reporter exports
- Add test and a11y:merge-shards scripts to package.json
- Add src/openacr/types.ts with OpenACR interfaces and conformance mappings
- Add src/openacr/overrides.ts for loading override configuration
- Add src/openacr/manual-audit.ts for manual audit baseline parsing and resolution
- Add src/openacr/conformance.ts for multi-source conformance calculation
- Add src/openacr/report-builder.ts for building OpenACR report structure
- Add src/openacr/yaml-serializer.ts with hand-rolled YAML serializer (no deps)
- Add src/reporter/json-to-openacr.ts as slim CLI orchestrator (137 lines)
- Add unit tests for json-to-openacr (7 tests)
- Update index.ts with OpenACR exports
- Add a11y:vpat script to package.json
- Add scripts/ai-wcag-audit.ts for LLM-powered WCAG compliance auditing
- Add scripts/generate-a11y-issues.ts for generating GitHub issues from reports
- Add scripts/manual-audit-delta.ts for computing manual audit deltas
- Add scripts/vpat-from-openacr.handlebars template for VPAT generation
- Add a11y-overrides.json for per-criterion conformance overrides
- Add reports/deltas/ directory with example delta file
@y-lakhdar y-lakhdar changed the base branch from feat/a11y-reporter-and-scripts to feat/a11y-scripts February 16, 2026 16:06
@y-lakhdar y-lakhdar force-pushed the feat/a11y-ci-integration branch from aeb2820 to daef522 Compare February 16, 2026 16:10
Add @coveo/atomic-a11y as a dev dependency and configure VitestA11yReporter
as a reporter in the storybook vitest project. When test:storybook runs,
the reporter captures axe-core a11y results from each story test and writes
an aggregated JSON report to packages/atomic-a11y/reports/a11y-report.json.
- Create weekly a11y scan workflow (runs Mondays at 9 AM UTC)
- Runs Storybook a11y tests on main and uploads report artifact
- Supports manual triggering via workflow_dispatch
@y-lakhdar y-lakhdar force-pushed the feat/a11y-ci-integration branch from daef522 to 6e433b2 Compare February 16, 2026 17:17
@y-lakhdar y-lakhdar changed the base branch from feat/a11y-scripts to feat/a11y-reporter-wiring February 16, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant