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?

user1582878
la source
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

unor
la source
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

Mawg dit réintégrer Monica
la source
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.

Philipp
la source
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