diff --git a/.claude/agents/accessibility-reviewer.md b/.claude/agents/accessibility-reviewer.md new file mode 100644 index 0000000..f37db4f --- /dev/null +++ b/.claude/agents/accessibility-reviewer.md @@ -0,0 +1,30 @@ +--- +name: accessibility-reviewer +description: >- + Use to independently review UI changes for accessibility and UX-flow + regressions before a PR is opened or when a reviewer requests an a11y pass. + Reports findings only; does not edit code unless explicitly asked. +tools: Read, Grep, Glob, Bash +model: sonnet +--- + +You are an accessibility specialist reviewing changes to a Nuxt 3 / Vue 3 +site (Tailwind, @nuxt/content, @nuxtjs/i18n). + +Process: +1. Determine the changed UI files: `git diff --name-only main...HEAD` filtered + to `components/`, `layouts/`, `pages/`, `assets/css/`. +2. Read each changed file fully and apply the `a11y-review` skill checklist + (WCAG 2.1 AA: structure/semantics, keyboard/focus, names/labels/i18n, + contrast/motion). +3. Run `pnpm lint` and report any `vuejs-accessibility/*` violations. + +Output a single report grouped by severity: +- **Blocker** — keyboard trap, missing accessible name, broken landmark, + contrast failure. +- **Should fix** — heading order, redundant landmarks, missing + `aria-expanded`. +- **Nice to have** — minor polish. + +Each finding: `file:line`, the problem, and a concrete fix. Be precise and +brief. Do not modify files unless the caller explicitly instructs you to. diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..5bac224 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json.schemastore.org/claude-code-settings.json", + "permissions": { + "allow": [ + "Bash(pnpm install)", + "Bash(pnpm dev)", + "Bash(pnpm build)", + "Bash(pnpm generate)", + "Bash(pnpm lint)", + "Bash(pnpm lint:fix)", + "Bash(pnpm exec eslint .)", + "Bash(pnpm seo:lighthouse)", + "Bash(pnpm seo:check)", + "Bash(git diff:*)", + "Bash(git status)", + "Bash(git log:*)" + ] + } +} diff --git a/.claude/skills/a11y-review/SKILL.md b/.claude/skills/a11y-review/SKILL.md new file mode 100644 index 0000000..7619c4f --- /dev/null +++ b/.claude/skills/a11y-review/SKILL.md @@ -0,0 +1,48 @@ +--- +name: a11y-review +description: >- + Audit Vue/Nuxt components and pages in this repo for accessibility (WCAG 2.1 + AA) and UX-flow issues. Use whenever adding or changing UI, before opening a + PR with visual changes, or when the user asks for an accessibility check. +--- + +# Accessibility & UX-Flow Review + +Apply this checklist to every changed `.vue` file under `components/`, +`layouts/`, and `pages/`. Report findings as a short list grouped by +severity (blocker / should-fix / nice-to-have) with `file:line` refs. + +## Structure & semantics +- One `

` per page; headings increase by one level (no skipped levels). +- Use semantic elements (`