Everybody involved in software engineering knows that accessibility (or A11y) matters. And while we all agree that it's a good thing, we don't always prioritise it. I think we're long overdue in doing a better job. Or even better, consider it an intrinsic part of our basics.
A11y means the way that your product is, quite literally, accessible by any user. We can capture a11y in numbers, that beautifully translate into contrast ratios, tab orders, the amount of ARIA labels and whatnot. The most important thing to realise though is, that you should be aware that other users have other needs and maybe limitations that you should take into account.
The Web Content Accessibility Guidelines (WCAG for short) distinguishes four different principles:
Perceivable: Information and user interface components must be presentable to users in ways they can perceive.
Operable: User interface components and navigation must be operable with a variety of tools.
Understandable: Websites must use clear, concise language and offer functionality that is easy to comprehend.
Robust: Websites should work well enough across platforms, browsers, and devices to account for personal choice and user need.
Smarter people than me have already did research into some numbers (approx. one billion! people have some form of an impairment) so if you're targeting a world class audience, by default you're excluding a sizeable chunk 🤯
Considering this group, you should also be aware that your most healthy customer at some point may become impaired, even for a short amount of time. Consider somebody who had surgery and is using your product while in a cast. Consider a young father, with his child on one arm while navigating your app. Or someone doing 5 things at once with little cognitive overhead to take in your menu structure.
And if you're still not convinced on the importance of A11y, then maybe you care about search engine optimisation (SEO)? Because an important visitor of you website is a weird one, with no arms, no legs, no eyes, no ears and little intelligence whatsoever. I'm talking about a crawler. It doesn't care about fancy colors, animations or nifty interactions. It cares about your content and page structure.
Contents and page structure are the most important part of your website (or at least they should be) and if you get those right, you won't find any difficulties with adhering to the basic A11y guidelines.
You can imagine that there's plenty of tooling available to get a grasp on your A11y performance. The A11y project offers a comprehensible list of tools and resources to take a look at. Axe by Deque for instance, is an example and makes for a catchy article title. 🪓
As a developer, we work on a platform that has a limitless potential in terms of providing information to everyone. We have an obligation to make sure that the threshold for participation on the web is as low as possible. We should strive to make and keep it the most inclusive invention of mankind.
There is no mandate which dictates or only accepts a certain level of a11y, which is unfortunate, to be honest. We've been building the most elaborate applications on web technology, which is great! Let's make an effort to keep those elaborate applications as accessible as the webs humble origin.