Reveal act I — transparent variant entrance #104
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Accessibility (Axe-core) | |
| # Runs Axe-core a11y rules against the Vue v2.3.4 demo via Playwright. | |
| # Catches WCAG 2.1 violations in the rendered chrome that the unit | |
| # tests can't see — colour contrast, ARIA hierarchy, focus order, | |
| # keyboard reachability. | |
| # | |
| # Strict gate as of v3.0.0-alpha.17. | |
| # | |
| # The alpha.16 strict-mode promotion attempt surfaced 2 real violations | |
| # that continue-on-error had been masking since alpha.12. Triage: | |
| # - `tests/visual/a11y.spec.ts:38` selector — actually matches | |
| # `<section class="section variants" id="variants">` correctly; | |
| # the test was failing because the scan that followed crashed, | |
| # not the locator itself. | |
| # - WCAG 2.1 AA violation — root cause was | |
| # `--pg-text-low: rgba(255, 255, 255, 0.45)` rendering at #767678 | |
| # against #05050a, contrast ratio 4.48 (needs 4.5). Bumped to 0.55 | |
| # in alpha.17 → contrast ~5.1, comfortably above. Tiny visual diff | |
| # (low-emphasis caption text marginally more legible). | |
| # | |
| # After the fix, both tests pass locally (2/2). Promoted to strict | |
| # — any new WCAG 2.1 AA violation now fails the build. | |
| on: | |
| push: | |
| branches: [main, 'feat/**'] | |
| pull_request: | |
| branches: [main, 'feat/**'] | |
| concurrency: | |
| group: a11y-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| axe: | |
| name: Axe-core scan (Vue v2.3.4 demo) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node 20 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 20 | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci --no-audit --prefer-offline | |
| - name: Install Playwright browsers | |
| run: npx playwright install chromium --with-deps | |
| - name: Run Axe-core scan | |
| run: npm run test:a11y | |
| - name: Upload Axe-core report on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: axe-report | |
| path: a11y-report/ | |
| retention-days: 7 |