WCAG 2.1 AA accessibility patterns for droneroute — color contrast, ARIA, keyboard navigation, Leaflet map a11y, and Radix UI component checklist.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
WCAG 2.1 AA accessibility patterns for droneroute — color contrast, ARIA, keyboard navigation, Leaflet map a11y, and Radix UI component checklist.
What I do
Guide writing accessible UI components and fixing accessibility violations in the droneroute codebase. This skill covers WCAG 2.1 AA compliance patterns specific to the Leaflet map interface, Radix UI primitives, and Tailwind CSS v4.
When to use me
Adding new interactive components or pages
Fixing accessibility violations
Reviewing color contrast for new color tokens
Adding form controls, modals, or custom interactive elements
Auditing keyboard navigation
Making the Leaflet map more accessible
Target standard
WCAG 2.1 AA — the mid-tier accessibility standard. Key requirements:
Criterion
Requirement
1.4.3 Contrast (Minimum)
Text: 4.5:1, Large text (18px+ bold or 24px+): 3:1
1.4.11 Non-text Contrast
UI components and graphical objects: 3:1
2.1.1 Keyboard
All functionality available via keyboard
2.4.1 Bypass Blocks
Skip navigation link to bypass repeated content
2.4.7 Focus Visible
Keyboard focus indicator is visible
1.3.1 Info and Relationships
Semantic HTML structure
Leaflet map accessibility
The map (react-leaflet) is the primary UI element. Maps are inherently challenging for accessibility.
Keyboard navigation
Leaflet supports keyboard navigation natively: arrow keys to pan, +/- to zoom
Ensure the map container is focusable (tabIndex={0})
Markers should be keyboard-accessible — Leaflet markers are focusable by default
Screen reader support
Add aria-label to the map container describing its purpose:
<MapContainer aria-label="Mission planning map">
Waypoint markers should have descriptive tooltips that double as aria-label: