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.
This commit is contained in:
jedarden 2026-07-06 00:32:32 -04:00
parent a7db9314b4
commit de03f33ba5

110
notes/bf-6aif.md Normal file
View file

@ -0,0 +1,110 @@
# 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:**
```yaml
- name: a11y-test
template: a11y-test
continueOn:
failed: true # ❌ This allowed builds to proceed despite violations
```
**After:**
```yaml
- 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
## Related Files
- `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