HTML é a linguagem universal para publicação de hipertexto na World Wide Web [1]. Desde 1982, quando Tim Berners-Lee simplificou o SGML para estabelecer a definição original de HTML até o lançamento da especificação XHTML1.1 em 2001, o HTML se tornou um padrão internacional com múltiplas versões [2]. Cada versão da especificação é definida em uma linguagem legível por máquina, que descreve a estrutura legal, os elementos e os atributos. Esta é a Definição de Tipo de Documento (DTD).
DTD descreve a declaração de tipo de documento (declaração DTD, referida como doctype[3]) localizada na frente do documento HTML. É o link entre o documento e a instrução DTD. Por exemplo, o tipo de documento do HTML4.01 Strict é:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd ">
Indica a versão do HTML utilizada pelo documento, que é a informação mais importante que ferramentas como navegadores precisam para analisar o documento. Por exemplo, as ferramentas de validação do W3C podem usá-lo para verificar a sintaxe e apontar erros.
A implementação incorreta de padrões nos primeiros navegadores, a proliferação de extensões privadas e a confusão dos próprios padrões iniciais com compatibilidade futura resultaram em documentos da época que não tinham doctypes nem referências diretas a DTDs, o que também dificultou a implementação de novos padrões. . ganharam adoção e popularidade porque os navegadores não conseguiam diferenciá-los. Para lidar com páginas da web criadas de acordo com padrões da Web e páginas da web criadas de acordo com práticas antigas, Todd Fahrner propôs o método "came up with a toggle" em 1998 [4], que permite ao navegador fornecer dois conjuntos de modos de renderização : isto é, com um tipo de documento completo, os documentos são analisados usando os padrões W3C, caso contrário, são analisados da maneira antiga.
Este método é prático, simples e eficaz. Dois anos depois, ele foi usado pela primeira vez na versão Mac do IE, e outros fabricantes de navegadores logo o adotaram. Isso deu origem ao doctype sniffing (doctype sniffing ou doctype switching). O navegador o utiliza para decidir se seu mecanismo deve adotar o modo padrão, o modo quase padrão ou o modo quirks, o que terá um grande impacto na análise de HTML e CSS, layout CSS e scripts JavaScript [5]. Não há dúvida de que devemos utilizar o modelo padrão tanto quanto possível.
Embora o HTML5 ainda esteja em fase de rascunho, os navegadores mais recentes Firefox3.5, Chrome2, Safari4 e IE8 começaram a oferecer suporte a alguns recursos. Em particular, o lançamento do Google Wave desencadeou um novo aumento na promoção da prática do HTML5. HTML5 não é baseado em SGML e não possui DTD, mas por uma questão de compatibilidade futura, ele aceita o fato de doctype sniffing e define que doctype é a única instrução de conversão de modo em texto/html, e não tem outro uso. Seu doctype é tão conciso: <!doctype html>[6].
Vale ressaltar que o IE8 adota a instrução X-UA-Compatible [7] para resolver a compatibilidade futura. Como resultado, o modo de renderização do navegador no IE8 depende não apenas da detecção de doctype, mas também da instrução X-UA-Compatible. Isso não apenas torna o julgamento de padrões mais complexo [8], mas também viola a ideia de aprimoramento progressivo em web design [9].
No caminho para os padrões da web, não precisamos apenas de compatibilidade futura cheia de realismo, mas também de compatibilidade retroativa cheia de idealismo. Esta é a esperança de garantir que nossa web possa funcionar corretamente no futuro. Sob as ideias de padrões, simplicidade e aprimoramento gradual, a melhor solução para nossa página agora pode ser:
<!doctype html> … <meta http-equiv="X-UA-Compatible" content="IE=Edge"> …
Observação:
[1] HTML é a língua franca para publicação de hipertexto no mundo
Rede ampla
[2] http://zh.wikipedia.org/wiki/Html
[3] A declaração DTD era frequentemente chamada de Declaração de Tipo de Documento nas especificações anteriores.
É fácil ser confundido com DTD.
[4] http://web.archive.org/web/20030212115103/http://www.geocrawler.
com/archives/list-name.mbox/123/1998/7/0/1037920/
[5]Ative o modo navegador com doctype
[6] http://www.w3.org/TR/html5/syntax.html#the-doctype
[7] Além dos tipos de documentos, a padronização da web é compatível com o IE8
[8] http://dancewithnet.com/2009/06/14/activating-browser-modes
-com-doctype/#ie8modes
[9] O futuro dos padrões da web depende da tecnologia dos navegadores?
Texto original: http://ued.koubei.com/?p=928