¿Se necesita Doctype para documentos HTML5?

11

Recientemente tuve una entrevista de trabajo y una de las preguntas fue "¿Se necesita doctype para documentos HTML 5?". He respondido "no" pero tengo la sensación de que podría estar equivocado. Desde el w3 parece que es absolutamente necesario, pero si escribo un HTML simple como

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

guárdelo como HTML e intente abrirlo en Chrome: funcionaría perfectamente bien, con una nueva entrada de color (deshabilitada). Esa entrada es HTML5 además de atributo.

Entonces la pregunta es: ¿necesito especificar doctype o no? ¿Cuál sería la respuesta correcta para la entrevista?

usuario1582878
fuente
1
Supongo que podría argumentar que sin el Doctypeelemento no es un documento HTML5.
MetaFight
Puede escribir hello worldun editor de texto, guardarlo como HTML y se representará en Chrome. Resulta que Chrome (y muchos otros navegadores) ponen cosas para usted, incluso si es "obligatorio".
intcreator

Respuestas:

13

La respuesta correcta sería "Depende".

Un DOCTYPE es opcional para documentos HTML5 en la sintaxis XHTML (es decir, documentos XHTML5):

Los documentos XML pueden contener un DOCTYPE si se desea, pero esto no es necesario para cumplir con esta especificación.

Se requiere un DOCTYPE para documentos HTML5 en la sintaxis HTML :

Los documentos deben constar de las siguientes partes, en el orden dado:

[...]

3. UN DOCTYPE.

Excepciones

unor
fuente
1
Esta es la respuesta completa si "se necesita" se interpreta como "es requerido por las especificaciones". También podría interpretarse como una referencia a efectos prácticos. En ese caso, la respuesta sería que se necesita una cadena de doctype en la sintaxis HTML para poner los navegadores en "modo estándar".
Jukka K. Korpela
Me gustaría esta respuesta mejor si elaborara cuándo un documento es html vs xhtml. ¿Qué significa esto para los navegadores? ¿Cómo decidieron con qué sintaxis evaluar?
temporary_user_name
7

Yo también habría respondido "no" (erróneamente, como sucede).

Sin embargo, http://www.w3.org/TR/html5/syntax.html#the-doctype dice:

8.1.1 El DOCTYPE

Un DOCTYPE es un preámbulo requerido.

Los DOCTYPE se requieren por motivos heredados. Cuando se omite, los navegadores tienden a usar un modo de representación diferente que es incompatible con algunas especificaciones. La inclusión del DOCTYPE en un documento asegura que el navegador haga el mejor esfuerzo para seguir las especificaciones relevantes.

Por cierto, GIYF

Mawg dice que reinstalar a Mónica
fuente
1
La parte citada se aplica solo a la sintaxis HTML.
Jukka K. Korpela
Y el título de la pregunta es "¿Se necesita Doctype para documentos HTML5?" (QED).
Mawg dice que reinstalar a Monica
1
La especificación HTML5 dice clara y notablemente que define dos sintaxis para HTML5, una basada en HTML original y otra totalmente compatible con XML. Lo que cita no responde a la pregunta, ya que se aplica solo a una de las sintaxis.
Jukka K. Korpela
Ah! Finalmente lo entiendo. Muchas gracias por la aclaración.
Mawg dice que reinstalar a Monica
2

Cuando desee escribir un documento HTML5 compatible con el estándar w3c, entonces <!DOCTYPE html>es obligatorio.

Pero en la práctica no siempre necesita un doctype porque cualquier navegador web común representará su documento independientemente. Sin embargo, algunos navegadores utilizarán un modo heredado en el que algunas funciones no se interpretan correctamente y, en su lugar, de una manera anterior, una versión anterior del navegador lo manejó (la mayoría de ellas relacionadas con el diseño).

¿Qué respuesta es la correcta para esta entrevista ? Eso depende de la mentalidad de la persona que lo entrevistó. En una entrevista de trabajo, no importa si tienes razón o no. Solo importa qué impresión le des al entrevistador.

Philipp
fuente
La pregunta interesante para mí es: ¿se requiere el DOCTYPE HTML5 en la práctica en el año 2020? ¿Qué hacen los navegadores actuales (FF, Chrome, Edge) si lo omito y aún hago que el código sea compatible con HTML-5?
Panu Logic