Accessibility in the Design System
Ensuring accessibility is a core principle of our design system. This page outlines how to implement WCAG 2.1 Level AA guidelines in our components.
Why Accessibility Matters
- Legal Compliance: Meets global standards like EU Accessibility Act (2025) and ADA (US).
- Better Usability: Enhances UX for all users.
- SEO & Performance: Improves visibility in search engines.
- Wider Audience: Supports users with disabilities.
Implementing WCAG 2.1 AA
Accessibility-First Design System
Document accessibility rules for all components
- Each UI component must include accessibility guidelines (focus styles, semantic HTML, ARIA support).
- Ensure sufficient contrast ratios (
4.5:1for text,3:1for UI elements).
Define Accessible Design Tokens
- Ensure color contrast meets WCAG requirements.
- Provide visible focus indicators (e.g.,
focus:ring-2). - Ensure clickable areas are at least 48x48px.
Accessible Component Standards
Buttons
- Must be focusable and keyboard-accessible.
- Avoid
<div>buttons; use<button>elements. - Use
aria-label="Close"for icon-only buttons. - Add
focus:ring-2 focus:ring-brand-500for visible focus.
Form Inputs
- Labels must be explicitly linked to inputs (
<label for="id">). - Error messages should use
aria-live="assertive". - Maintain a logical tab order.
Modals
- Use
role="dialog"andaria-labelledby="modal-title". - Ensure focus trapping inside the modal.
- Enable closing via Escape (
esc) key.
Tables
- Use semantic
<table>structure with<th>,<td>, and<caption>. - Sortable columns should include
aria-sort="ascending"or"descending".
Keyboard & ARIA Best Practices
Ensure all interactive elements are keyboard-accessible (tabindex="0").
Use correct role attributes (role="button", role="alert").
Live updates should be screen reader friendly (aria-live="polite").
Testing & Tools
Use the following tools to validate accessibility:
- Axe DevTools (Chrome/Firefox extension)
- Lighthouse (Google Chrome Audits)
- NVDA / VoiceOver Screen Readers
- Keyboard Navigation Testing
By implementing these practices, our design system ensures an inclusive and accessible experience for all users.