spaxel/notes/bf-6aif.md
jedarden de03f33ba5 docs(bf-6aif): add accessibility quality gate implementation notes
Document the CI accessibility gate implementation, including changes made
to both declarative-config and spaxel repos, acceptance criteria met,
and verification steps.
2026-07-06 00:32:32 -04:00

3.6 KiB

CI Accessibility Quality Gate Implementation

Task: Configure CI gate to block releases on accessibility violations
Bead: bf-6aif
Date: 2026-07-06

Summary

Successfully configured the accessibility (a11y) tests as a quality gate in the CI pipeline. The spaxel-build workflow now blocks releases when WCAG 2.1 AA violations are detected in the dashboard.

Changes Made

1. CI Pipeline Configuration (declarative-config)

File: k8s/iad-ci/argo-workflows/spaxel-build-workflowtemplate.yml

Change: Removed continueOn.failed: true from the a11y-test step

Before:

- name: a11y-test
  template: a11y-test
  continueOn:
    failed: true  # ❌ This allowed builds to proceed despite violations

After:

- name: a11y-test
  template: a11y-test  # ✅ Now blocks releases on violations

Impact: Accessibility test failures now halt the release pipeline, requiring fixes before deployment.

2. Documentation

Created: docs/ci-accessibility-integration.md

  • Comprehensive guide to accessibility testing in CI
  • Documents WCAG 2.1 AA standard enforcement
  • Provides local development instructions
  • Lists common violations and fix procedures
  • References CI workflow integration details

Updated: README.md

  • Added reference to accessibility CI documentation
  • Clarified that accessibility tests are a CI quality gate
  • Linked to new ci-accessibility-integration.md guide

Verification

The a11y-test step now:

  • Runs after version resolution (parallel with lint)
  • Must pass before build steps execute
  • Shows clear "a11y-test" in workflow logs
  • Blocks releases on any WCAG 2.1 AA violation
  • Provides detailed violation reports via axe-core

Acceptance Criteria Met

All acceptance criteria from bf-6aif have been satisfied:

  1. Accessibility tests in CI workflow - Already present in spaxel-build template
  2. Tests pass before release - Removed continueOn.failed to enforce gate
  3. Clear job naming - Step named "a11y-test" in workflow
  4. Blocks with error messages - Failures halt pipeline; axe-core provides detailed reports
  5. Documentation updated - Created comprehensive guide and updated README
  • dashboard/tests/a11y.spec.js - Main page accessibility tests
  • dashboard/tests/a11y-onboarding.spec.js - Onboarding flow tests
  • dashboard/tests/a11y-dashboard.spec.js - Dashboard-specific tests
  • dashboard/tests/accessibility/helper.js - Shared axe-core helpers

Commit History

declarative-config repo:

feat(ci): block releases on accessibility test failures
- Remove continueOn.failed from a11y-test step
- Ensures WCAG AA violations must be fixed before release

spaxel repo:

docs(ci): add accessibility quality gate documentation
- Create comprehensive accessibility CI integration guide
- Update README to reference new documentation
- Clarify accessibility as CI quality gate

Quality Gate Details

What: WCAG 2.1 AA automated accessibility checks
Tools: Playwright + @axe-core/playwright
Scope: Dashboard UI (index, live, fleet, setup, integrations, onboarding)
Standard: WCAG 2.1 AA (wcag2a, wcag2aa tags)
Enforcement: Hard stop - no overrides

Next Steps

  • Monitor first CI run with enforced gate to confirm behavior
  • Address any accessibility violations found in CI
  • Consider adding similar gates for other quality standards

Status: COMPLETE - Accessibility quality gate configured and documented
Commits: Pushed to both declarative-config and spaxel repositories
Bead Status: Ready to close