Home - HTML - Etiquetas olvidadas- 1 - 2 - 3 - 4 - 5
LAS ETIQUETAS OLVIDADAS (IV)
por Luciano Moreno, del departamento de diseño web de BJS Software.
La etiqueta DOCTYPE.-
Cambiamos de tercio, y vamos a pasar al estudio de otra de las etiquetas más desconocidas, la etiqueta DOCTYPE.
Cuando diseñáis una página web usando un editor como HomeSite, por ejemplo, habréis visto que siempre este programa agrega al inicio del documento HTML una instrucción del tipo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
pero seguro que muchos de vosotros no sabéis qué significa ni para qué sirve.
De acuerdo con el estándar HTML 4.0 es necesario realizar una declaración de tipo de documento al principio de cada página, especificando en él de qué tipo de cocumento en concreto se trata.
¿Y qué es eso del tipo de documento?
Para comprender esto necesitamos antes conocer por encima qué es SGML (Standard Generalized Markup Language). Es ésta una metodología de edición de documentos, en la que se produce una separación entre el contenido de los mismos y su formato de presentación (algo así como lo que se consigue con las Hojas de Estilos en Cascadas en HTML), consiguiendo establecer esta por medio de un conjunto definido de etiquetas (tags). SGML es, en líneas generales, un metalenguaje que permite el diseño y control de un conjunto de etiquetas y de una sintaxis de construcción, permitiendo su adaptación a las necesidades del usuario o de la aplicación que las necesite. Digamos que es como un creador de lenguajes de etiquetas, o un modelo de comportamiento general de cómo deben ser este tipo de lenguajes, que fué creado con el objetivo de permitir el intercambio de información entre distintas plataformas, soportes físicos y sistemas de presentación. Hijos del metalenguaje SGML son el HTML y el XML, entre otros.
La adaptación del SGMGL a unas necesidades de uso concretas es lo que se conoce con el nombre de DTD, Declaración de Tipo de Documento. Mediante un DTD se definen con precisión aquellos elementos necesarios para la elaboración concreta de un documento o grupo de ellos estructurados de manera similar. Dentro de las múltiples posibilidades del SGML, el HTML es una adaptación de éste al lenguaje de etiquetas necesario para crear páginas web, adaptación que queda definida mediante las definiciones de tipo de documento necesarias, por lo que podemos decir que el HTML es un DTD concreto dentro del conjunto de DTDs posibles en SGML. ¿lioso?. Más claro, HTML es un subconjunto de SGML, una aplicación concreta de éste, y los DTDs de HTML definen excatamente qué se permite dentro del documento que forma una página y qué no.
¿Y qué se consigue con todo esto? os pregunatréis. Pués bien, definir que estamos creando una página web de acuerdo con los estándares del lenguaje HTML, consiguiendo con ello que no sólo los navegadores, si no también las aplicaciones que estos puedan necesitar para visualizar nuestra página, sepan de forma clara cómo tienen que tratarla, consiguiendo así la máxima compatibilidad y accesibilidad.
En HTML es posible establecer tres tipos diferentes de documento:
1) HTML 4.0 Strict: o tipo de documento HTML 4.0 estricto, en el que prima la estructura del mismo sobre su presentación, es decir, que el documento debe tener estar conformado de acuerdo con las reglas del estándar HTML 4.0 de una forma estricta, sin desviarse de él en lo más mínimo.
Por ello, no se permite en el documento la presencia de elementos o atributos desaprobados por el estándar HTML 4.0 (etiquetas IMG sin el atributo ALT, definiciones de márgenes del BODY mediante atributos TOPMARGIN,etc.), y para lograr esto hace falta la declaración de estilos mediante Hojas de Estilos en Cascada (CSS) y una perfecta definición de todos los atributos establecidos como necesarios para cada etiqueta. Como ventaja presenta el que con un documento de esta forma tenemos garantizada la accesibilidad y compatibilidad de nuestra página, y como defectos el que navegadores antiguos no lo soportan y que la construcción del documento no es flexible en absoluto (no se admiten errores en el código).
La declaración de este tipo de documentos se consigue mediante la etiqueta:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.O//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
También es posible precindir en la etiqueta anterior de la última parte, en la que se da la URI del documento DTD, con lo que queda:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.O//EN">
2) HTML 4. Transitional: o tipo de documento HTML 4.0 transicional, es decir, que además de incluir los elementos y atributos del HTML 4.0 estricto añade elementos de presentación y elementos desaprobados por el Consorcio para este estándar. Con él damos apoyo a navegadores que soportan mal las Hojas de Estilos en Cascadas (CSS) y disponemos de más flexibilidad a la hora de escribir el código de nuestra página, a costa de no entrar de lleno en el estándar y de perder un poco de accesibilidad.
La etiqueta para establecer este tipo de documento es:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.O Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
donde es posible también usar la etiqueta abreviada:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.O Transitional//EN">
sin especificar la URI del documento de definición del Consorcio.
3) HTML 4.0 Frameset: que es una variación del HTML 4.0 Transitional para aquellos documentos que empléen frames. En estos documentos el elemento FRAMESET sustituye al BODY.
La declaración de este tipo se realiza mediante la etiqueta:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.O Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">
cuya versión corta es:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.O Frameset//EN">
Es todas esta etiquetas se utilizan las dobles barras (//) como elementos separadores de las palabras claves de la declaración, la palabra PUBLIC hace referncia al tipo de disponibilidad del documento (en nuestro caso público, por lo que está a disposición de toda la WWW), el signo - indica que las organización W3C, que es la que ha establecido el DTD, no es ISO certificada, y las letras EN indican que el sistema de caracteres en el que está escrito el DTD es el correspondiente a la lengua inglesa.
Estas etiquetas son usadas por las aplicaciones de validación de código HTML para saber qué tipo de validación deben aplicar, por lo que si no definimos una de ellas al principo de la página no sabrá cómo deben trabajar. En este caso, a veces no efectuará la validación, y otros tomará por defecto en valor de HTML 4.0 Transitional.
A veces hay que tener cuidado cuando especificamos la URI del documento .dtd en la declaración del DOCTYPE, ya que algunos navegadores en este caso toman siempre la declaración como HTML 4.0 estricto, cosa que no nos puede interesar, por lo que si usamos una declaración de tipo transacional o frameset es mejor emplear la forma corta de la etiqueta.
Es conocido el efecto de que cuando usamos CSS en nuestra página y definimos con ellas el estilo de las fuentes de BODY, los contenidos de las celdas de tablas incluidas en él no respetan estas indicaciones de estilo, presentando dichos contenidos con la fuente en la familia y tamaño por defecto, salvo que especifiquemos de nuevo el estilo para las celdas. Si usamos la declaracisn de HTML 4.0 estricto esto no ocurre, y en este caso las celdas sí heredarán correctamente los estilos definidos para el BODY.
Y también se solventan con la declaración estricta las diferencias de presentación de fuentes que ha habido tradicionalmente entre los MACs y los PCs.
Esto no es todo, ya que en un futuro próximo la declaración del tipo de documento HTML que estamos construyendo solventará de una vez por todas las innumerables diferencias que actualmente tenemos entre la presentación de una página en diferentes navegadores, sistemas operativos y equipos informáticos.
Si deseáis ver el código del fichero DTD en el que se definen las normas a seguir en el caso de usar HTML 4.0 estricto, las tenéis en este enlace
Si queréis leer más sobre el tema de SGML y DTDs en este enlace encontraréis mucha información sobre este metalenguaje (en inglés).