At the most basic level, accessibility ensures that everyone, regardless of ability or disability, can access your web site or application.
The definition is more nuanced than that, though. The Web is fundamentally designed to work for all people. However, poorly designed and inaccessible applications lead to broad-scale exclusion. While the Web is designed to help people at scale, it also can harm people at scale.
Designers:
Accessibility should be integrated into design process, it is rarely ever done. Everyone benefits from readable text; text with concise sentences and widely-understood words. No one benefits from low contrast; everyone benefits from high contrast. Simple.
Things to consider when designing with accessibility in mind
Developers:
When it comes to the underlying HTML code, we’re in luck: it has already been designed, from the outset, to be inclusive. HTML is a toolkit for inclusion. Using the right elements for the job doesn’t just mean the few who use screen readers benefit, but keyboard accessibility comes out-of-the-box.
Start early and check how bad the situation is (easy automatic check)
Manual testing: start from the simple → Web developer extension
Check image description
You can highlight images that have no alt attribute or display the value of alt attributes next to images.
Disable all styles
Rendering (blurred vision, contrast) Chrome Dev Tools
A perfect example are links, they should have underlines to easily differentiate them from normal text.
P.S. prefers-reduced-motion for animations, zooming, and panning can be problematic for people who have vestibular disorders
Use the keyboard
tab
key ➡️
Put your mouse away and tab through the page and see if you can use every single part of the site without a mouse/touch pad.
<button>
s?Turn on VoiceOver and test your component without a mouse (repeat step 4)
Color contrast of elements with VisBug
Turn on Wave and check ARIA labels and others → Wave and → Axe
What the hell is ARIA?
ARIA is a bunch of attributes that you can add to your elements to give them extra context and meaning
<a
href="/settings"
id="user-dropdown-toggle"
role="button"
**aria-haspopup="true"**
>
<!-- Children Elements -->
</a>
Wave evaluation tool
Axe helper
Accessibility can never be perfect, but by thinking inclusively from planning, through prototyping to coding, you can reduce the time you spend on coding to minutes. It's never been easier before.