Developers, myself included, often reach for complex ARIA solutions, thinking that's what guarantees accessibility. This is especially true when we think of "making it work" with a screen reader. Screen readers need ARIA right?
That's rarely right. We often end up in "ARIA hell" and we have to dump everything we did and start over. Why do we do this to ourselves?
I identified three causes.
Reading the docs
Most accessibility documentation jump straight to ARIA solutions and bury the basic semantic HTML solutions in the fine print. It's no wonder developers reading the docs will just start implementing the first thing they read and start slapping ARIAs left and right.
The irony is that the docs literally start with Read me first and **No ARIA is better than Bad ARIA."
Following tutorials
Have a question? Google it, click on the first blog post that shows up and quickly scan if it address what you're after. Don't worry about the complexity of the solution. Do they say it works? Check. Copy. Paste. Done.
The more sophisticated the code, the higher the appeal.
The web is full of over-engineered examples, lacking coverage of the simple HTML-first approaches.
The available tools
And then there's the developer tools. Modern frameworks with plenty of helpers and libraries are great. They let us develop faster, launch quicker and test sooner. Sometimes they also push us toward complexity. The component libraries are full of bad examples that add unnecessary ARIA.
And then you have the automated tests that sometimes flag issues that aren't actually problems. This leads developers to add unnecessary ARIA attributes or roles to "fix" non-existent issues. Some testing tools also suggest framework-specific fixes that add complexity when a simpler HTML solution would work better.
How do we break the cycle?
Here are my suggestions:
- Return to basics - HTML and proper semantics
- We need more success stories of simple solutions
- Better ways to evaluate when ARIA is actually needed
- Within your team, build practices that encourage simplicity
Is it simple? No. But it's worth it.