Jekyll One

Fulltext Search

The following contains a complete list of standard tags belonging to the latest HTML5 and XHTML 1.1 specifications.

5-15 Minutes to read

All Tags

This section lists every tag of the HTML5 standard in one single table. All other sections on this page show the same tags again, but sorted by the job they do. If you already know the name of a tag and only want to look up what it stands for, this table is the fastest place to search.

The table below contains a list of HTML5 elements alphabetically along with a brief description.

Legend:
Can be used with all HTML versions
Obsolete, should be replaced
New in version V5

The Info column tells you whether a tag is still fine to use. A tag marked with still works in most browsers, but it is no longer part of the standard. Replace it, mostly by a CSS rule or by a newer tag. Tags marked with came with HTML5 and are not available in older HTML versions.

Tag Info Description

<!DOCTYPE>

Not a tag in the usual sense, but the very first line of every page. It tells the browser which HTML version the page is written in. For HTML5 the short form <!DOCTYPE html> is used.

<a>

Specifies a hyperlink.

<abbr>

Specifies an abbreviated form of a longer word or phrase.

<acronym>

Specifies an acronym. Use <abbr> instead.

<address>

Specifies the author’s contact information.

<applet>

Embeds a Java applet (mini Java applications) on the page. Use <object> instead.

<area>

Specifies a specific area within an image map.

<article>

Specifies an article: a block of content that makes sense on its own, for example a blog post, a news story or a user comment.

<aside>

Specifies some content loosely related to the page content. The <aside> element represents a section of the web page that encloses content which is tangentially related to the content around it.

<audio>

Embeds a sound, or an audio stream in an HTML document.

<b>

Displays text in a bold style. Use <strong> instead if the text is important, and not only meant to look bold.

<base>

Specifies the base URL for all relative URLs in a document.

<basefont>

Specifies the base font for a page. Use CSS instead.

<bdi>

Marks a piece of text that may run in another writing direction than the text around it, from right to left for example. A typical use case is a user name inside a sentence.

<bdo>

Overrides the current text direction.

<big>

Displays text in a large size. Use CSS instead.

<blockquote>

Defines a section that is quoted from another source.

<body>

Specifies the document’s body.

<br>

Produces a single line break.

<button>

Creates a clickable button.

<canvas>

Specifies a region in the document, which can be used to draw graphics on the fly via scripting (usually JavaScript).

<caption>

Specifies the caption or title of the table.

<center>

Align contents in the center. Use CSS instead.

<cite>

Indicates a citation or reference to another source.

<code>

Specifies text as computer code.

<col>

Specifies attribute values for one or more columns in a table.

<colgroup>

Specifies attributes for multiple columns in a table.

<data>

Connects a piece of visible text with a value a machine can read, given by the value attribute. A product name, for example, can carry its article number this way.

<datalist>

Defines a set of pre-defined options for an <input> element.

<dd>

Specifies a description, or value for the term <dt> in a description list <dl>.

<del>

Defines text that has been deleted from the document.

<details>

The <details> element represents a control from which the user can obtain additional information on-demand. It can be used to create an interactive widget that the user can show or hide, like expand and collapse, to retrieve the additional information or controls. Any sort of element can be placed inside the details element.

<dfn>

Specifies a definition.

<dialog>

The <dialog> element defines a dialog box, a Bootstrap modal for example, or another interactive component on a web page. A user can interact with it to perform a task, for example to confirm or to dismiss an alert.

<dir>

Specifies a directory list. Use <ul> instead.

<div>

Specifies a division or a section in a document.

<dl>

Specifies a description list.

<dt>

Specifies a term (an item) in a description list.

<em>

Specifies emphasized text.

<embed>

Embeds an external application into an HTML document, typically media content like audio or video.

The <embed> tag has been supported by most of the web browsers for a long time. However, the tag has not been a part of the HTML 4 specification. Now, it is included in HTML5 as a standard.

<fieldset>

Specifies a set of related form fields.

<figcaption>

Specifies a caption or legend for a figure.

<figure>

Defines a figure illustrated as part of the document.

<font>

Specifies font, color, and size for text. Use CSS instead.

<footer>

Defines the footer of a document or a section.

<form>

Specifies an HTML form for user input.

<frame>

Specifies a single frame within a frameset.

<frameset>

Specifies a collection of frames or other framesets. Frames are no longer part of HTML5. Use <iframe> for a single embedded page, or build the page layout with CSS instead.

<head>

Specifies the head portion of the document that contains information about the document such as title.

<header>

Defines the header of a document or a section.

<hgroup>

Groups a heading together with the text that belongs to it, a title and its subtitle for example.

An <hgroup> contains exactly one heading (<h1> to <h6>). The <p> elements placed before or after that heading are read as part of the same headline block. The note given here for <header> before did not apply to <hgroup>.

<h1> to <h6>

Specifies HTML headings. <h1> is the most important level, <h6> the least important one.

The <h1> element in Asciidoc is reserved for the document title and should not be used for regular header sections in article documents.

<hr>

Produces a horizontal line.

<html>

The <html> element defines the root of HTML and XHTML documents. It is the outer container for everything that appears in an HTML or XHTML document except <!DOCTYPE>.

<i>

Displays text in an italic style. Use <em> instead if the text should carry emphasis, and not only look italic.

<iframe>

Displays a URL in an inline frame.

<img>

Defines an image.

<input>

Specifies an input control.

<ins>

Specifies a block of text that has been inserted into a document.

<kbd>

Specifies text as keyboard input.

<keygen>

Defines a form control for generating a public-private key pair. The tag came with HTML5, but has been taken out of the standard again. No current browser supports it, so it should not be used.

<label>

Specifies a label for an <input> control.

<legend>

Specifies a caption for a <fieldset> element.

<li>

Specifies a list item.

<link>

Specifies the relationship between the current document and an external resource.

<main>

Defines the main or dominant content of the document.

<map>

Specifies a client-side image-map. An image map is a list of coordinates relating to a specific image, created in order to hyperlink areas of the image to various destinations as opposed to a normal image link, in which the entire area of the image links to a single destination.

For example, a map of the world may have each country hyperlinked to further information about that country. The intention of an image map is to provide an easy way of linking various parts of an image without dividing the image into separate image files.

<mark>

Defines text highlighted for reference purposes.

<math>

Embeds a mathematical formula, written in MathML, into an HTML document. Like <svg>, the content inside follows its own standard and not the rules of HTML.

<menu>

Defines a list of commands, a toolbar for example.

The <menu> tag was deprecated in HTML 4.01, but reintroduced in HTML5. All current browsers support it and show it exactly like an unordered list <ul>. The only difference is the meaning: use <menu> when the list items are commands the visitor can trigger.

<menuitem>

Was meant to specify a single command inside a <menu>. The tag never became part of the standard and has been dropped again. It should not be used.

<meta>

Provides structured metadata about the document content.

<meter>

Defines a scalar measurement within a known range, or a fractional value. This is also known as a gauge.

<nav>

Specifies a section of navigation links.

<noframes>

Specifies an alternate content that displays in browsers that do not support frames.

<noscript>

Specifies alternative content to display when the browser doesn’t support scripting.

<object>

Specifies an embedded object.

<ol>

Specifies an ordered list.

<optgroup>

Specifies a group of related options in a selection list.

<option>

Specifies an option in a selection list.

<output>

Defines the result of a calculation.

<p>

Specifies a paragraph.

<param>

Specifies a parameter for an <object> or <applet> element. The tag is deprecated. Pass the values with the attributes of <object> instead.

<picture>

Specifies a container for multiple image sources.

<pre>

Specifies a block of preformatted text.

<progress>

Defines the completion progress of a task.

<q>

Specifies a short inline quotation.

<rb>

Marks the base text of a ruby annotation. The tag is deprecated. Write the base text directly inside <ruby> instead.

<rp>

Provides fall-back parentheses for browsers that don’t support ruby annotations. Those browsers show the pronunciation in brackets instead.

<rt>

Specifies the pronunciation of the characters shown in a ruby annotation.

<rtc>

Groups a second set of ruby annotations, a translation for example. The tag is deprecated. Use <rt> instead.

<ruby>

Defines a ruby annotation: small text placed above or beside characters to show how they are pronounced. It is mainly used for East Asian scripts.

<s>

Defines contents that are no longer accurate or no longer relevant.

<samp>

Specifies text as sample output from a computer program.

<script>

Places script in the document for client-side processing.

<search>

Marks the part of a page that holds search or filter controls, a search form for example. The tag was added to HTML in 2023.

<section>

Specifies a section of a document, such as header, footer etc.

<select>

Specifies a selection list within a form.

<slot>

A placeholder inside a web component (a custom element). Content written between the tags of the component is shown at the position of the matching slot.

<small>

Displays text in a smaller size.

<source>

Defines alternative media resources for the media elements like <audio> or <video>.

<span>

Specifies an inline section in a document.

<strike>

Displays text in strikethrough style. Should be replaced by CSS styles.

<strong>

Indicates strongly emphasized text.

<style>

Inserts CSS style information into the head of a document.

<sub>

Specifies subscripted text.

<summary>

Specifies a summary for a <details> element.

<sup>

Specifies superscripted text.

<svg>

Embeds SVG (Scalable Vector Graphics) content in an HTML document.

<table>

Specifies a data table.

<tbody>

Groups a set of rows defining the main body of the table data.

<td>

Specifies a cell in a table.

<template>

Specifies the fragments of HTML that should be hidden when the page is loaded, but can be cloned and inserted in the document by JavaScript.

<textarea>

Specifies a multi-line text input element.

<tfoot>

Groups a set of rows summarizing the columns of the table.

<th>

Specifies a header cell in a table.

<thead>

Groups a set of rows that describes the column labels of a table.

<time>

Defines a time and/or date.

<title>

Specifies a title for the document.

<tr>

Specifies a row of cells in a table.

<track>

Specifies text tracks for the media elements like <audio> or <video>. The <track> element is used to specify supplementary text tracks such as subtitle tracks and caption tracks for <audio> and <video> elements.

<tt>

Displays text in a teletype style. Should be replaced by CSS styles.

<u>

Displays text with an underline.

<ul>

Specifies an unordered list.

<var>

Specifies a variable. The <var> tag is used to indicate that the text is an instance of a variable or program argument.

<video>

Embeds video content in an HTML document.

<wbr>

Defines a line break opportunity.

Structural Tags

Structural tags build the skeleton of a page. They mark the large building blocks: the document itself, its head and body, the header and the footer, the navigation, the main content area and the single sections and paragraphs inside it. Most of these tags say nothing about the look of a page. They tell the browser, search engines and screen readers what a part of the page is. How a block is displayed is decided by CSS.

Legend:
Can be used with all HTML versions
Obsolete, should be replaced
New in version V5

The Info column tells you whether a tag is still fine to use. A tag marked with still works in most browsers, but it is no longer part of the standard. Replace it, mostly by a CSS rule or by a newer tag. Tags marked with came with HTML5 and are not available in older HTML versions.

Tag Info Description

<a>

Specifies a hyperlink.

<article>

Specifies an article: a block of content that makes sense on its own, for example a blog post, a news story or a user comment.

<aside>

Specifies some content loosely related to the page content.

<body>

Specifies the document’s body.

<br>

Produces a single line break.

<details>

Defines a widget from which the user can obtain additional information or controls on-demand.

<div>

Specifies a division or a section in a document.

<head>

Specifies the head portion of the document that contains information about the document.

<header>

Defines the header of a document or a section.

<hgroup>

Groups a heading together with the text that belongs to it, a title and its subtitle for example.

<h1> to <h6>

Specifies HTML headings. <h1> is the most important level, <h6> the least important one.

<hr>

Produces a horizontal line.

<html>

Specifies the root of an HTML document.

<footer>

Defines the footer of a document or a section.

<main>

Defines the main or dominant content of the document.

<nav>

Specifies a section of navigation links.

<p>

Specifies a paragraph.

<search>

Marks the part of a page that holds search or filter controls, a search form for example. The tag was added to HTML in 2023.

<section>

Specifies a section of a document, such as header, footer etc.

<span>

Specifies an inline section in a document. It adds no meaning of its own and is mostly used to attach a CSS class to a piece of text.

<summary>

Specifies a summary for the <details> element.

Metadata Tags

Metadata tags carry information about the page instead of content the visitor reads. They are placed in the <head> section of the document. Typical jobs are the page title shown in the browser tab, a short description for search engines, the link to a stylesheet and the character set the page uses. Except for the title, a visitor never sees these tags.

Legend:
Can be used with all HTML versions
Obsolete, should be replaced
New in version V5

The Info column tells you whether a tag is still fine to use. A tag marked with still works in most browsers, but it is no longer part of the standard. Replace it, mostly by a CSS rule or by a newer tag. Tags marked with came with HTML5 and are not available in older HTML versions.

Tag Info Description

<!DOCTYPE>

Not a tag in the usual sense, but the very first line of every page. It tells the browser which HTML version the page is written in. For HTML5 the short form <!DOCTYPE html> is used.

<base>

Specifies the base URL for all relative URLs in a document.

<basefont>

Specifies the base font for a page. Use CSS instead.

<link>

Specifies the relationship between the current document and an external resource.

<meta>

Provides structured metadata about the document content.

<style>

Inserts style information (commonly CSS) into the head of a document.

<title>

Specifies a title for the document.

Form Tags

Form tags collect input from a visitor and send it to a server. A form is built from a <form> container plus the single controls inside it: text fields, checkboxes, selection lists, buttons and the labels that explain them. Fields that belong together can be grouped with <fieldset> and <legend>, which keeps longer forms readable.

Legend:
Can be used with all HTML versions
Obsolete, should be replaced
New in version V5

The Info column tells you whether a tag is still fine to use. A tag marked with still works in most browsers, but it is no longer part of the standard. Replace it, mostly by a CSS rule or by a newer tag. Tags marked with came with HTML5 and are not available in older HTML versions.

Tag Info Description

<button>

Creates a clickable button.

<datalist>

Defines a set of pre-defined options for an <input> element.

<dialog>

The <dialog> element defines a dialog box, a Bootstrap modal for example, or another interactive component on a web page. A user can interact with it to perform a task, for example to confirm or to dismiss an alert.

<fieldset>

Specifies a set of related form fields.

<form>

Specifies an HTML form for user input.

<input>

Specifies an input control.

<keygen>

Defines a form control for generating a public-private key pair. The tag came with HTML5, but has been taken out of the standard again. No current browser supports it, so it should not be used.

<label>

Specifies a label for an <input> control.

<legend>

Specifies a caption for a <fieldset> element.

<meter>

Defines a scalar measurement within a known range, or a fractional value. This is also known as a gauge.

<optgroup>

Specifies a group of related options in a selection list.

<option>

Specifies an option in a selection list.

<select>

Specifies a selection list within a form.

<textarea>

Specifies a multi-line text input control (text area).

Formatting Tags

Formatting tags work on single words or on short pieces of text inside a paragraph. They mark text as important, as a quotation, as source code, as a key on the keyboard, as inserted or deleted, or as superscript and subscript. Whenever possible, pick a tag that describes the meaning of the text, like <strong> or <em>. Tags that only change the look, like <font> or <center>, are obsolete. Use CSS for pure styling.

Legend:
Can be used with all HTML versions
Obsolete, should be replaced
New in version V5

The Info column tells you whether a tag is still fine to use. A tag marked with still works in most browsers, but it is no longer part of the standard. Replace it, mostly by a CSS rule or by a newer tag. Tags marked with came with HTML5 and are not available in older HTML versions.

Tag Info Description

<abbr>

Specifies an abbreviated form of a longer word or phrase.

<acronym>

Specifies an acronym. Use <abbr> instead.

<address>

Specifies the author’s contact information.

<b>

Displays text in a bold style. Use <strong> instead if the text is important, and not only meant to look bold.

<bdi>

Marks a piece of text that may run in another writing direction than the text around it, from right to left for example. A typical use case is a user name inside a sentence.

<bdo>

Overrides the current text direction.

<big>

Displays text in a large size.

Use CSS instead.

<blockquote>

Defines a section that is quoted from another source.

<center>

Align contents in the center. Use CSS instead.

<cite>

Indicates a citation or reference to another source.

<code>

Specifies text as computer code.

<data>

Connects a piece of visible text with a value a machine can read, given by the value attribute. A product name, for example, can carry its article number this way.

<del>

Defines text that has been deleted from the document.

<dfn>

Specifies a definition.

<em>

Specifies emphasized text.

<font>

Specifies font, color, and size for text.

Use CSS instead.

<i>

Displays text in an italic style. Use <em> instead if the text should carry emphasis, and not only look italic.

<ins>

Specifies a block of text that has been inserted into a document.

<kbd>

Specifies text as keyboard input.

<mark>

Defines text highlighted for reference purposes.

<output>

Defines the result of a calculation.

<pre>

Specifies a block of preformatted text.

<progress>

Defines the completion progress of a task.

<q>

Specifies a short inline quotation.

<rb>

Marks the base text of a ruby annotation. The tag is deprecated. Write the base text directly inside <ruby> instead.

<rp>

Provides fall-back parentheses for browsers that don’t support ruby annotations. Those browsers show the pronunciation in brackets instead.

<rt>

Specifies the pronunciation of the characters shown in a ruby annotation.

<rtc>

Groups a second set of ruby annotations, a translation for example. The tag is deprecated. Use <rt> instead.

<ruby>

Defines a ruby annotation: small text placed above or beside characters to show how they are pronounced. It is mainly used for East Asian scripts.

<s>

Defines contents that are no longer accurate or no longer relevant.

<samp>

Specifies text as sample output from a computer program.

<small>

Displays text in a smaller size.

<strike>

Displays text in strikethrough style. Use <del> or <s> instead.

<strong>

Indicates strongly emphasized text.

<sub>

Specifies subscripted text.

<sup>

Specifies superscripted text.

<tt>

Displays text in a teletype style. Use <code> or a CSS rule instead.

<u>

Displays text with an underline.

<var>

Specifies a variable.

<wbr>

Defines a line break opportunity.

List Tags

List tags put items into a list. HTML knows three kinds of list: an unordered list <ul> with bullets, an ordered list <ol> with numbers, and a description list <dl> that pairs a term <dt> with its explanation <dd>. Every entry of an unordered or an ordered list is written as an <li> item. Lists can be nested by placing a complete new list inside an <li> item.

Legend:
Can be used with all HTML versions
Obsolete, should be replaced
New in version V5

The Info column tells you whether a tag is still fine to use. A tag marked with still works in most browsers, but it is no longer part of the standard. Replace it, mostly by a CSS rule or by a newer tag. Tags marked with came with HTML5 and are not available in older HTML versions.

Tag Info Description

<dd>

Specifies a description, or value for the term <dt> in a description list <dl>.

<dir>

Specifies a directory list. Use <ul> instead.

<dl>

Specifies a description list.

<dt>

Specifies a term (an item) in a description list.

<li>

Specifies a list item.

<ol>

Specifies an ordered list.

<menu>

Defines a list of commands, a toolbar for example.

<menuitem>

Was meant to specify a single command inside a <menu>. The tag never became part of the standard and has been dropped again. It should not be used.

<ul>

Specifies an unordered list.

Table Tags

Table tags display data in rows and columns, a price list or a timetable for example. A table is built row by row: <tr> starts a row, <th> marks a heading cell and <td> a normal data cell. Bigger tables can be split into a head, a body and a foot group, which helps the browser to repeat the headings when a long table is printed. Do not use tables to arrange the layout of a page. That is the job of CSS.

Legend:
Can be used with all HTML versions
Obsolete, should be replaced
New in version V5

The Info column tells you whether a tag is still fine to use. A tag marked with still works in most browsers, but it is no longer part of the standard. Replace it, mostly by a CSS rule or by a newer tag. Tags marked with came with HTML5 and are not available in older HTML versions.

Tag Info Description

<caption>

Specifies the caption or title of the table.

<col>

Specifies attribute values for one or more columns in a table.

<colgroup>

Specifies attributes for multiple columns in a table.

<table>

Specifies a data table.

<tbody>

Groups a set of rows defining the main body of the table data.

<td>

Specifies a cell in a table.

<tfoot>

Groups a set of rows summarizing the columns of the table.

<thead>

Groups a set of rows that describes the column labels of a table.

<th>

Specifies a header cell in a table.

<tr>

Specifies a row of cells in a table.

Scripting Tags

Scripting tags bring JavaScript into a page and prepare content for it. The <script> tag either contains the program code or loads it from a file, and <noscript> offers a fallback text for visitors whose browser runs no scripts. <template> and <slot> hold markup that stays hidden until a script copies it into the page.

Legend:
Can be used with all HTML versions
Obsolete, should be replaced
New in version V5

The Info column tells you whether a tag is still fine to use. A tag marked with still works in most browsers, but it is no longer part of the standard. Replace it, mostly by a CSS rule or by a newer tag. Tags marked with came with HTML5 and are not available in older HTML versions.

Tag Info Description

<noscript>

Specifies alternative content to display when the browser doesn’t support scripting.

<script>

Places script in the document for client-side processing.

<slot>

A placeholder inside a web component (a custom element). Content written between the tags of the component is shown at the position of the matching slot.

<template>

Specifies the fragments of HTML that should be hidden when the page is loaded, but can be cloned and inserted in the document by JavaScript.

Embedded Content Tags

Embedded content tags pull material from outside into the page: images, audio, video, vector graphics, mathematical formulas and even complete web pages shown in a frame. Most of these tags name the file they load in a src attribute. Always add the short text alternative a tag offers, the alt attribute of <img> for example. Visitors who cannot see the file then still learn what it shows.

Legend:
Can be used with all HTML versions
Obsolete, should be replaced
New in version V5

The Info column tells you whether a tag is still fine to use. A tag marked with still works in most browsers, but it is no longer part of the standard. Replace it, mostly by a CSS rule or by a newer tag. Tags marked with came with HTML5 and are not available in older HTML versions.

Tag Info Description

<applet>

Embeds a Java applet (mini Java applications) on the page.

Use <object> instead.

<area>

Specifies a specific area within an image map.

<audio>

Embeds a sound, or an audio stream in an HTML document.

<canvas>

Specifies a region in the document, which can be used to draw graphics on the fly via scripting (usually JavaScript).

<embed>

Embeds external application, typically multimedia content like audio or video into an HTML document.

<figcaption>

Defines a caption or legend for a figure.

<figure>

Defines a figure illustrated as part of the document.

<frame>

Specifies a single frame within a frameset. Frames are no longer part of HTML5. Use <iframe> to embed a single page instead.

<frameset>

Specifies a collection of frames or other framesets. Frames are no longer part of HTML5. Use <iframe> for a single embedded page, or build the page layout with CSS instead.

<iframe>

Displays a URL in an inline frame.

<img>

Defines an image.

<map>

Specifies a client-side image-map.

<math>

Embeds a mathematical formula, written in MathML, into an HTML document. Like <svg>, the content inside follows its own standard and not the rules of HTML.

<noframes>

Specifies an alternate content that displays in browsers that do not support frames.

<object>

Specifies an embedded object.

<param>

Specifies a parameter for an <object> or <applet> element. The tag is deprecated. Pass the values with the attributes of <object> instead.

<picture>

Specifies a container for multiple image sources.

<source>

Defines alternative media resources for the media elements like <audio> or <video>.

<svg>

Embeds SVG (Scalable Vector Graphics) content in an HTML document.

<time>

Defines a time and/or date.

<track>

Specifies text tracks for the media elements like <audio> or <video>.

<video>

Embeds video content in an HTML document.