accessibility-checklist
Installation
SKILL.md
Accessibility Review Checklist
How to Use This Checklist
- Review changed components against the relevant sections below
- Not every section applies to every component — form checks only apply to form components, modal checks only apply to modals, etc.
- This codebase uses Radix UI / shadcn/ui extensively. These libraries handle most a11y patterns (keyboard nav, focus management, ARIA) automatically. Your primary job is to catch misuse of the library, not absence of manual implementation.
- When unsure whether a component library handles a pattern, lower confidence rather than asserting
§1 Component Library Misuse (Radix / shadcn/ui)
This is the highest-signal section for this codebase. Radix handles a11y correctly when used correctly — bugs come from misuse.
- Dialog/Sheet without title: Radix
DialogandSheetrequireDialogTitle/SheetTitlefor screen reader announcement. IfDialogTitleis omitted or visually hidden withoutaria-labelonDialogContent, screen readers announce an unlabeled dialog.- Common violation:
<DialogContent>with no<DialogTitle>and noaria-label - Note: Using
<VisuallyHidden><DialogTitle>...</DialogTitle></VisuallyHidden>is a valid pattern for dialogs where a visible title doesn't fit the design
- Common violation: