ARIA, anti-patterns, and you A developer warns against misusing ARIA and the ARIA Authoring Practices Guide (APG), emphasizing that the APG is not a best-practice guide but a theoretical demonstration of the ARIA spec. The author cautions against using LLM agents to generate code from the APG, citing that increased ARIA usage correlates with more accessibility errors, and advocates for native HTML over ARIA whenever possible. ARIA, anti-patterns, and you Please take a minute to understand what ARIA https://www.w3.org/WAI/standards-guidelines/aria/ is and is not. ARIA and especially the ARIA Authoring Practices Guide APG https://www.w3.org/WAI/ARIA/apg/ are commonly misunderstood. I read an article the other day https://dbushell.com/notes/2026-06-24T05:31Z/ 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 https://a11ysupport.io/ 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 https://www.w3.org/WAI/ARIA/apg/patterns/button/examples/button/ includes this code, for crying out loud