Use when improving WordPress accessibility: block accessibility (ARIA, keyboard navigation), theme accessibility (landmarks, skip links, color contrast), interactive component accessibility, media accessibility (alt text, captions, transcripts), and automated/manual a11y testing for WCAG 2.2 compliance.
Use this skill for accessibility work such as:
accessibility-ready tagWordPress core has a dedicated Accessibility Team. Key principles:
accessibility-ready themes to pass tests covering skip links, keyboard navigation, contrast, heading hierarchy, landmarks, and form labels.useBlockProps() provides baseline ARIA attributes; interactive blocks must handle keyboard events.For automated a11y testing setup, reference the wp-e2e-testing skill.
Run project triage:
node skills/wp-project-triage/scripts/detect_wp_project.mjs
Ensure custom blocks are accessible to keyboard and screen reader users.
Key areas:
wp.a11y.speak()anchor, ariaLabelRead: references/block-a11y.md
Ensure the theme meets WCAG 2.2 and accessibility-ready requirements.
Key areas:
<header>, <nav>, <main>, <footer>, <aside>:focus-visible)prefers-reduced-motion and prefers-contrast media queriestheme.json color palette contrast complianceRead: references/theme-a11y.md
Implement ARIA design patterns from the APG for interactive UI components.
Key areas:
aria-expanded, Enter/Space to toggledata-wp-on--click with data-wp-on--keydownRead: references/interactive-a11y.md
Ensure all media content has appropriate text alternatives.
Key areas:
alt="")<track kind="captions">) and audio descriptionsrole="img" + aria-label or <title>Read: references/media-a11y.md
Set up automated accessibility testing to catch regressions early.
Key areas:
@axe-core/playwright)Read: references/a11y-audit-tools.md
Automated tools catch only ~30-40% of a11y issues. Manual testing is essential.
Key areas:
Read: references/a11y-testing.md
npx pa11y http://localhost:8888
npx lighthouse http://localhost:8888 --only-categories=accessibility --output=json
| Symptom | Cause | Fix |
|---------|-------|-----|
| "Insufficient color contrast" | Ratio below 4.5:1 | Adjust in theme.json or CSS |
| "Images must have alt text" | Missing alt | Add via media library or wp_get_attachment_image() |
| "No main landmark" | Missing <main> | Add <main id="main-content"> |
| "No level-one heading" | Missing/multiple H1 | Single <h1> per page |
| Can't reach element via keyboard | Non-interactive element | Use <button> or <a> instead of <div> |
| Focus trapped | Bad focus trap | Only trap in modals; release on close |
| No announcement on update | Missing live region | aria-live="polite" or wp.a11y.speak() |
| Wrong reading order | DOM/visual mismatch | Align DOM with visual order |
| Focus not visible | Outline removed | Use :focus-visible with visible style |
For automated accessibility scanning and WCAG compliance reports, use the wp-accessibility-auditor agent.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer