Inicio HTML Elegir el doctype correcto

Elegir el doctype correcto

Viernes, 14-01-2011 14:45 - Leer comentarios - Comentar

El apartado anterior analizábamos la anatomía de la sección head de un documento HTML y explicábamos brevemente los diferentes elementos que puede haber en la cabecera y su función. En este apartado estudiaremos el elemento doctype con mucho más detalle: qué hace, cómo ayuda a validar el HTML, cómo elegir un doctype para el documento y la declaración XML, que no necesitaréis casi nunca pero con la que os encontraréis algunas veces.

Los contenidos de este apartado son los siguientes:


1. En primer lugar, el doctype

Lo primero que debéis comprobar que haya en cualquier documento HTML que creéis es una declaración DTD. Si no habéis oído nunca hablar de la declaración DTD, no os preocupéis. Para facilitar las cosas, normalmente se conoce como "doctype", que es el nombre que utilizaremos en este apartado.

Es muy posible que os estéis preguntando qué es una DTD o doctype. DTD son las siglas de document type definition (definición del tipo de documento), que, entre otras cosas, define los elementos y los atributos que se pueden utilizar en una versión concreta del HTML. Sí, no es ningún error, actualmente se utilizan en la Red diferentes versiones del HTML, pero esto no os debe preocupar en absoluto, ya que sólo os deberéis interesar por una.

El doctype se utiliza para dos cosas en diferentes tipos de software:

  1. Los navegadores web lo utilizan para determinar el modo de representación que deben utilizar (más adelante ya hablaremos de los modos de representación).

  2. Los validadores de etiquetado miran el doctype para determinar las normas con las que deben comprobar el documento (más adelante también hablaremos de ello).

Las dos os afectarán, pero de maneras diferentes que ya explicaremos más adelante en este mismo apartado.

Aquí tenéis un ejemplo:

Texto plano

Es posible que no le encontréis ningún sentido, por lo que ahora explicaremos de una manera simplificada su construcción. Para una explicación con mucho más detalle de qué significa cada uno de los caracteres, podéis ver el artículo !DOCTYPE.

Las partes más importantes de doctype son las dos cadenas delimitadas por comillas. "-//W3C//DTD HTML 4.01//EN" indica que éste es un documento DTD publicado por el W3C, que la DTD describe la versión 4.01 del HTML y que el idioma utilizado en la DTD es el inglés.

La segunda cadena, "http://www.w3.org/TR/html4/strict.dtd", es una URL que indica el documento DTD utilizado para este doctype.

Aunque un doctype puede tener un aspecto un tanto extraño, las especificaciones HTML y XHTML lo exigen. Si no incluís ninguno, aparecerá un error de validación cuando comprobéis la sintaxis de vuestro documento con el validador de etiquetado del W3C u otras herramientas que comprueben los documentos HTML por si contienen errores. Algunos navegadores incluso contienen esta función por defecto, mientras que otros pueden incluirla si se instala una extensión.

↑ Subir ↑

2. Cambios de doctype y modos de representación

Si no proporcionáis ningún doctype, los navegadores seguirán gestionando y mostrando el documento de todos modos; deben intentar mostrar todo tipo de cosas extrañas que se pueden encontrar en la Red, por lo que no pueden ser muy quisquillosos. No obstante, sin un doctype los resultados no siempre serán los esperados a causa de una cosa conocida como "doctype sniffing" o "doctype switching".

La mayoría de los navegadores del siglo XXI miran el doctype de todos los documentos HTML que encuentran y lo utilizan para decidir si el autor de los documentos se ha preocupado de escribir adecuadamente el HTML y el CSS según los estándares de la Red.

Si encuentran un doctype que indica que el documento está bien codificado, utilizan un modo conocido como "modo de estándares" para maquetar la página. En el modo de estándares, los navegadores intentan normalmente mostrar la página según las especificaciones de CSS; se fían de que la persona que ha creado el documento sabía qué estaba haciendo.

Por otra parte, si encuentran un doctype anticuado o incompleto, utilizan el modo Quirks (peculiaridades), que es más compatible con las prácticas y los navegadores antiguos. El modo Quirks presupone que el documento es antiguo o que no se ha creado teniendo en cuenta los estándares de la web; la página web se seguirá mostrando, pero se necesitará más potencia de procesamiento para hacerlo y es muy probable que el resultado sea algo extraño, nada parecido a lo que se esperaba.

Las diferencias están básicamente relacionadas con la manera de mostrar el CSS y sólo en unos pocos casos con la manera de tratar el HTML en sí. Como diseñadores o desarrolladores de webs, obtendréis los mejores resultados asegurándoos de que todos los navegadores utilicen su modo de representación de estándares, y por ello deberíais ceñiros a los estándares de la web y utilizar un doctype adecuado.

↑ Subir ↑

3. Validación

Como ya hemos comentado, los validadores también utilizan el doctype; ya lo comentaremos con más detalle más adelante en esta serie de apartados. De momento, todo lo que debéis saber es que se utiliza un validador para comprobar que la sintaxis de vuestros documentos HTML sea correcta y que no contenga ningún error. Los programas validadores miran el doctype utilizado para determinar las normas que se deben utilizar. Es algo similar a indicar a un corrector ortográfico el idioma en el que está escrito un documento. Si no lo sabe, no sabrá qué normas ortográficas y de gramática debe utilizar.

↑ Subir ↑

4. Elegir un doctype

Así pues, ahora que ya sabéis que hay que introducir un doctype y para qué se utiliza, ¿cómo podéis saber cuál hay que utilizar? De hecho, no hay uno, sino que hay muchos. Incluso podéis crear uno propio, siempre y cuando tengáis el nivel de conocimientos necesario para hacerlo. Aquí, sin embargo, no hablaremos de muchos doctypes diferentes. Haremos las cosas fáciles y sólo mencionaremos dos.

Si vuestro documento es HTML, utilizad el siguiente:

Texto plano
 

Si vuestro documento es XHTML, utilizad el siguiente:

Texto plano

Nota

El XHTML "real" se debe comunicar al navegador como XML, pero los detalles sobre cómo y cuándo hacerlo, y las implicaciones que tiene, quedan fuera del alcance de este apartado en concreto.

Estos dos doctypes garantizarán que los navegadores utilicen su modo de estándares a la hora de trabajar con vuestro documento. El efecto más evidente que tendrá sobre vuestro trabajo es que obtendréis unos resultados más uniformes a la hora de diseñar el documento con CSS. Para ver algunos de los otros doctypes que podéis utilizar, el W3C ha publicado una lista de DTD recomendadas para utilizarlas en vuestro documento web.

Es posible que hayáis observado que los dos doctypes que hemos mencionado se llaman "Strict". Aunque pueda parecer un poco extraño, no lo es en absoluto.

Tanto el HTML como el XHTML pueden ser estrictos o transicionales. Estrictos, en este caso, significa que los doctypes permiten un etiquetado menos presentacional que los doctypes transicionales. El etiquetado presentacional que no está permitido no debería aparecer de ninguna manera, ya que debéis utilizar el HTML para definir la estructura y el significado de vuestros documentos, y el CSS para determinar el modo como se presentarán. El uso de un doctype estricto os ayudará, ya que el validador os avisará de cualquier elemento o atributo presentacional que se pueda haber escurrido dentro del código.

↑ Subir ↑

5. La declaración XML

Ya hemos señalado antes que el doctype debe ser la primera cosa que haya dentro de vuestros documentos HTML. Pues bien, eso es en realidad una versión simplificada de la verdad. También hay que tener en cuenta la declaración XML.

Es posible que en algunos documentos XHTML hayáis visto un fragmento de código con un aspecto similar al siguiente antes del doctype:

Texto plano
 

Esto se conoce como declaración XML, y cuando está presente debe estar insertada antes del doctype.

La versión 6 de Internet Explorer tiene un problema con esta declaración: hace que pase al modo Quirks y, tal como ya hemos explicado anteriormente, no es muy probable que queráis que eso suceda.

Por suerte, la declaración XML no es necesaria si no es que enviáis vuestros documentos XHTML como XML a los navegadores (podéis ver la nota al margen sobre el XHTML) y utilizáis una codificación de caracteres diferente de UTF-8 y vuestro servidor no envía un encabezamiento HTTP que determina la codificación de caracteres.

Las probabilidades de que sucedan todas estas cosas al mismo tiempo son muy pequeñas, por lo que la manera más sencilla de solucionar el problema de Internet Explorer es sencillamente omitir la declaración XML. ¡Pero no os olvidéis del doctype!

Resumen

Hay que incluir siempre uno de los doctypes mencionados como primer elemento dentro de todos vuestros documentos HTML. Esto garantizará que los validadores sepan la versión del HTML que utilizáis y así podrán informar correctamente de cualquier error que hayáis cometido. También garantizará que todos los navegadores más nuevos utilizarán su modo de estándares, con lo que obtendréis unos resultados más uniformes cuando diseñéis el documento con el CSS.

↑ Subir ↑

Comentarios

Bison - Martes, 08-11-2011 03:45

Well put, sir, well put. I'll ceraitnly make note of that.


No se permiten comentarios en este momento.