Doctype é necessário para documentos HTML5


12

Recentemente, tive uma entrevista de emprego e uma das perguntas foi "O doctype é necessário para documentos HTML 5?". Eu respondi "não", mas tenho a sensação de que posso estar errado. No w3 , parece absolutamente necessário, mas se eu digitar um HTML simples como

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

salve-o como HTML e tente abrir no Chrome - funcionaria perfeitamente bem, com uma nova entrada de cores (desativada). Essa entrada é HTML5, bem como atributo.

Portanto, a pergunta é: preciso especificar doctype ou não? Qual seria a resposta correta para a entrevista?


1
Eu acho que você poderia argumentar que sem o Doctypeelemento não é um documento HTML5.
MetaFight 5/02

Você pode digitar hello worldum editor de texto, salvá-lo como HTML e ele será renderizado no Chrome. Acontece que o Chrome (e muitos outros navegadores) coloca coisas para você, mesmo que seja "obrigatório".
Intcreator #

Respostas:


14

A resposta correta seria "Depende".

Um DOCTYPE é opcional para documentos HTML5 na sintaxe XHTML (ou seja, documentos XHTML5):

Documentos XML podem conter um DOCTYPE, se desejado, mas isso não é necessário para estar em conformidade com esta especificação.

Um DOCTYPE é necessário para documentos HTML5 na sintaxe HTML :

Os documentos devem consistir nas seguintes partes, na ordem especificada:

[...]

3. UM MÉDICO.

Exceções


1
Esta é a resposta completa se "for necessário" for interpretado como "é exigido pelas especificações". Também poderia ser interpretado como se referindo a efeitos práticos. Nesse caso, a resposta seria a necessidade de uma string doctype na sintaxe HTML para colocar os navegadores no "modo de padrões".
Jukka K. Korpela

Eu gostaria desta resposta melhor se você dissesse quando um documento é html vs xhtml. O que isso significa para os navegadores - como eles decidiram com qual sintaxe avaliar?
temporary_user_name

7

Eu também teria respondido "não" (errado, por acaso).

No entanto, http://www.w3.org/TR/html5/syntax.html#the-doctype diz:

8.1.1 O DOCTYPE

Um DOCTYPE é um preâmbulo obrigatório.

DOCTYPEs são necessários por motivos herdados. Quando omitido, os navegadores tendem a usar um modo de renderização diferente que é incompatível com algumas especificações. A inclusão do DOCTYPE em um documento garante que o navegador faça o possível para seguir as especificações relevantes.

BTW, GIYF


1
A parte citada se aplica apenas à sintaxe HTML.
Jukka K. Korpela

E o título da pergunta é "O Doctype é necessário para documentos HTML5" (QED).
Mawg diz que restabelece Monica

1
A especificação do HTML5 diz clara e visivelmente que define duas sintaxes para o HTML5, uma baseada no HTML original e outra totalmente em conformidade com XML. O que você cita não responde à pergunta, pois se aplica apenas a uma das sintaxes.
Jukka K. Korpela

Ah! Finalmente eu entendo. Muito obrigado pelo esclarecimento.
Mawg diz que restabelece Monica

2

Quando você deseja escrever um documento HTML5 em conformidade com o padrão w3c, <!DOCTYPE html>é necessário.

Mas, na prática, você nem sempre precisa de um tipo de documento, porque qualquer navegador comum renderiza seu documento independentemente. No entanto, alguns navegadores usarão um modo legado no qual alguns recursos não serão interpretados corretamente e, de certa forma, uma versão anterior do navegador o tratará (a maioria relacionada ao layout).

Qual resposta é correta para esta entrevista ? Isso depende da mentalidade da pessoa que o entrevistou. Em uma entrevista de emprego, não importa se você está certo ou errado. Importa apenas a impressão que você causa no entrevistador.


A pergunta interessante para mim é: o DOCTYPE HTML5 é necessário na prática no ano de 2020? O que os navegadores atuais (FF, Chrome, Edge) fazem se eu omiti-lo e ainda assim tornar o código compatível com HTML-5?
Panu Logic
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.