--- title: ' : l''élément de métadonnées du document' slug: Web/HTML/Element/meta tags: - Element - HTML - Reference - Web translation_of: Web/HTML/Element/meta ---
{{HTMLRef}}

L'élément HTML <meta> représente toute information de métadonnées qui ne peut pas être représentée par un des éléments ({{HTMLElement("base")}}, {{HTMLElement("link")}}, {{HTMLElement("script")}}, {{HTMLElement("style")}} ou {{HTMLElement("title")}})

Attributs

Comme tous les autres éléments, cet élément inclut les attributs universels.

Note :  Il faut préciser que l'attribut {{htmlattrxref("name", "meta")}} possède une signification spécifique à l'élément {{HTMLElement("meta")}} et que l'attribut {{htmlattrxref("itemprop")}} ne doit pas être utilisé quand l'un de ces attributs est déjà utilisé : {{htmlattrxref("name", "meta")}}, {{htmlattrxref("http-equiv", "meta")}} ou {{htmlattrxref("charset", "meta")}}.

{{htmlattrdef("charset")}}
Cet attribut déclare l'encodage utilisé par la page. Il peut être outrepassé de manière locale en utilisant l'attribut lang d'un élément. La valeur de cet attribut est une chaîne de caractères et doit être l'un des noms MIME préférés d'un encodage comme spécifié par l'IANA. Bien que le standard ne fixe pas d'encodage particulier, il fournit cependant quelques recommendations :
Notes :
  • Le jeux de caractères déclaré doit correspondre à celui utilisé dans la page. Il est inutile de déclarer un jeu de caractères incorrect (cela entraînant également une mauvaise expérience utilisateur).
  • L'élément {{HTMLElement("meta")}} doit appartenir à l'élément {{HTMLElement("head")}} et doit apparaître parmi les 512 premiers octets de la page. En effet, certains navigateurs ne consultent seulement ces premiers octets pour déterminer l'encodage utilisé pour la page.
  • L'élément {{HTMLElement("meta")}} ne représente qu'une partie de l'algorithme déterminant le jeu de caractères à appliquer sur la page par le navigateur. Ainsi, l'en-tête HTTP Content-Type et tous les éléments BOM auront une priorité supérieure à cet élément.
  • Définir le jeu de caractères utilisé grâce à cet attribut représente une bonne pratique et est fortement recommandé. Si aucun encodage n'est défini pour la page, plusieurs techniques XSS peuvent porter atteinte à l'utilisateur (voir l'exemple de la technique XSS de recours à UTF-7). Toujours renseigner cet élément meta protégera contre ces dangers.
  • L'élément {{HTMLElement("meta")}} est un synonyme de <meta http-equiv="Content-Type" content="text/html; charset=IANAcharset"> utilisé avant HTML5. Ici IANAcharset correspond à la valeur de l'attribut  {{htmlattrxref("charset", "meta")}} correspondant. Bien qu'elle soit obsolète et qu'elle ne soit plus recommandée, cette syntaxe est toujours autorisée.
{{htmlattrdef("content")}}
Cet attribut fournit la valeur associée avec l'attribut {{htmlattrxref("http-equiv", "meta")}} ou l'attribut {{htmlattrxref("name", "meta")}} suivant le contexte utilisé.
{{htmlattrdef("http-equiv")}}
Cet attribut pouvant prendre des valeurs pré-définies représente un objet pouvant modifier le comportement des serveurs ou des agents utilisateur. Sa valeur est définie grâce à l'attribut {{htmlattrxref("content", "meta")}} et peut être l'une des suivantes :
content-language {{obsolete_inline}}
Définit la langue par défaut utilisée par une page
Attention ! Cette valeur n'est plus recommandée et ne doit donc plus être utilisée. L'attribut lang de l'élément {{HTMLElement("body")}} doit être utilisé pour remplir cette fonction.
Content-Security-Policy
Cette valeur permet aux administrateurs de sites web de définir des règles de gestion de contenu pour les ressources qui sont servies. Cela permet notamment d'indiquer les origines valides et les points d'accès aux scripts afin de protéger contre les attaques XSS.
content-type {{obsolete_inline}}
Ce champ d'attribut définit le type MIME du document et peut être suivi par son jeu de caractères. Il respecte la même syntaxe que le champ content-type appartenant à l'en-tête HTTP. Cet attribut faisant, lui, partie d'un élément HTML, il n'est pas possible d'utiliser la plupart des valeurs. La syntaxe correcte pour son contenu est donc la chaîne de caractère 'text/html' éventuellement suivie par un jeu de caractères avec la syntaxe suivante : '; charset=IANAcharset' où IANAcharset est l'appellation MIME du jeu de caractères, présentée par l'IANA
Notes d'utilisation
  • Ce champ n'est plus recommandé et ne donc doit pas être utilisé. L'attribut {{htmlattrxref("charset", "meta")}} de l'élément {{HTMLElement("meta")}} doit être utilisé à la place.
  • Étant donné que l'élément {{HTMLElement("meta")}} peut ne pas être utilisé pour changer le type d'un document XHTML, ou d'un document HTML5 précédé par une syntaxe XHTML, il ne faut pas utiliser ce champs pour définir un type MIME étant un type MIME XHTML. Cela serait incorrect.
  • Seuls les documents HTML peuvent utiliser ce champ, cela entraîne donc une certaine redondance. C'est pourquoi il a été rendu obsolète et remplacé par l'attribut {{htmlattrxref("charset", "meta")}}.
refresh
Ce champ définit :
  • le nombre de secondes qu'il faudrait attendre avant de recharger la page si l'attribut {{htmlattrxref("content", "meta")}} contient seulement un nombre entier positif
  • le nombre de secondes qu'il faudrait attendre avant que la page soit redirigée vers une autre page, si l'attribut {{htmlattrxref("content", "meta")}} contient un nombre entier positif suivi par la chaîne de caractères ';url=' ainsi qu'une URL valide.
set-cookie {{obsolete_inline}}{{non-standard_inline}}
Ce champ définit un cookie pour la page. Son contenu doit respecter la syntaxe énoncée par la IETF HTTP Cookie Specification.
Attention ! Ce champ est désormais obsolète et ne doit donc pas être utilisé. L'en-tête HTTP Set-Cookie doit être utilisée à la place.  Cette valeur a été retirée du standard et n'est plus prise en charge à partir de Firefox 68 et de Chrome 65.
{{htmlattrdef("name")}}
Cet attribut définit le nom d'un métadonnée au niveau du document. Il ne doit pas être utilisé si l'un des attributs  {{htmlattrxref("itemprop", "meta")}}, {{htmlattrxref("http-equiv", "meta")}} ou {{htmlattrxref("charset", "meta")}} est utilisé.
Le nom de la métadonnée document est associé à une valeur contenue dans l'attribut {{htmlattrxref("content", "meta")}}. Les noms possibles et la signification de leurs valeurs (contenues dans l'attribut {{htmlattrxref("content", "meta")}}) sont :

Cet attribut peut également avoir une valeur définie dans une liste plus large : WHATWG Wiki MetaExtensions. Bien qu'aucune n'ait encore été acceptée, certaines sont parfois utilisées fréquemment :

Enfin, quelques noms sont utilisés fréquemment mais sont pas considérés comme standards :

{{htmlattrdef("scheme")}} {{obsolete_inline}}
Cet attribut définit le schéma dans lequel la métadonnée est décrite. Un schéma, de la même manière qu'un format, est un contexte permettant d'interpréter correctement la valeur de l'attribut {{htmlattrxref("content", "meta")}}.
Attention ! Cet attribut a été déprécié et ne doit donc plus être utilisé. Il n'y pas d'attributs ou d'éléments remplaçant sa fonction car cet attribut n'était pas usité.

Notes

Selon les attributs qui sont renseignés, la métadonnée peut être de différentes sortes :

Exemples

HTML

<!-- En HTML5 -->
<meta charset="utf-8">

<!-- Rediriger la page après 3 secondes -->
<meta http-equiv="refresh" content="3;url=http://www.mozilla.org">

Accessibilité

Rafraîchir le contenu

Les pages utilisant une valeur de refresh trop petite peuvent ne pas laisser le temps nécessaire à la compréhension aux personnes qui utilisent un lecteur d'écran. Le changement brutal de contenu peut également être source de confusion pour les personnes à faible vision.

Redimensionner la zone d'affichage (viewport)

Désactiver la possibilité de zoom avec user-scalable: no empêche les personnes à faible vision de lire et de comprendre le contenu de la page.

Résumé technique

Catégories de contenu Contenu de métadonnées. Si l'attribut {{htmlattrxref("itemprop")}} est utilisé : du contenu de flux ou du contenu phrasé.
Contenu autorisé Aucun cet élément est un élément vide.
Omission de balises Étant un élément vide, la balise de début doit être présente et la balise de fin doit être absente.
Éléments parents autorisés <meta charset>, <meta http-equiv> : un élément {{HTMLElement("head")}}. Si l'attribut {{htmlattrxref("http-equiv", "meta")}} n'est pas une déclaration d'encodage, l'élément peut également être au sein d'un élément {{HTMLElement("noscript")}} lui-même contenu par un élément {{HTMLElement("head")}}.
<meta name> : tout élément acceptant du contenu de métadonnées.
<meta itemprop> : tout élément acceptant du contenu de métadonnées ou du contenu phrasé.
Rôles ARIA autorisés Aucun.
Interface DOM {{domxref("HTMLMetaElement")}}

Spécifications

Spécification État Commentaires
{{SpecName('Referrer Policy', '#referrer-policy-delivery-meta', '<meta name="referrer">')}} {{Spec2('Referrer Policy')}} Définition des valeurs et de la sémantique associée pour <meta name="referrer">.
{{SpecName('HTML WHATWG', 'semantics.html#the-meta-element', '<meta>')}} {{Spec2('HTML WHATWG')}} Ajout de l'attribut itemprop
{{SpecName('HTML5 W3C', 'document-metadata.html#the-meta-element', '<meta>')}} {{Spec2('HTML5 W3C')}} Ajout de l'attribut charset
{{SpecName('HTML4.01', 'struct/global.html#h-7.4.4.2', '<meta>')}} {{Spec2('HTML4.01')}}

Compatibilité des navigateurs

{{Compat("html.elements.meta")}}

Voir aussi