html elementhead element followed by a body element.html element's start tag can be omitted
if the first thing inside the html element is not a comment.html element's end tag can be omitted if
the html element is not immediately followed by a comment.manifest — Application cache manifestHTMLHtmlElement.The html element represents the root of an HTML document.
Authors are encouraged to specify a lang attribute on the root
html element, giving the document's language. This aids speech synthesis tools to
determine what pronunciations to use, translation tools to determine what rules to use, and so
forth.
The manifest attribute gives the address of
the document's application cache manifest, if there is one. If the attribute is present,
the attribute's value must be a valid non-empty URL potentially surrounded by
spaces.
The manifest attribute is part of the
legacy "offline Web applications" feature, which is in the process of being
removed from the Web platform. (This is a long process that takes many years.) Using the manifest attribute at this time is highly discouraged. Use
service workers instead. [SW]
The manifest attribute only has an effect during the early stages of document load.
Changing the attribute dynamically thus has no effect (and thus, no DOM API is provided for this
attribute).
For the purposes of application cache
selection, later base elements cannot affect the parsing of URLs in manifest attributes, as
the attributes are processed before those elements are seen.
The window.applicationCache IDL
attribute provides scripted access to the offline application cache mechanism.
The html element in the following example declares that the document's language
is English.
<!DOCTYPE html> <html lang="en"> <head> <title>Swapping Songs</title> </head> <body> <h1>Swapping Songs</h1> <p>Tonight I swapped some of the songs I wrote with some friends, who gave me some of the songs they wrote. I love sharing my music.</p> </body> </html>
head elementhtml element.iframe srcdoc document or if title information is available from a higher-level protocol: Zero or more elements of metadata content, of which no more than one is a title element and no more than one is a base element.title element and no more than one is a base element.head element's start tag can be omitted if
the element is empty, or if the first thing inside the head element is an
element.head element's end tag can be omitted if
the head element is not immediately followed by ASCII whitespace or a
comment.HTMLHeadElement.The head element represents a collection of metadata for the
Document.
The collection of metadata in a head element can be large or small. Here is an
example of a very short one:
<!doctype html> <html lang=en> <head> <title>A document with a short head</title> </head> <body> ...
Here is an example of a longer one:
<!DOCTYPE HTML> <HTML LANG="EN"> <HEAD> <META CHARSET="UTF-8"> <BASE HREF="https://www.example.com/"> <TITLE>An application with a long head</TITLE> <LINK REL="STYLESHEET" HREF="default.css"> <LINK REL="STYLESHEET ALTERNATE" HREF="big.css" TITLE="Big Text"> <SCRIPT SRC="support.js"></SCRIPT> <META NAME="APPLICATION-NAME" CONTENT="Long headed application"> </HEAD> <BODY> ...
The title element is a required child in most situations, but when a
higher-level protocol provides title information, e.g. in the Subject line of an e-mail when HTML
is used as an e-mail authoring format, the title element can be omitted.
title elementhead element containing no other title elements.HTMLTitleElement.The title element represents the document's title or name. Authors
should use titles that identify their documents even when they are used out of context, for
example in a user's history or bookmarks, or in search results. The document's title is often
different from its first heading, since the first heading does not have to stand alone when taken
out of context.
There must be no more than one title element per document.
If it's reasonable for the Document to have no title, then the
title element is probably not required. See the head element's content
model for a description of when the element is required.
text [ = value ]Returns the child text content of the element.
Can be set, to replace the element's children with the given value.
Here are some examples of appropriate titles, contrasted with the top-level headings that might be used on those same pages.
<title>Introduction to The Mating Rituals of Bees</title>
...
<h1>Introduction</h1>
<p>This companion guide to the highly successful
<cite>Introduction to Medieval Bee-Keeping</cite> book is...
The next page might be a part of the same site. Note how the title describes the subject matter unambiguously, while the first heading assumes the reader knows what the context is and therefore won't wonder if the dances are Salsa or Waltz:
<title>Dances used during bee mating rituals</title>
...
<h1>The Dances</h1>
The string to use as the document's title is given by the document.title IDL attribute.
base elementhead element containing no other base elements.href — Document base URLtarget — Default browsing context for hyperlink navigation and form submissionHTMLBaseElement.The base element allows authors to specify the document base URL for
the purposes of parsing URLs, and the name of the default
browsing context for the purposes of following hyperlinks. The element
does not represent any content beyond this information.
There must be no more than one base element per document.
A base element must have either an href
attribute, a target attribute, or both.
The href content attribute, if specified, must
contain a valid URL potentially surrounded by spaces.
A base element, if it has an href attribute,
must come before any other elements in the tree that have attributes defined as taking URLs, except the html element (its manifest attribute isn't affected by base
elements).
The target attribute, if specified, must
contain a valid browsing context name or keyword, which specifies which
browsing context is to be used as the default when hyperlinks and forms in the
Document cause navigation.
A base element, if it has a target
attribute, must come before any elements in the tree that represent hyperlinks.
In this example, a base element is used to set the document base
URL:
<!DOCTYPE html>
<html lang="en">
<head>
<title>This is an example for the <base> element</title>
<base href="https://www.example.com/news/index.html">
</head>
<body>
<p>Visit the <a href="archives.html">archives</a>.</p>
</body>
</html>
The link in the above example would be a link to "https://www.example.com/news/archives.html".
link elementnoscript element that is a child of a head element.href — Address of the hyperlinkcrossorigin — How the element handles crossorigin requestsrel — Relationship between the document containing the hyperlink and the destination resourcemedia — Applicable mediaintegrity — Integrity metadata used in Subresource Integrity checks [SRI]hreflang — Language of the linked resourcetype — Hint for the type of the referenced resourcereferrerpolicy — Referrer policy for fetches initiated by the elementsizes — Sizes of the icons (for rel="icon")as — Potential destination for a preload request (for rel="preload" and rel="modulepreload")color — Color to use when customizing a site's icon (for rel="mask-icon")title attribute has special semantics on this element: Title of the link; CSS style sheet set name.HTMLLinkElement.The link element allows authors to link their document to other resources.
The destination of the link(s) is given by the href attribute, which must be present and must contain a
valid non-empty URL potentially surrounded by spaces.
The crossorigin attribute is a
CORS settings attribute. It is intended for use with external resource links.
The types of link indicated (the relationships) are given by the value of the rel attribute, which, if present, must have a value that is a
set of space-separated tokens. The allowed keywords and their
meanings are defined in a later section.
A link element must have either a rel
attribute or an itemprop attribute, but not both.
If a link element has an itemprop attribute,
or has a rel attribute that contains only keywords that are
body-ok, then the element is said to be allowed in the body. This means
that the element can be used where phrasing content is expected.
If the rel attribute is used, the element can
only sometimes be used in the body of the page. When used with the itemprop attribute, the element can be used both in the
head element and in the body of the page, subject to the constraints of
the microdata model.
Two categories of links can be created using the link element: Links to external resources and hyperlinks. The link types section defines
whether a particular link type is an external resource or a hyperlink. One link
element can create multiple links (of which some might be external resource links and some might be hyperlinks); exactly which and how many links are created depends on the
keywords given in the rel attribute. User agents must process
the links on a per-link basis, not a per-element basis.
Each link created for a link element is handled separately. For
instance, if there are two link elements with rel="stylesheet",
they each count as a separate external resource, and each is affected by its own attributes
independently. Similarly, if a single link element has a rel attribute with the value next stylesheet,
it creates both a hyperlink (for the next keyword) and
an external resource link (for the stylesheet
keyword), and they are affected by other attributes (such as media or title)
differently.
For example, the following link element creates two hyperlinks (to the same page):
<link rel="author license" href="/about">
The two links created by this element are one whose semantic is that the target page has information about the current page's author, and one whose semantic is that the target page has information regarding the license under which the current page is provided.
Hyperlinks created with the link
element and its rel attribute apply to the whole document.
This contrasts with the rel attribute of a
and area elements, which indicates the type of a link whose context is given by the
link's location within the document.
The exact behavior for links to external resources depends on the exact relationship, as defined for the relevant link type.
The media attribute says which media the
resource applies to. The value must be a valid media query list.
The integrity attribute represents the integrity metadata for requests which this
element is responsible for. The value is text. The attribute must not be specified on
link elements that do not have a rel attribute
that contains the stylesheet keyword. [SRI]
The hreflang attribute on the
link element has the same semantics as the hreflang attribute on the a
element.
The type attribute gives the MIME
type of the linked resource. It is purely advisory. The value must be a valid MIME
type.
For external resource links, the type attribute is used as a hint to user agents so that they can
avoid fetching resources they do not support.
The referrerpolicy attribute is a
referrer policy attribute. It is intended for use with external resource links, where it helps set the referrer policy
used when obtaining the external resource. [REFERRERPOLICY].
The title attribute gives the title of the
link. With one exception, it is purely advisory. The value is text. The exception is for style
sheet links that are in a document tree, for which the title attribute defines CSS
style sheet sets.
The title attribute on link
elements differs from the global title attribute of most other
elements in that a link without a title does not inherit the title of the parent element: it
merely has no title.
The sizes attribute gives the sizes of icons
for visual media. Its value, if present, is merely advisory. If specified, the
attribute must have a value that is an unordered set of unique space-separated tokens
which are ASCII case-insensitive. Each value must be either an ASCII
case-insensitive match for the string "any", or a
value that consists of two valid non-negative
integers that do not have a leading U+0030 DIGIT ZERO (0) character and that are separated
by a single U+0078 LATIN SMALL LETTER X or U+0058 LATIN CAPITAL LETTER X character. The attribute
must not be specified on link elements that do not have a rel attribute that specifies the icon
keyword or the apple-touch-icon keyword.
The apple-touch-icon keyword is a registered extension to the predefined set of link types, but user
agents are not required to support it in any way.
The as attribute specifies the potential destination for a preload request for the
resource given by the href attribute. It is an
enumerated attribute. Each potential
destination is a keyword for this attribute, mapping to a state of the same name. The
attribute must be specified on link elements that have a rel attribute that contains the preload keyword. It may be specified on link elements
that have a rel attribute that contains the modulepreload keyword; in such cases it must have a value which
is a script-like destination. For other
link elements, it must not be specified.
The attribute does not have a missing value
default or invalid value default, meaning that invalid
or missing values for the attribute map to no state. This is accounted for in the processing
model. For preload links, both conditions are an error; for
modulepreload links, a missing value will be treated as
"script".
The color attribute is used with the mask-icon link type. The attribute must not be specified on link
elements that do not have a rel attribute that contains the
mask-icon keyword. The value must be a string that matches the CSS
<color> production, defining a suggested color that user agents can use to
customize the display of the icon that the user sees when they pin your site.
This specification does not have any user agent requirements for the color attribute.
The mask-icon keyword is a registered extension to the predefined set of link types, but user
agents are not required to support it in any way.
link
elementInteractive user agents may provide users with a means to follow the hyperlinks created using the link element, somewhere
within their user interface. The exact interface is not defined by this specification, but it
could include the following information (obtained from the element's attributes, again as defined
below), in some form or another (possibly simplified), for each hyperlink created
with each link element in the document:
rel attribute)title
attribute).href
attribute).hreflang
attribute).media
attribute).User agents could also include other information, such as the type of the resource (as given by
the type attribute).
The activation behavior of link elements that create hyperlinks is to follow the
hyperlink created by the link element.
meta elementitemprop attribute is present: flow content.itemprop attribute is present: phrasing content.charset attribute is present, or if the element's http-equiv attribute is in the Encoding declaration state: in a head element.http-equiv attribute is present but not in the Encoding declaration state: in a head element.http-equiv attribute is present but not in the Encoding declaration state: in a noscript element that is a child of a head element.name attribute is present: where metadata content is expected.itemprop attribute is present: where metadata content is expected.itemprop attribute is present: where phrasing content is expected.name — Metadata namehttp-equiv — Pragma directivecontent — Value of the elementcharset — Character encoding declarationHTMLMetaElement.The meta element represents various kinds of metadata that cannot be
expressed using the title, base, link, style,
and script elements.
The meta element can represent document-level metadata with the name attribute, pragma directives with the http-equiv attribute, and the file's character encoding
declaration when an HTML document is serialized to string form (e.g. for transmission over
the network or for disk storage) with the charset
attribute.
Exactly one of the name, http-equiv, charset,
and itemprop attributes must be specified.
If either name, http-equiv, or itemprop is
specified, then the content attribute must also be
specified. Otherwise, it must be omitted.
The charset attribute specifies the character encoding used by the document. This is a character
encoding declaration. If the attribute is present, its value must be an ASCII
case-insensitive match for the string "utf-8".
The charset attribute on the
meta element has no effect in XML documents, but is allowed in XML documents in order
to facilitate migration to and from XML.
There must not be more than one meta element with a charset attribute per document.
The content attribute gives the value of the document metadata
or pragma directive when the element is used for those purposes. The allowed values depend on the
exact context, as described in subsequent sections of this specification.
If a meta element has a name
attribute, it sets document metadata. Document metadata is expressed in terms of name-value pairs,
the name attribute on the meta element giving the
name, and the content attribute on the same element giving
the value. The name specifies what aspect of metadata is being set; valid names and the meaning of
their values are described in the following sections. If a meta element has no content attribute, then the value part of the metadata name-value
pair is the empty string.
This specification defines a few names for the name
attribute of the meta element.
Names are case-insensitive, and must be compared in an ASCII case-insensitive manner.
application-nameThe value must be a short free-form string giving the name of the Web application that the
page represents. If the page is not a Web application, the application-name metadata name must not be used.
Translations of the Web application's name may be given, using the lang attribute to specify the language of each name.
There must not be more than one meta element with a given language
and with its name attribute set to the value application-name per document.
authorThe value must be a free-form string giving the name of one of the page's authors.
descriptionThe value must be a free-form string that describes the page. The value must be
appropriate for use in a directory of pages, e.g. in a search engine. There must not be more than
one meta element with its name attribute set to
the value description per document.
generatorThe value must be a free-form string that identifies one of the software packages used to generate the document. This value must not be used on pages whose markup is not generated by software, e.g. pages whose markup was written by a user in a text editor.
Here is what a tool called "Frontweaver" could include in its output, in the page's
head element, to identify itself as the tool used to generate the page:
<meta name=generator content="Frontweaver 8.2">
keywordsThe value must be a set of comma-separated tokens, each of which is a keyword relevant to the page.
This page about typefaces on British motorways uses a meta element to specify
some keywords that users might use to look for the page:
<!DOCTYPE HTML> <html lang="en-GB"> <head> <title>Typefaces on UK motorways</title> <meta name="keywords" content="british,type face,font,fonts,highway,highways"> </head> <body> ...
Many search engines do not consider such keywords, because this feature has historically been used unreliably and even misleadingly as a way to spam search engine results in a way that is not helpful for users.
referrerThe value must be a referrer policy, which defines the default referrer
policy for the Document. [REFERRERPOLICY]
theme-colorThe value must be a string that matches the CSS <color> production, defining a suggested color that user agents should use to customize the display of the page or of the surrounding user interface. For example, a browser might color the page's title bar with the specified value, or use it as a color highlight in a tab bar or task switcher.
There must not be more than one meta element with its name attribute set to the value theme-color per document.
This standard itself uses "WHATWG green" as its theme color:
<!DOCTYPE HTML> <title>HTML Standard</title> <meta name="theme-color" content="#3c790a"> ...
When using the theme color in UI, user agents may adjust it in implementation-specific ways to make it more suitable for the UI in question. For example, if a user agent intends to use the theme color as a background and display white text over it, it might use a darker variant of the theme color in that part of the UI, to ensure adequate contrast.
Anyone can create and use their own extensions to the predefined set of metadata names. There is no requirement to register such extensions.
However, a new metadata name should not be created in any of the following cases:
If either the name is a URL, or the value of its accompanying content attribute is a URL; in those cases,
registering it as an extension to the predefined set of
link types is encouraged (rather than creating a new metadata name).
If the name is for something expected to have processing requirements in user agents; in that case it ought to be standardized.
Also, before creating and using a new metadata name, consulting the WHATWG Wiki MetaExtensions page is encouraged — to avoid choosing a metadata name that's already in use, and to avoid duplicating the purpose of any metadata names that are already in use, and to avoid new standardized names clashing with your chosen name. [WHATWGWIKI]
Anyone is free to edit the WHATWG Wiki MetaExtensions page at any time to add a metadata name. New metadata names can be specified with the following information:
The actual name being defined. The name should not be confusingly similar to any other defined name (e.g. differing only in case).
A short non-normative description of what the metadata name's meaning is, including the format the value is required to be in.
A list of other names that have exactly the same processing requirements. Authors should not use the names defined to be synonyms (they are only intended to allow user agents to support legacy content). Anyone may remove synonyms that are not used in practice; only names that need to be processed as synonyms for compatibility with legacy content are to be registered in this way.
One of the following:
If a metadata name is found to be redundant with existing values, it should be removed and listed as a synonym for the existing value.
If a metadata name is added in the "proposed" state for a period of a month or more without being used or specified, then it may be removed from the WHATWG Wiki MetaExtensions page.
If a metadata name is added with the "proposed" status and found to be redundant with existing values, it should be removed and listed as a synonym for the existing value. If a metadata name is added with the "proposed" status and found to be harmful, then it should be changed to "discontinued" status.
Anyone can change the status at any time, but should only do so in accordance with the definitions above.
When the http-equiv attribute is specified on a
meta element, the element is a pragma directive.
The http-equiv attribute is an enumerated
attribute. The following table lists the keywords defined for this attribute. The states
given in the first cell of the rows with keywords give the states to which those keywords map.
| State | Keyword | Notes |
|---|---|---|
| Encoding declaration | content-type
| |
| Default style | default-style
| |
| Refresh | refresh
| |
| X-UA-Compatible | x-ua-compatible
| |
| Content security policy | Content-Security-Policy
|
http-equiv="content-type")
The Encoding declaration state is
just an alternative form of setting the charset
attribute: it is a character encoding declaration.
For meta elements with an http-equiv
attribute in the Encoding declaration
state, the content attribute must have a value
that is an ASCII case-insensitive match for a string that consists of: the literal
string "text/html;", optionally followed by any number of ASCII
whitespace, followed by the literal string "charset=utf-8".
A document must not contain both a meta element with an http-equiv attribute in the Encoding declaration state and a
meta element with the charset attribute
present.
The Encoding declaration state may be
used in HTML documents, but elements with an http-equiv attribute in that state must not be used in
XML documents.
http-equiv="default-style")
This pragma sets the name of the default CSS style sheet set.
http-equiv="refresh")
This pragma acts as timed redirect.
A Document object has an associated will
declaratively refresh (a boolean). It is initially false.
For meta elements with an http-equiv
attribute in the Refresh state, the content attribute must have a value consisting either of:
URL",
followed by a U+003D EQUALS SIGN character (=), followed by a valid URL string
that does not start with a literal U+0027 APOSTROPHE (') or U+0022 QUOTATION MARK (")
character.In the former case, the integer represents a number of seconds before the page is to be reloaded; in the latter case the integer represents a number of seconds before the page is to be replaced by the page at the given URL.
A news organization's front page could include the following markup in the page's
head element, to ensure that the page automatically reloads from the server every
five minutes:
<meta http-equiv="Refresh" content="300">
A sequence of pages could be used as an automated slide show by making each page refresh to the next page in the sequence, using markup such as the following:
<meta http-equiv="Refresh" content="20; URL=page4.html">
http-equiv="x-ua-compatible")
In practice, this pragma encourages Internet Explorer to more closely follow the specifications.
For meta elements with an http-equiv
attribute in the X-UA-Compatible state, the
content attribute must have a value that is an
ASCII case-insensitive match for the string "IE=edge".
User agents are required to ignore this pragma.
http-equiv="Content-Security-Policy")
This pragma enforces a Content Security
Policy on a Document. [CSP]
For meta elements with an http-equiv
attribute in the Content security
policy state, the content attribute must have a
value consisting of a valid Content Security
Policy, but must not contain any report-uri,
frame-ancestors, or sandbox directives.
The Content Security Policy given in the content attribute will be enforced upon the current document. [CSP]
A page might choose to mitigate the risk of cross-site scripting attacks by preventing the execution of inline JavaScript, as well as blocking all plugin content, using a policy such as the following:
<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'">
There must not be more than one meta element with any particular state in the
document at a time.
A character encoding declaration is a mechanism by which the character encoding used to store or transmit a document is specified.
The Encoding standard requires use of the UTF-8 character
encoding and requires use of the "utf-8" encoding label
to identify it. Those requirements necessitate that the document's character encoding
declaration, if it exists, specifies an encoding label using an ASCII
case-insensitive match for "utf-8". Regardless of whether a
character encoding declaration is present or not, the actual character encoding used to encode the document must be
UTF-8. [ENCODING]
The following restrictions also apply:
In addition, due to a number of restrictions on meta elements, there can only be
one meta-based character encoding declaration per document.
If an HTML document does not start with a BOM, and its
encoding is not explicitly given by Content-Type
metadata, and the document is not an iframe srcdoc document, then the encoding must be specified
using a meta element with a charset attribute
or a meta element with an http-equiv
attribute in the Encoding declaration
state.
A character encoding declaration is required (either in the Content-Type metadata or explicitly in the file) even when all characters are in the ASCII range, because a character encoding is needed to process non-ASCII characters entered by the user in forms, in URLs generated by scripts, and so forth.
Using non-UTF-8 encodings can have unexpected results on form submission and URL encodings, which use the document's character encoding by default.
If the document is an iframe srcdoc
document, the document must not have a character encoding declaration. (In
this case, the source is already decoded, since it is part of the document that contained the
iframe.)
In XML, the XML declaration should be used for inline character encoding information, if necessary.
In HTML, to declare that the character encoding is UTF-8, the author could
include the following markup near the top of the document (in the head element):
<meta charset="utf-8">
In XML, the XML declaration would be used instead, at the very top of the markup:
<?xml version="1.0" encoding="utf-8"?>
style elementnoscript element that is a child of a head element.media — Applicable mediatitle attribute has special semantics on this element: CSS style sheet set name.HTMLStyleElement.The style element allows authors to embed CSS style sheets in their documents.
The style element is one of several inputs to the styling processing
model. The element does not represent content for the
user.
The media attribute says which media the
styles apply to. The value must be a valid media query list.
The default, if the media
attribute is omitted, is "all", meaning that by default styles apply to all
media.
The title attribute on
style elements defines CSS style sheet
sets. If the style element has no title
attribute, then it has no title; the title attribute of ancestors
does not apply to the style element. If the style element is not
in a document tree, then the title attribute
is ignored. [CSSOM]
The title attribute on style
elements, like the title attribute on link
elements, differs from the global title attribute in that a
style block without a title does not inherit the title of the parent element: it
merely has no title.
The child text content of a style element must be that of a
conformant style sheet.
This specification does not specify a style system, but CSS is expected to be supported by most Web browsers. [CSS]
The LinkStyle interface is also implemented by this element. [CSSOM]
The following document has its stress emphasis styled as bright red text rather than italics text, while leaving titles of works and Latin words in their default italics. It shows how using appropriate elements enables easier restyling of documents.
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>My favorite book</title>
<style>
body { color: black; background: white; }
em { font-style: normal; color: red; }
</style>
</head>
<body>
<p>My <em>favorite</em> book of all time has <em>got</em> to be
<cite>A Cat's Life</cite>. It is a book by P. Rahmel that talks
about the <i lang="la">Felis Catus</i> in modern human society.</p>
</body>
</html>