--- title: XHTML slug: Glossary/XHTML tags: - Encodage - Glossaire - XHTML translation_of: Glossary/XHTML original_slug: XHTML ---
HTML peut voyager sur le réseau vers un navigateur soit en syntaxe HTML soit en syntaxe XML appelée XHTML.
La norme HTML5 définit ces deux syntaxes. Le type MIME (envoyé dans l'en-tête HTTP Content-Type
) indique le choix de la syntaxe : pour XHTML, le type MIME sera application/xhtml+xml
, sinon text/html
.
Cet exemple montre un document HTML et un document XHTML inclus dans l'en-tête HTTP :
HTTP/1.1 200 OK
Content-Type: text/html
<!DOCTYPE html>
<html lang=en>
<head>
<meta charset=utf-8>
<title>HTML</title>
</head>
<body>
<p>Je suis un document HTML</p>
</body>
</html>
HTTP/1.1 200 OK
Content-Type: application/xhtml+xml
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml
">
<head>
<title>XHTML</title>
</head>
<body>
<p>Je suis un document XHTML</p>
</body>
</html>
Avant HTML5, les deux spécifications distinctes définissaient les deux syntaxes ( HTML 4.01 et XHTML 1.0 ). Selon la norme XHTML1, vous pouvez utiliser XHTML en déclarant un DOCTYPE spécial. Cependant, aucun navigateur n'a jamais implémenté cela, et la norme HTML5 a inversé la décision. Si votre page est envoyée en tant que texte/html
, vous n'utilisez pas XHTML.
Au lieu de cela, le type MIME correct doit être présent dans l'en-tête HTTP Content-Type
. Si vous ne mettez que le type MIME dans une balise meta HTML comme = <meta http-equiv...>
, il sera ignoré et traité comme du texte/html
.
Si vous diffusez vos pages en tant que texte/html
et que vous croyez que vous écrivez XHTML, vous pouvez rencontrer plusieurs problèmes, comme décrit dans ces articles :
La plupart des navigateurs prennent actuellement en charge XHTML, y compris Firefox, Chrome, Safari, Opera et Internet Explorer (depuis IE 9). (Les navigateurs Internet Explorer 8 et plus anciens affichent à la place une boîte de dialogue de téléchargement pour les types de fichiers inconnus lorsqu'ils voient un document XHTML avec le type MIME XHTML correct.)
Sachez également que de nombreuses bibliothèques et outils de développement {{Glossary("JavaScript")}} populaires ont un support limité ou inexistant pour XHTML.
Voir Utilisation correcte de CSS et JavaScript dans les documents XHTML pour une liste partielle des différences entre HTML et XHTML.