¿Cuáles son las diferencias entre HTML4 (XHTML 1.0) y HTML5?

El W3C ha preparado un documento, HTML5 differences from HTML4, en el que detalla las principales diferencias entre HTML4 (y su variante según XML, XHTML 1.0) y la nueva versión del lenguaje, HTML5.

Algunas de las principales diferencias son:

  • HTML5 define una sintaxis que es compatible con HTML4 y XHTML 1.0. Por tanto, un salto de línea se puede escribir como <br> (HTML4) o <br /> (XHTML 1.0).
  • Para definir el juego de caracteres se introduce un nuevo atributo para la etiqueta <meta>:
    <meta charset=”UTF-8″>
    aunque todavía es posible utilizar el método tradicional:
    <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
  • Se simplica el DOCTYPE:
    <!DOCTYPE html>
  • HTML5 permite incluir elementos de SVG y MathML.
  • Se introducen nuevos elementos, como: section, article, aside, header, footer, etc.
  • Se introducen nuevos atributos, como: media, charset, autofocus, placeholder, etc.
  • Algunos elementos cambian, como: a, b, i, menu, etc.
  • Algunos atributos cambian, como: type, name, summary, etc.
  • Algunos elementos desaparecen, como: basefont, big, center, etc.
  • Algunos atributos desaparecen, como: align, background, bgcolor, etc.
  • Mejora de las API, como: getElementsByClassName() y innerHTML.

Primeras críticas para HTML5

En el períodico El País ha sido publicado el artículo del El nuevo código de la web plantea dudas de privacidad.

La noticia dice:

Todavía sin una fecha de implantación concreta las críticas han comenzado a multiplicarse por los posibles problemas de privacidad que plantean las nuevas etiquetas del código HTML. Entre las ventajas del nuevo código se destaca la creación de etiquetas mucho más concretas y semánticas; más etiquetas pero también más ordenadas.

Un artículo del New York Times alerta a los navegantes: El navegador podrá compartir datos sobre el posicionamiento de usuario y los contactos a los que escribe.

El problema surge porque HTML5 incluye un nuevo API para el navegador con el fin de que las aplicaciones web (y por tanto, el servidor web, terceras personas) tengan conocimiento de la posición espacial (geolocalización) del usuario.

Pero no hay que tener miedo, ya que como podemos leer en el apartado 4 Security and privacy considerations de la especificación Geolocation API Specification del W3C:

The API defined in this specification is used to retrieve the geographic location of a hosting device. In almost all cases, this information also discloses the location of the user of the device, thereby potentially compromising the user’s privacy. A conforming implementation of this specification must provide a mechanism that protects the user’s privacy and this mechanism should ensure that no location information is made available through this API without the user’s express permission.

Es decir, un navegador no debe enviar información sobre la localización del usuario sin expreso consentimiento de este.

Más información: