Accessibility
Guidelines for making Finitless applications accessible to all users. We follow WCAG 2.1 AA standards.
Focus States
All interactive elements must have visible focus states. We use a cyan focus ring for keyboard navigation.
:focus-visible {
outline: 2px solid #00B7FF;
outline-offset: 2px;
}
/* For inputs with custom focus */
.input:focus {
border-color: rgba(0, 183, 255, 0.5);
box-shadow: 0 0 0 3px rgba(0, 183, 255, 0.15);
}Color Contrast
WCAG 2.1 requires minimum contrast ratios: 4.5:1 for normal text, 3:1 for large text (18px+ or 14px bold).
| Combination | Preview | Ratio | WCAG |
|---|---|---|---|
| White on Base | Sample Text | 19.5:1 | AAA |
| Muted on Base | Sample Text | 10.3:1 | AAA |
| Cyan on Base | Sample Text | 7.2:1 | AAA |
| Error on Base | Sample Text | 4.8:1 | AA |
Touch Targets
WCAG 2.2 requires minimum 44×44px touch targets for mobile accessibility.
44px
Minimum
48px
Recommended
Button minimum heights: sm (36px), md (44px), lg (48px). The default (md) meets WCAG requirements.
Reduced Motion
Respect users who prefer reduced motion due to vestibular disorders or personal preference.
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}Font Smoothing
Antialiased font rendering improves readability on dark backgrounds.
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}Accessibility Checklist
- All interactive elements have visible focus states
- Color contrast meets WCAG AA (4.5:1 for text, 3:1 for large text)
- Touch targets are at least 44×44px
- Reduced motion is respected via media query
- Form inputs have associated labels
- Images have descriptive alt text
- Heading hierarchy is semantic (h1 → h2 → h3)
- Links are distinguishable from surrounding text
- Error messages are announced to screen readers
- Font size is at least 16px for body text
