mozilla

<meta>

Résumé

L'élément HTML <meta> représente toute information de méta-données ne pouvant être représentée par l'un des éléments consacrés aux méta-données (<base>, <link>, <script>, <style> ou <title>). Selon les attributs qui sont renseignés, la méta-donnée peut être de différentes sortes :

  • si name est renseigné, c'est une méta-donnée de document s'appliquant à la page entière,
  • si http-equiv est renseigné, c'est une information transmise au serveur web indiquant comment la page doit être servie (pragma directive en anglais),
  • si charset est renseigné, c'est une déclaration sur le jeu de caractères, autrement dit l'ensemble de caractères utilisés pour la version sérialisée de la page web, HTML5
  • si itemprop est renseigné, c'est une méta-donnée définie par l'utilisateur, gérée de manière transparente par l'agent utilisateur étant donné que la signification de cette méta-donnée est spécifique à l'utilisateur. Living Standard Non implémenté
  • Catégories de contenu Contenu de méta-données. Si l'attribut 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 <head>. Si l'attribut http-equiv n'est pas une déclaration d'encodage, l'élément peut également être au sein d'un élément <noscript> lui-même contenu par un élément <head>.
    <meta name> : tout élément acceptant du contenu de méta-données.
    <meta itemprop> : tout élément acceptant du contenu de méta-données ou du contenu phrasé.
  • Interface DOM HTMLMetaElement

Attributs

Cet élément inclut les attributs globaux.

Il faut préciser que l'attribut global name possède une signification spécifique à l'élément <meta> et que l'attribut itemprop ne doit pas être utilisé quand l'un de ces attributs est déjà utilisé : name, http-equiv ou charset.

charset HTML5
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 :
  • Les auteurs sont invités à utiliser UTF-8.
  • Les auteurs ne devraient pas utiliser d'encodage incompatible avec l'ASCII (c'est à dire ceux dont les codes 8-bits de 0x20 à 0x7E ne correspondent pas, de manière respective, aux codes Unicode 0x0020 à 0x007E) car ceux-ci représentent un risque de sécurité, les navigateurs ne les supportant pas pouvant traduire du contenu bénin en des éléments HTML. Ceci est le cas pour les jeux de caractères suivants : JIS_C6226-1983, JIS_X0212-1990, HZ-GB-2312, JOHAB, la famille d'encodages ISO-2022 et la famille d'encodages EBCDIC.
  • Les auteurs ne doivent pas utiliser CESU-8, UTF-7, BOCU-1 et SCSU. Ceux-ci rejoignent le cas précédents et n'ont pas été conçus pour être utilisés sur le web. Certaines attaques de types XSS (Cross-site scripting) ont pu être recensées avec ces encodages.
  • Les auteurs ne devraient pas utiliser UTF-32 car certains algorithmes d'encodage HTML5 ne peuvent différiencer UTF-32 de UTF-16.
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 <meta> doit appartenir à l'élément <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 <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 <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  charset correspondant. Bien qu'elle soit obsolète et qu'elle ne soit plus recommandée, cette syntaxe est toujours autorisée.
content
Cet attribut fournit la valeur associée avec l'attribut http-equiv ou l'attribut name suivant le contexte utilisé.
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 content et peut être l'une des suivantes :
content-language
Définit la langue par défaut utilisée par une page
Note d'utilisation : Cette valeur n'est plus recommendée et ne doit donc plus être utilisée. L'attribut lang de l'élément <body> doit être utilisé pour remplir cette fonction.
content-type
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 charset de l'élément <meta> doit être utilisé à la place.
  • Étant donné que l'élément <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 charset.
default-style
Ce champ définit la feuille de style qui doit être utilisée de préférence sur la page. L'attribut content doit contenir l'identifiant (id) de l'élément  <link> dont l'attribut href renvoie vers la feuille de style CSS, ou l'id d'un élément  <style> contenant une feuille de style CSS.
refresh
Ce champ définit :
  • le nombre de secondes qu'il faudrait attendre avant de recharger la page si l'attribut content 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 content contient un nombre entier positif suivi par la chaîne de caractères ';url=' ainsi qu'une URL valide.
set-cookie
Ce champ définit un cookie pour la page. Son contenu doit respecter la syntaxe énoncée par la IETF HTTP Cookie Specification.
Note : 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.
name
Cet attribut définit le nom d'un méta-donnée au niveau du document. Il ne doit pas être utilisé si l'un des attributs  itemprop, http-equiv ou charset est utilisé.
Le nom de la méta-donnée document est associé à une valeur contenue dans l'attribut content. Les noms possibles et la signification de leurs valeurs (contenues dans l'attribut content) sont :
  • application-name, qui définit le nom de l'application web utilisée dans la page
    Notes :
    • Les navigateurs peuvent l'utiliser pour identifier l'application. Il est à distinguer de l'élément <title> qui contient généralement le nom de l'application mais qui contient aussi des informations comme le nom du document ou un statut
    • Les pages web simples ne devraient pas utiliser cet attribut de méta-donnée.
  • author, définit le nom de l'auteur du document (pas de contrainte de format)
  • description, contient un résumé concis et pertinent du contenu de la page. Plusieurs navigateurs, dont Firefox et Opera, utilisent cette méta-donnée comme description de la page lorsque celle-ci est mise dans les favoris.
  • generator, contient l'identifiant du logiciel ayant généré la page (pas de contrainte de format)
  • keywords, contient une liste de mots-clés séparés par des virgules. Ces mots-clés sont pertinents et relatifs au contenu de la page.

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 :

  • creator, définit le nom du créateur du document (sans contrainte de format). Cela peut être le nom d'une institution. Si plusieurs créateurs sont à recenser, plusieurs éléments <meta> devront être utilisés
  • googlebot, synonyme de robots, est suivi par Googlebot, le robot de Google qui indexe les pages
  • publisher, définit le nom de l'éditeur du document (sans contrainte de format). Cela peut être le nom d'une institution.
  • robots, définit le comportement que les robots d'indexation devraient respecter. C'est une liste de valeurs séparées par des virgules. La liste qui suit définit les valeurs que l'on peut utiliser :
    Valeurs pour le contenu de <meta name="robots">
    Valeur Description Utilisé par
    index Permet au robot d'indexer la page Tous
    noindex Interdit au robot d'indexer la page Tous
    follow Permet au robot de suivre les liens contenus dans la page Tous
    nofollow Interdit au robot de suivre les liens contenus dans la page Tous
    noodp Empêche que la description Open Directory Project si celle-ci est présente, soit affichée dans les résultats du moteur de recherche

    Google, Yahoo, Bing

    noarchive Empêche le moteur de recherche de mettre en cache le contenu de la page Google, Yahoo
    nosnippet Empêche l'affichage de la description de la page dans les résultats du moteur de recherche Google
    noimageindex Empêche la page d'apparaître en tant que page de référence ayant permis l'indexation de l'image Google
    noydir Empêche l'utilisation et l'affichage de la description Yahoo Directory parmi les résultats du moteur de recherche, si celle-ci est présente Yahoo
    nocache Synonyme de noarchive Bing
    Notes :
    • Seuls les robots « respectueux » suivront ces règles. Il ne faut pas considérer cela comme une manière efficace de blocage (robots indexeurs cherchant des adresses e-mails pour le spam notamment)
    • Le robot aura besoin d'accéder à la page pour lire la valeur de la méta-donnée. Afin d'empêcher des accès intempestifs (par exemple pour réduire le débit utilisé) un fichier robots.txt doit être utilisé en priorité (ou en complément).
    • Si vous souhaitez retirer la page du contenu d'un index, la valeur noindex fonctionnera mais seulement à partir de la prochaine analyse. Assurez-vous de ne pas bloquer cette analyse (par exemple avec le fichier robots.txt). Certains moteurs de recherches ont des outils destinés aux développeurs qui permettent de rapidement désindexer une page.
    • Certaines valeurs sont contradictoires et incompatibles : index et noindex, ou follow et nofollow. Dans le cas où ces valeurs sont utilisées simultanément, le comportement d'un robot est indéfini et peut varier selon les robots. Il est donc conseillé d'éviter de tels cas de figures.
    • Certains robots, comme ceux de Google, Yahoo Search ou Bing, supportent ces valeurs quand elles sont utilisées dans une directive HTTP X-Robot-Tags: . Cela permet d'utiliser cette information pour des documents non-HTML comme les images.
  • slurp, synonyme de robots, qui est suivi uniquement par Slurp, le robot d'indexation de Yahoo Search.

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

  • viewport, qui donne une indication quant à la taille du viewport (vue virtuelle). Cette information est utilisée pour les terminaux mobiles uniquement :
    Valeurs pour le contenu de <meta name="viewport">
    Valeur Valeurs possibles Description
    width un nombre entier positif ou le mot-clé device-width définit la largeur, en pixels, de la vue virtuelle
    height un nombre entier positif ou le mot-clé device-height définit la hauteur, en pixels, de la vue virtuelle
    initial-scale un nombre positif entre 0.0 et 10.0 définit le ratio entre la taille de l'écran du terminal (device-width en portrait ou device-height en paysage) et la taille de la vue virtuelle
    maximum-scale un nombre positif entre 0.0 et 10.0 définit la valeur maximale du zoom possible. Doit être supérieur ou égal à minimum-scale, sinon le comportement est indéterminé
    minimum-scale un nombre positif entre 0.0 et 10.0 définit la valeur minimale du zoom possible. Doit être inférieur ou égal à maximum-scale, sinon le comportement est indéterminé
    user-scalable un booléen  (yes ou no) If set to no, the user is not able to zoom or in the webpage. Default value is yes.
    Notes :
    • Bien qu'il ne fasse pas partie du standard, cet attribut est utilisé par plusieurs navigateurs mobiles comme Safari Mobile, Firefox pour Mobile ou Opera Mobile.
    • Les valeurs par défaut peuvent être différentes suivant les appareils et les navigateurs.
    • Pour en savoir plus sur l'utilisation faite de cet attribut par Firefox pour Mobile, vous pouvez lire cet article.
scheme
Cet attribut définit le schéma dans lequel la méta-donné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 content.
Note : 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é.

Exemples

<!-- Définition d'un jeu de caractères en HTML4 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

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

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

Spécifications

Spécification Statut Commentaires
WHATWG HTML Living Standard Living Standard  
HTML5 Candidate Recommendation  
HTML 4.01 Specification Recommendation  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple (Oui) 1.0 (1.7 ou moins) (Oui) (Oui) (Oui)
Fonctionnalité Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple (Oui) 1.0 (1.0) (Oui) (Oui) (Oui)

Voir également

Étiquettes et contributeurs liés au document

Contributeurs à cette page : tregagnon, SphinxKnight
Dernière mise à jour par : SphinxKnight,