Please take a minute to understand what ARIA is and is not. ARIA and especially the ARIA Authoring Practices Guide (APG) are commonly misunderstood.
I read an article the other day that had this facepalm moment:
And with modern LLM agents, turning a spec into working code is surprisingly fast. Point the agent at the APG pattern, describe your componentās markup, and get a solid first draft you can refine and test.
This is worrying, and the use of āLLM agentsā isnāt the worst part!
The APG is not a how-to guide of ābest practicesā for building accessible websites. It exists to demonstrate how the ARIA specification should work in theory ā regardless of support and regardless of whether more accessible, non-ARIA patterns exist (they do).
As Eric Bailey notes ā
The guide was originally authored to help demonstrate ARIAās capabilities. As a result, its code examples near-exclusively, overwhelmingly, and disproportionately favor ARIA.
What I Wish Someone Told Me When I Was Getting Into ARIA - Eric Bailey
ā which makes sense, because:
Browser and assistive technology developers can thus utilize code in this guide to help assess the quality of their support for ARIA 1.2.
Read Me First - ARIA Authoring Practices Guide (APG)
Even if ARIA was fully supported (itās not) the APG still wouldnāt be a ābest practiceā guide. āBest practiceā is not using ARIA at all.
If you can use a native HTML element or attribute with the semantics and behavior you require already built in, instead of re-purposing an element and adding an ARIA role, state or property to make it accessible, then do so.
2.1 First Rule of ARIA Use - Using ARIA, W3C
APG exists in a vacuum to show off the ARIA spec.
The button example includes this code, for crying out loud!
<div tabindex="0"
role="button"
id="action">
Print Page
</div>Iām unaware of any circumstance where <div role="button"> should ever be used over a <button>. Before you tell me you canāt edit your
In fairness, the button example has a āRead This Firstā disclosure ā and guess what: they use a <details> element and not the disclosure pattern because the APG isnāt best practice. Itās hard to blame developers for misusing ARIA and the APG. Iāve been confused myself. As W3C documentation goes, APG is rather sexy. Itās a useful resource if you understand why it exists.
Misuse of ARIA has made the web less accessible.
Increased ARIA usage on pages was associated with higher detected errors. The more ARIA attributes that were present, the more detected accessibility errors could be expected.
The WebAIM Million - WebAIM
TL;DR
Avoid ARIA where ever possible. Donāt point a freaking LLM at the APG! I canāt believe Iām saying this but use Googleās slop if you absolutely refuse to learn/code yourself. Apparently OpenAI is throwing ARIA at the web and seeing what sticks. Ahhh! I donāt know anymore, take some pride in your expertise?
P.S. name an assistive technology that isnāt a screen reader.
Aināt easy, is it? So donāt be casually punctuating with the word ātestā like itās some get-out-of-jail-free card for your dubious practice and advice.
āOverview of Digital Accessibility Technologiesā by Declan Chidlow is a great help if you want to win this game at parties.
Thanks for reading! Follow me on Mastodon and Bluesky. Subscribe to my Blog and Notes or Combined feeds.