HTML Elements Reference

Every HTML5 element with content model, allowed attributes and ARIA role.

A searchable HTML5 element reference covering metadata, sectioning, grouping, embedded, tabular and form elements with each one's content model, whether it is a void element and its implicit ARIA role.

What is a void element in HTML?

A void element has no content model and no closing tag — examples are img, input, br, hr, meta and link. You cannot place children inside them, and the self-closing slash (like <br />) is optional in HTML syntax.

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.