This is a searchable reference for the common HTML5 elements — the building blocks of every web page. It groups them by category (metadata, sectioning, grouping, text-level, embedded, tabular, forms and interactive) and, for each, shows the content model it permits, whether it is a void element, and the implicit ARIA role browsers assign it.
How it works
Every HTML element belongs to one or more content categories and defines a content model — the kinds of children it may legally contain. Flow content is the broad category for things that appear in the body; phrasing content is the inline, text-level subset. Some elements restrict their children tightly: ul and ol accept only li (plus script and template), and table expects caption, thead, tbody, tfoot and tr in a defined order. Void elements such as img, input, br, hr, meta and link have no content model and no closing tag. Browsers also map most elements to an implicit ARIA role that assistive technology exposes, so semantic markup gives you accessibility landmarks for free.
Tips and notes
Reach for semantic sectioning elements (header, nav, main, article, aside, footer) before generic divs — they create document landmarks and convey structure. Use exactly one main per document. The a element’s content model is transparent, meaning it inherits the model of its parent, which is why a link can wrap block-level content in HTML5. Do not restate an element’s implicit role with a redundant role attribute, and avoid overriding it unless you have a specific reason.
Example
<article>
<header><h2>Post title</h2></header>
<p>Body text with a <a href="/more">link</a>.</p>
<footer><time datetime="2026-06-06">6 June 2026</time></footer>
</article>
Everything runs in your browser; nothing you search is uploaded.