Skip to content

Reveal act I — transparent variant entrance #104

Reveal act I — transparent variant entrance

Reveal act I — transparent variant entrance #104

Workflow file for this run

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