web-dev-qa-db-fra.com

Doctype en majuscule ou en minuscule?

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

<!DOCTYPE html>

ou

<!doctype html>
163
joshnh

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 obligatoire, mais si vous l'utilisez, DOCTYPE doit être en majuscule:

<!DOCTYPE html>

Voir La sérialisation XML de HTML5, également appelée "XHTML5":

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

La deuxième partie peut être écrite en minuscule (html), en majuscule (HTML) ou même en casse mixte (hTmL) - elle fonctionnera toujours. Cependant, pour être conforme à Instructions de balisage Polyglot pour les documents XHTML compatibles HTML , vous devez l'écrire en minuscule.

166
Mathias Bynens

Si quelqu'un se pose encore des questions en 2014, veuillez consulter ceci:

HTML5

Spec W3 HTML5 - Doctype

Un DOCTYPE doit comprendre les composants suivants, dans cet ordre:

1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...

Note: Malgré l'affichage en majuscules, la spécification indique qu'il est insensible

-------------------------------------------------- --------------------

XHTML5

W3 HTML5 - XHTML

This specification does not define any syntax-level requirements 
beyond those defined for XML proper.

XML documents may contain a DOCTYPE if desired, but this is not required 
to conform to this specification. This specification does not define 
a public or system identifier, nor provide a formal DTD.

La spécification XML indique DOCTYPE en majuscules, mais je ne trouve rien qui indique que "toutes les majuscules" est obligatoire (à titre de comparaison, dans la spécification HTML5 indiquée ci-dessus, il est affiché dans l'exemple en majuscules, mais la spécification indique explicitement qu'il est cas - insensible ).

-------------------------------------------------- --------------------

balisage polyglotte

Balisage W3 Polyglot - 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]. De plus, DOCTYPE est conforme aux règles suivantes:

* The string DOCTYPE is in uppercase letters.

Notez donc que Ployglot Markup utilise un doctype HTML5 standard, mais avec des ajouts/modifications. Pour notre discussion, notamment, DOCTYPE est déclaré en majuscule .

-------------------------------------------------- --------------------

Sommation

Voir la section HTML du W3 par rapport à XHTML

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

Par conséquent, je ne vois vraiment que cela s'applique vraiment si vous essayez de mettre à jour un système existant existant, basé sur xhtml/xml, afin de coexister avec les nouvelles fonctionnalités HTML5. Si tel est le cas, examinez les spécifications du balisage polyglotte.

35
ucsarge

Selon dernière spécification , vous devez utiliser quelque chose qui ne correspond pas à la casse pour <!DOCTYPE html>. Ainsi, bien que les navigateurs soient obligés de prendre en charge le cas de votre choix, il est raisonnable d’en déduire que <!DOCTYPE html> est le cas canonique.

17
John Mellor

La norme pour HTML5 est que les balises ne sont pas sensibles à la casse.

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

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

Un DOCTYPE doit comprendre les composants suivants, dans cet ordre:

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

Les majuscules ou les minuscules sont "correctes". Toutefois, si vous utilisez des polices Web et que vous vous souciez de IE7, je vous recommande d'utiliser <!DOCTYPE html> à cause d’un bogue dans IE7 où les polices Web échouaient parfois lorsqu’on utilisait <!doctype html> _ (par exemple dans cette réponse ).

C'est pourquoi j'ai toujours majuscule le doctype.

6
jpw

La question implique en quelque sorte qu'il n'y a qu'une seule bonne réponse, offre un choix multiple de deux et nous demande d'en choisir une. Je suggère que pour HTML5 les deux <!DOCTYPE html> et <!doctype html> sont valides.

Ainsi, un navigateur compatible HTML5 accepterait les minuscules et traiterait correctement le code HTML.

Les navigateurs précédents et inconscients de HTML5, j'ai entendu dire que même sans doctype, ils essaieraient de traiter le code HTML de leur mieux. Et s’ils ne reconnaissent pas le doctype minuscule, ils feront de même. Il est donc inutile de le mettre en majuscule, car ces navigateurs ne pourront de toute façon pas implémenter complètement les déclarations HTML5.

2
Clive