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.
Content categories explained
Every element participates in one or more named content categories, and its content model is defined in terms of those same categories:
- Metadata content — elements that configure the document without rendering anything visible:
<head>,<title>,<meta>,<link>,<style>,<script>,<noscript>. - Flow content — nearly everything that appears in the body of a document. Most elements fall here.
- Sectioning content — creates a new section in the document outline:
<article>,<aside>,<nav>,<section>. - Heading content —
<h1>through<h6>, and<hgroup>. - Phrasing content — the inline, text-level subset:
<a>,<em>,<strong>,<span>,<abbr>,<code>,<time>, etc. - Embedded content — imports external content:
<img>,<video>,<audio>,<iframe>,<canvas>,<svg>. - Interactive content — elements that a user can interact with:
<a>(withhref),<button>,<details>,<input>,<select>,<textarea>.
Void elements
Void elements — <img>, <input>, <br>, <hr>, <meta>, <link>, <area>, <base>, <col>, <embed>, <param>, <source>, <track>, <wbr> — have no content model and no children. The self-closing slash (<br />) is syntactically optional in HTML5, but has no meaning; it is only required in XHTML.
Implicit ARIA roles
The browser maps most elements to an ARIA role that assistive technology exposes, giving you landmarks for free:
| Element | Implicit ARIA role |
|---|---|
<main> | main |
<nav> | navigation |
<header> | banner (when a descendant of body) |
<footer> | contentinfo (when a descendant of body) |
<article> | article |
<section> | region (when named) |
<button> | button |
<a href> | link |
<h1>–<h6> | heading |
<ul> / <ol> | list |
Restating the implicit role is redundant; overriding it can mislead assistive tech.
Transparent content model
The <a> element has a transparent content model — it inherits the model of its parent. If <a> is inside a paragraph (phrasing context), it may only contain phrasing content. If it is inside a <div> or <article> (flow context), it may wrap block-level elements like <h2> or <p>. This is why a large card-style link wrapping a heading and paragraph is valid HTML5.
Tips for choosing the right element
- Use
<article>when the content could stand alone (a blog post, a product card, a comment). - Use
<section>for thematic groupings that need a heading but are not self-contained. - Prefer
<aside>for tangential content — a sidebar, an author bio — rather than a decorative<div>. - Use exactly one
<main>per page; it marks the primary content and is a key screen-reader landmark. - Prefer
<figure>/<figcaption>over a bare<img>when you need a caption.
Example
<article>
<header>
<h2>Post title</h2>
<time datetime="2026-06-06">6 June 2026</time>
</header>
<p>Body text with a <a href="/more">link</a>.</p>
<aside>Related reading: <a href="/topic">Topic overview</a></aside>
<footer>Filed under <a href="/category">Category</a></footer>
</article>
Everything runs in your browser; nothing you search is uploaded.