HTML & Semantics

Semantic HTML is the foundation of web accessibility. Native elements (headings, lists, links, buttons, form controls, landmarks, tables) carry meaning that browsers, search engines, and assistive technology understand without any extra work. A button is a button to a screen reader, a switch user, a voice control user, and a keyboard user. A styled div doing the same job is none of those things.

This is sometimes called the first rule of ARIA: if a native HTML element exists for what you need, use it. Native elements get keyboard support, focus management, name and role information, and platform integration for free. Reinventing them as divs almost always leaves something behind that disabled users depend on. The HTML specification defines this baseline. ARIA is there to extend it, not replace it.

Use heading levels to show structure, not to control visual size. Mark up lists as lists and tables as tables. Use real button and link elements. Associate every form control with a label. Use landmarks to give assistive technology a map of the page.