191 votes

Doctype majuscule ou minuscule ?

Lors de l'écriture du doctype HTML5, quelle est la méthode correcte ?

<!DOCTYPE html>

o

<!doctype html>

0 votes

Ce sera le premier en général, mais n'importe lequel peut être utilisé <!DOCTYPE html>.

0 votes

J'ai réussi à répondre à ma propre question mais j'ai pensé que je la laisserais au cas où d'autres auraient une pensée similaire. Je préfère personnellement les minuscules ; rien d'autre dans HTML5 n'est en majuscules.

11 votes

Google.com utilise une minuscule <!doctype html>

191voto

Mathias Bynens Points 41065

En HTML, le DOCTYPE est insensible à la casse. Les DOCTYPE suivants sont tous valides :

<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>

Dans les sérialisations XML (c'est-à-dire XHTML), le DOCTYPE n'est pas nécessaire, mais si vous l'utilisez, DOCTYPE doit être en majuscules :

<!DOCTYPE html>

Voir La sérialisation XML de HTML5, alias "XHTML5". :

Notez que si vous ne mettez pas en majuscule DOCTYPE dans un document XHTML, l'analyseur XML renverra une erreur de syntaxe.

La deuxième partie peut être écrite en minuscules ( html ), majuscules ( HTML ) ou même un cas mixte ( hTmL ) - il fonctionnera toujours. Toutefois, pour se conformer à la Directives de balisage polyglottes pour les documents XHTML compatibles avec HTML il doit être écrit en minuscules.

9 votes

Non, c'est incorrect. En SGML, le déclaration de type de document est la production 110, en XML c'est la production 28. Dans les deux cas, il est déclaré sous la forme de la chaîne fixe "DOCTYPE" (qui n'est pas un nom de fichier étiquette il s'agit d'un mot-clé ). Ainsi, dans les définitions canoniques des normes SGML et XML respectives, il s'agit de toujours en majuscules. Si vous trouvez un logiciel qui autorise un "doctype" en minuscules, ce logiciel n'est pas conforme aux normes. Les navigateurs sont conçus pour être "libéraux dans ce qu'ils acceptent", mais un processeur XML conforme devrait signaler cette erreur de validation.

5 votes

...et je dois souligner que X/HTML5 est également incorrect sur ce point. Comme spécifié, XHTML5 n'est tout simplement pas un balisage XML valide, et ne peut pas l'être. Il y a de nombreuses erreurs dans la spécification X/HTML5. Je ne la prends pas très au sérieux. Le fait qu'ils aient dû créer un " balisage polyglotte " (un concept complètement nouveau) indique clairement qu'ils ont fait une croix dessus.

23 votes

@Ichiro Je parle de HTML, pas de SGML. Aucun navigateur n'a jamais implémenté SGML. S'ils le faisaient, <title/foo/ serait équivalent à <title>foo</title> . Seuls quelques HTML validateurs utiliser le SGML. La spécification HTML5 est la première à clarifier ce point : whatwg.org/specs/web-apps/current-work/multipage/

41voto

ucsarge Points 206

Si quelqu'un se pose encore la question en 2014, consultez ceci :

HTML5

W3 HTML5 Spec - Doctype

Un DOCTYPE doit être constitué des éléments suivants, dans cet ordre :

  1. Une chaîne qui est une correspondance ASCII insensible à la casse pour la chaîne "<!DOCTYPE".
    ...

Note : Bien qu'elle soit affichée en majuscules, la spécification indique qu'elle est insensible .


XHTML5

W3 HTML5 - XHTML

Cette spécification ne définit pas d'exigences de niveau syntaxique autres que celles définies pour le XML proprement dit.

Les documents XML peuvent contenir un DOCTYPE si on le souhaite, mais ce n'est pas obligatoire pour se conformer à cette spécification. Cette spécification ne définit pas d'identifiant public ou système, et ne fournit pas de DTD formelle.

En regardant la spécification XML, on trouve DOCTYPE en majuscules, mais je ne trouve rien qui indique que "tout en majuscules" est requis (à titre de comparaison, dans la spécification HTML5 citée ci-dessus, il est affiché dans l'exemple en majuscules, mais la spécification indique explicitement qu'il s'agit de majuscules- ). insensible ).


Balisage polyglotte

W3 Polyglot Markup - Intro

Il est parfois utile de pouvoir servir des documents HTML5 qui sont également des documents XML bien formés.

W3 Polyglot Markup - Doctype

Le balisage polyglotte utilise une déclaration de type de document (DOCTYPE) spécifiée par la section 8.1.1 de [HTML5]. En outre, le DOCTYPE est conforme aux règles suivantes :

  • La chaîne DOCTYPE est en majuscules.
    ...

Ainsi, notez que le balisage polyglotte utilise un doctype HTML5 normal, mais avec des ajouts/changements. Pour notre discussion, le plus important est que le DOCTYPE est déclaré en majuscules .


Résumé

Consultez la section HTML vs. XHTML du W3.

[Opinion] Je ne m'inquiéterais pas trop de la conformité XML, à moins que vous ne cherchiez spécifiquement à la prendre en compte. Pour la plupart des développements de clients et de serveurs basés sur JS, JSON a remplacé XML.

Par conséquent, je ne vois cette solution s'appliquer que si vous essayez de mettre à jour un système existant, basé sur XHTML/XML, pour qu'il coexiste avec une nouvelle fonctionnalité HTML5. Si c'est le cas, regardez du côté de la spécification de balisage polyglotte.

19voto

John Points 2117

Selon le dernières spécifications vous devez utiliser une correspondance insensible aux majuscules et aux minuscules pour les éléments suivants <!DOCTYPE html> . Ainsi, bien que les navigateurs soient tenus de prendre en charge le cas que vous préférez, il est raisonnable d'en déduire que <!DOCTYPE html> est le cas canonique.

3 votes

La spécification indique assez clairement que doctype doit contenir une chaîne de caractères qui est l'équivalent insensible à la casse de '<!DOCTYPE', ce qui implique que '<!dOcTyPe' est tout aussi correct.

6 votes

Comme je l'ai dit, la spécification exige que les navigateurs prennent en charge tous les cas, donc tous les cas fonctionneront. Mais l'auteur de la question cherche clairement une forme standard, canonique, donc en l'absence de raisons fortes pour choisir l'une plutôt que l'autre, vous pouvez aussi bien utiliser le cas d'exemple de la spécification...

0 votes

Tout d'abord, je suis la personne qui a posé la question. Deuxièmement, qu'est-ce que vous regardez exactement qui vous suggère que la majuscule est plus correcte que la minuscule ! Votre réponse n'a pas de sens ; vous dites qu'il n'y a pas de distinction entre les majuscules et les minuscules, et que les majuscules sont donc la réponse la plus correcte.

7voto

jpw Points 137

Les majuscules ou les minuscules sont "correctes". Cependant, si vous utilisez des polices web et que vous vous souciez d'IE7, je vous conseille d'utiliser <!DOCTYPE html> en raison d'un bogue dans IE7 où les polices web échouent parfois si l'on utilise <!doctype html> (par exemple, dans cette réponse ).

C'est pourquoi je mets toujours le doctype en majuscule.

6voto

Stephen Points 1699

La norme pour le HTML5 est que les balises sont insensibles à la casse.

http://www.w3schools.com/html5/tag_doctype.asp

Plus techniquement : ( http://www.w3.org/TR/html5/syntax.html )

Un DOCTYPE doit être constitué des éléments suivants, dans cet ordre :

  1. Une chaîne de caractères qui est une correspondance ASCII insensible à la casse pour la chaîne de caractères <!DOCTYPE .

37 votes

Je ne fais pas confiance à W3Schools à 100% ; ils ne sont pas affiliés au W3C et bien que la plupart de leurs informations soient bonnes, certaines ne le sont pas.

0 votes

C'est assez largement connu - voici le lien de w3.org : w3.org/TR/html5/syntaxe.html

4 votes

Les sites W3Schools ne présentent pas plus ou moins d'erreurs que les autres sites web. ( Exemple complètement aléatoire ) Prenez les informations avec un grain de sel, consultez les pages w3.org en cas de doute, et tout ira bien. Les vrais imbéciles sont ceux qui croient que W3Schools est un organisme officiel ou que leurs certificats ont une quelconque signification.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X