HTML es el lenguaje común para publicar hipertexto en la red mundial [1]. A partir de 1982, Tim Berners-Lee simplificó la definición original de SGML a la liberación de la especificación XHTML1.1 en 2001, HTML se ha convertido en un estándar internacional con múltiples versiones [2]. Las especificaciones de cada versión se definen en un lenguaje legible por máquina que describe estructuras, elementos y atributos legales, que es la definición de tipo de documento, denominado DTD.
Artículos relacionados: HTML Code Learning: Abreviation of Doctype
DTD describe la Declaración del tipo de documento (Declaración de DTD, denominada Doctype [3]) en la parte delantera del documento HTML. Es el documento de contacto y la directiva DTD. Por ejemplo, el Doctype de HTML4.01 Strict es:
<!doctype html public -//w3c//dtd html 4.01//en http://www.w3.org/tr/html4/strict.dtd>Especifica la versión HTML del documento, que es la información más necesaria cuando una herramienta como un navegador analiza un documento. Por ejemplo, la herramienta de verificación W3C puede verificar la sintaxis y señalar errores en función de ella.
La implementación de los primeros navegadores de los estándares, la gran cantidad de extensiones privadas, la confusión de los estándares tempranos, etc., condujo a los documentos en ese momento ni a Doctype ni referencias directas a DTD, y también dificultó que los nuevos estándares se apliquen y sean populares porque los navegadores no pueden distinguirlos. Para tratar con las páginas web creadas de acuerdo con los estándares web y las páginas web creadas de acuerdo con las prácticas obsoletas, Todd Fahrner propuso que se le ocurriera un método de alternancia en 1998, que permite que el navegador proporcione dos conjuntos de modos de renderizado: es decir, hay un documento de DOCTYPE completo utilizado para usar el estándar W3C, de lo contrario, se analiza en la antigua manera.
Este método es práctico, simple y efectivo. Dos años más tarde, la primera vez que se usó en la versión MAC de IE, y pronto otros fabricantes de navegadores lo adoptaron, lo que dio a luz a Doctype Sniffing (Doctype Sniffing o Doctype Switching). El navegador lo usa para decidir si su motor debe adoptar el modo estándar, el modo cuasi-estándar o el modo Quirk, que tendrá un gran impacto en el análisis de HTML y CSS, el diseño de los scripts CSS y JavaScript [5]. No hay duda de que debemos adoptar el modelo estándar tanto como sea posible.
Aunque HTML5 todavía está en el draft, los últimos navegadores Firefox3.5, Chrome2, Safari4 e IE8 han comenzado a admitir algunas características, especialmente el lanzamiento de Google Wave ha desencadenado un nuevo clímax para promover la práctica de HTML5. HTML5 no se basa en SGML ni tiene DTD, pero para la compatibilidad hacia adelante acepta el hecho de que Doctype olfa, definiendo que Doctype es la única declaración de conversión de modo en texto/html, excepto que no sirve de nada. Su Doctype es muy conciso: <! Doctype html> [6].
Vale la pena mencionar que para resolver el problema de la compatibilidad hacia adelante, IE8 adopta una declaración compatible con X-UA [7], lo que conduce al modo de representación del navegador en IE8 que no solo depende de DOCTYPE Sniffing sino también de la declaración compatible con X-UA. Esto no solo conduce a juicios de patrones más complejos [8], sino que también viola la idea de mejora progresiva del diseño web [9].
En el camino hacia los estándares web, no solo necesitamos una compatibilidad avanzada con el realismo, sino también la compatibilidad atrasada con el idealismo. Esta es la esperanza de garantizar que nuestra web pueda funcionar normalmente en el futuro. Con la idea del estándar, la simplicidad y la mejora gradual, la mejor solución para nuestra página ahora es quizás:
<!doctype html>…<meta http-equiv=x-ua-compatible content=ie=edge>…Notas: