astro-accessibility

SKILL.md

Accessibility Rules (WCAG 2.1 AA)

This project must meet WCAG 2.1 AA guidelines.

Semantic Structure

  • Use semantic HTML: <header>, <nav>, <section>, <article>, <footer>, <ul>, <li>
  • Use ARIA roles only when native semantics are not possible (e.g. <div role="list">)

Images

  • Informative images: use the custom <Img> component and pass the media prop, it includes the correct alt text
  • Functional images/icons (used in buttons or links): use alt or aria-label to describe the action/purpose
  • Decorative images/icons: use aria-hidden="true" and alt=""

Active State

  • Use aria-current="page" or aria-current="location" for the current page (e.g. navigation, breadcrumbs)
  • Use aria-current for styling: aria-current:font-semibold

Lists

  • Use semantic HTML: <ul>, <ol>, <li>
  • For custom components rendering lists, explicitly set ARIA roles:
    • role="list" on the container
    • role="listitem" on each item

Keyboard Navigation

  • All functionality must be operable using only the keyboard
  • Do not rely solely on hover, drag, or pointer events for core interactions

Aria Labels

  • Do NOT hardcode strings for aria-label or visually hidden (sr-only) text
  • Always use dynamic labels from the global state: labels.global['skipToMainContent']
  • Select elements must have an accessible name (e.g. label tag or aria-label)
Weekly Installs
4
GitHub Stars
21
First Seen
Feb 8, 2026
Installed on
opencode4
gemini-cli4
github-copilot4
codex4
kimi-cli4
amp4