Doctype est-il nécessaire pour les documents HTML5


12

Récemment, j'ai eu un entretien d'embauche et l'une des questions était "Le doctype est-il nécessaire pour les documents HTML 5?". J'ai répondu "non" mais j'ai le sentiment que je peux me tromper. Depuis le w3, il semble que c'est absolument nécessaire, mais si je tape un simple HTML comme

<html>
    <body>
        <input type="color" disabled/>
    </body>
</html>

enregistrez-le au format HTML et essayez de l'ouvrir dans Chrome - cela fonctionnerait parfaitement, avec une nouvelle entrée de couleur (désactivée). Cette entrée est HTML5 ainsi que l'attribut.

La question est donc - dois-je spécifier ou non doctype? Quelle serait la bonne réponse pour l'entretien?


1
Je suppose que vous pourriez faire valoir que sans l' Doctypeélément, ce n'est pas un document HTML5.
MetaFight

Vous pouvez taper hello worlddans un éditeur de texte, l'enregistrer au format HTML et le rendu sera dans Chrome. Il s'avère que Chrome (et de nombreux autres navigateurs) a mis des choses pour vous, même si cela est "requis".
intcreator

Réponses:


14

La bonne réponse serait "Ça dépend".

Un DOCTYPE est facultatif pour les documents HTML5 dans la syntaxe XHTML (c'est-à-dire les documents XHTML5):

Les documents XML peuvent contenir un DOCTYPE si vous le souhaitez, mais cela n'est pas requis pour se conformer à cette spécification.

Un DOCTYPE est requis pour les documents HTML5 dans la syntaxe HTML :

Les documents doivent comprendre les parties suivantes, dans l'ordre indiqué:

[…]

3. UN DOCTYPE.

Exceptions


1
C'est la réponse complète si «est nécessaire» est interprété comme «est requis par les spécifications». Il pourrait également être interprété comme faisant référence à des effets pratiques. Dans ce cas, la réponse serait qu'une chaîne doctype est nécessaire dans la syntaxe HTML pour mettre les navigateurs en «mode standard».
Jukka K. Korpela

J'aimerais mieux cette réponse si vous expliquez quand un document est html vs xhtml. Qu'est-ce que cela signifie pour les navigateurs - comment ont-ils décidé avec quelle syntaxe évaluer?
temporaire_user_name

7

Moi aussi, j'aurais répondu «non» (à tort, comme cela arrive).

Cependant, http://www.w3.org/TR/html5/syntax.html#the-doctype dit:

8.1.1 Le DOCTYPE

Un DOCTYPE est un préambule obligatoire.

Les DOCTYPE sont requis pour des raisons héritées. Lorsqu'ils sont omis, les navigateurs ont tendance à utiliser un mode de rendu différent qui est incompatible avec certaines spécifications. L'inclusion du DOCTYPE dans un document garantit que le navigateur s'efforce de suivre les spécifications pertinentes.

BTW, GIYF


1
La partie citée s'applique uniquement à la syntaxe HTML.
Jukka K. Korpela

Et le titre de la question est "Est-ce que Doctype est nécessaire pour les documents HTML5" (QED).
Mawg dit de réintégrer Monica le

1
La spécification HTML5 indique clairement et sensiblement qu'elle définit deux syntaxes pour HTML5, l'une basée sur le HTML d'origine et l'autre entièrement conforme au XML. Ce que vous citez ne répond pas à la question, car il ne s'applique qu'à l'une des syntaxes.
Jukka K. Korpela

Ah! Enfin je comprends. Merci beaucoup pour la clarification.
Mawg dit réintégrer Monica le

2

Lorsque vous souhaitez écrire un document HTML5 conforme au standard w3c, cela <!DOCTYPE html>est nécessaire.

Mais dans la pratique, vous n'avez pas toujours besoin d'un doctype car n'importe quel navigateur Web commun rendra votre document malgré tout. Cependant, certains navigateurs utiliseront alors un mode hérité dans lequel certaines fonctionnalités ne sont pas interprétées correctement et à la place d'une manière une version antérieure du navigateur le traitait (la plupart liées à la mise en page).

Quelle réponse convient à cette interview ? Cela dépend de la mentalité de la personne qui vous a interviewé. Dans un entretien d'embauche, peu importe que vous ayez raison ou tort. Peu importe quelle impression vous faites sur l'intervieweur.


La question intéressante pour moi est la suivante: le DOCTYPE HTML5 est-il requis dans la pratique en 2020? Que font les navigateurs actuels (FF, Chrome, Edge) si je l'omet encore de rendre le code HTML-5 conforme?
Panu Logic
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.