Robust
Semantic HTML
Use elements for their meaning: <button> not <div onclick>, <nav> not <div class='nav'>, <main>, <article>, <aside>. The first rule of ARIA: don't use ARIA if a native element works.
In plain terms
Use the right building block for the job — a real button, not a clickable box. The browser then handles accessibility for free.
Why this matters
The right native element gives you keyboard support, focus, and screen-reader roles for free. Rebuilding a button from a
means recreating all of that by hand — and most teams miss pieces.
How to detect
Quick check
Scan for clickable <div>/<span> elements, fake buttons, and <div> navigation. Each should be a real <button>, <a>, or <nav>. Check the accessibility tree shows the correct roles.