EL !DOCTYPE (Document Type Declaration) es usado tradicionalmente para especificar a los navegadores el lenguaje y/o versión con el que está escrito un documento HTML.

El doctype para HTML 4.01 tiene la siguiente apariencia:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Este es el doctype para XHTML 1.0:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

No están escritos en lenguaje "humano" pero simplemente vienen a decir algo así: “este documento ha sido escrito en HTML 4.01” o “este documento ha sido escrito en XHTML 1.0.”

Se podría esperar que para HTML5 la declaración del doctype fuera “este documento ha sido escrito en HTML5” debería tener un número 5 en algún sitio, pues no, el doctype para HTML5 quedaría así:

<!DOCTYPE html>

Cuando lo vemos por primera vez nos puede resultar raro no encontrar un número de versión, y sobre todo, ¿cómo se especificarán futuras versiones de HTML? ¿Realmente piensan que esta será la definitiva?

Detengámonos a pensarlo por un momento, el doctype de HTML5 es muy pragmático. Debemos tener en cuenta que una de las premisas de HTML5 es que tiene que soportar el contenido existente, el doctype de HTML5 deberá poderse aplicar a documentos ya escritos en  HTML 4.01 o XHTML 1. Las futuras versiones de HTML deberán también soportar el contenido en HTML5, por lo que ponerle un número no sería lo más conveniente.

La verdad es que el doctype no es lo más importante. Supongamos que tenemos un documento con un doctype para HTML 4.01. Si ese documento contiene elementos de otras especificaciones, como HTML 3.2 o HTML5, el navegador mostrará esa parte del documento. Los navegadores soportan funcionalidades no doctypes.

HTML5 – Simplificando

El doctype no es la única cosa que se ha simplificado en HTML5.

Si usted quiere especificar la codificación de caracteres del marcado de un documento, la mejor forma es asegurarnos que el servidor envía en correcto Content-Type del header. Si quiere estar doblemente seguro puede especificar los caracteres utilizando la etiqueta <meta>. Aquí podemos ver cómo se utiliza la etiqueta meta para un documento escrito en HTML 4.01:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Así sería en HTML5:

<meta charset="UTF-8">

La etiqueta <script> también sufrió algunas simplificaciones. Es común añadir un atributo type con el valor de “text/javascript” a los elementos script:

<script type="text/javascript" src="file.js"></script>

Los navegadores  no necesitas ese atributo. Ellos asumen que es script está escrito en  JavaScript, el lenguaje de programación más popular  the most popular en la web.

<script src="file.js"></script>

De la misma manera no es necesario especificar el valor type de “text/css” cada vez que se enlaza a un fichero CSS:

<link rel="stylesheet" type="text/css" href="file.css">

Simplemente se escribe:

<link rel="stylesheet" href="file.css">

Estas son algunas de las características de HTML5, próximamente seguiremos presentándolo.