Accessibility (a11y) is one of those topics developers know is important but often postpone. The best time to implement accessibility is at the start. The second best time is today.
Keyboard Navigation
- Can you use the site without a mouse?
- Is focus visible (not removed by CSS)?
- Is the tab order logical?
/* Don't do this */
:focus { outline: none; }
/* Do this */
:focus-visible { outline: 2px solid #6366f1; outline-offset: 2px; }
Semantic HTML
Use the right elements. A <div> can look like a button, but it won’t behave like one for screen readers.
Submit
Images Need Alt Text
- Informative images: describe the content
- Decorative images: empty alt (
alt="")
Color Contrast
Text needs sufficient contrast. Many “beautiful” designs fail here. Use a contrast checker (WebAIM is great).
Forms
- Every input must have a label
- Error messages should be connected to inputs
- Don’t rely on placeholder text as the label
We'll never share your email.
ARIA (Use Carefully)
ARIA is powerful, but semantic HTML is better. Rule of thumb: don’t add ARIA if native HTML can do it.
Quick Win: Run Lighthouse
Chrome DevTools Lighthouse Accessibility. Fix the top issues it reports. You’ll improve usability for everyone, not just users with disabilities.
Accessibility is empathy applied to engineering. And it pays off: better UX, better SEO, and fewer legal/compliance headaches.
