spaxel/dashboard
jedarden 6951ff1d00 feat(dashboard): add axe-core accessibility CI gate for all dashboard pages
Add @axe-core/playwright with Playwright test runner that asserts zero
WCAG 2A/2AA violations across index, live, fleet, setup, and
integrations pages. Fix contrast violations on integrations page: use
darker blue for primary buttons, lighter text for descriptions/hints,
and add body-level dark background in layout.css.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 18:31:17 -04:00
..
css feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
js feat(dashboard): implement tap-to-jump time-travel coordination 2026-04-24 18:14:51 -04:00
node_modules feat: implement repeated-setting change detection with guided calibration 2026-04-11 00:18:19 -04:00
tests feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
ambient.html style(dashboard): replace remaining hardcoded colors with design tokens 2026-04-24 15:14:40 -04:00
fleet.html style(dashboard): replace remaining hardcoded colors with design tokens 2026-04-24 15:14:40 -04:00
help_articles.json feat: implement contextual help system with searchable overlay 2026-04-11 00:44:54 -04:00
index.html feat(dashboard): restructure home page as status headline + 3 cards 2026-04-24 09:07:43 -04:00
integrations.html fix(dashboard): add viewport-fit=cover and apple mobile meta tags to integrations page 2026-04-24 17:12:27 -04:00
jest.config.js feat: implement spatial quick actions context menu for 3D scene 2026-04-10 22:56:17 -04:00
live.html fix(dashboard): repair CSS syntax errors and complete token migration 2026-04-24 16:57:32 -04:00
package-lock.json feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
package.json feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
playwright.config.js feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
README.md feat(dashboard): add axe-core accessibility CI gate for all dashboard pages 2026-04-24 18:31:17 -04:00
setup.html refactor(dashboard): consolidate overlay/panel positioning into layout.css 2026-04-24 16:39:53 -04:00
simple.html style(dashboard): extract inline styles to tokenized CSS files 2026-04-24 15:47:33 -04:00

Spaxel Dashboard

Running Tests

Unit Tests (Jest)

npm test

Accessibility Tests (axe-core + Playwright)

# First-time setup: install browsers
npx playwright install --with-deps chromium

# Run accessibility gate
npm run test:a11y

The accessibility test loads each dashboard page (index, live, fleet, setup, integrations) via a local static server and asserts zero WCAG 2A/2AA violations using @axe-core/playwright. CI fails the build if any violation is introduced.

CI Integration (Argo Workflows)

Add the following step to the spaxel-build WorkflowTemplate before the container build:

- name: a11y-gate
  container:
    image: node:20-bookworm-slim
    command: [sh, -c]
    args:
      - |
        cd dashboard
        npm ci
        npx playwright install --with-deps chromium
        npm run test:a11y
    resources:
      limits:
        memory: 512Mi
        cpu: "1"