Semantic HTML Elements Cheat Sheet

A semantic element clearly describes its meaning to both the browser and the developer.

Writing semantic markup is important for SEO, helping screen readers to signpost for visually impaired users and makes code easier to navigate.

Tag Element Name Description Example Usage
<article> Article Contents Specifies independent, self-contained content that should make sense on its own and can be distributed independently. A given document can have multiple articles. e.g. forum post, magazine article, blog entry, user comments
<aside> Aside Represents a portion of a document whose content is only indirectly related to the document’s main content. e.g. sidebars or call-out boxes
<details> Details disclosure Creates a disclosure widget in which information is only visible when the widget is toggled into an “open” state. A summary or label must be provided using the <summary> element. The contents of the <summary> element are used as the label for the disclosure widget.
<summary> Disclosure Summary Specifies a summary, caption or legend for a <details> element’s disclosure box. Clicking the <summary> element toggles the state of the parent <details> element open and closed. A <summary> element may only be used as the first child of a <details> element.
<figure> The Figure (with Optional Caption) Represents self-contained content with an option caption. The figure, its caption, and its contents are referenced as a single unit. e.g. an image, illustration, diagram, code snippet. It can be usually be moved to another part of the document without affecting the main flow.
<figcaption> Figure Caption Represents a caption or legend describing the rest of the contents of its parent <figure> element. Defines a caption for the <figure> element.
<footer> Footer Represents a footer for a document or section. You can have several <footer> elements in one document. Typically contains information about the author of the section, copyright data or links to related documents.
><form> Form Represents a document section containing interactive controls for submitting information. Used to collect user input.
<header> Header Represents introductory content, typically a group of introductory or navigational links. May contain some heading elements but also a logo, a search form, an author name and other elements. Can define a global site header described as a banner located at the top of the page.
<main> Main Represents the dominant content of the <body> of a documents. The content should be unique to the document. It doesn’t contribute to the document’s outline - it’s strictly informative.
<nav> Navigation Section Represents a section of a page whose purpose is to provide navigation links, either within the current document or to other documents. e.g. menus, tables of contents, indexes.
<section> Generic Section Represents a generic standalone of document, which doesn’t have a more specific semantic element to represent it. Sections should always have a heading, with very few exceptions. e.g. Chapters, introductions, news items, contact information.
<time> (Date) Time Represents a specific period in time. May include the datetime attribute to translate dates into machine-readable format. For presenting dates and times in a machine-readable format such as a time on a 24-hour clock, a precise date in the Gregorian calendar or a valid time duration.