HTML 5 en todos los navegadores

Hace ya un tiempo que no comento cosas de HTML 5, y ahora que se va acercando la fecha de su puesta en marcha ya muchos proyectos nuevos se plantean, al menos la estructura base, comenzarse en esta nueva versión del idioma de Internet. En su día comenté cómo conseguir que, mediante un pequeño script, funcionase HTML5 en Internet Explorer 8. El tema es ¿cómo hacer que funciona siempre?

La solución es bastante sencilla y a la vez también algo compleja, aunque en su día permitirá hacer una actualización bastante rápida del código con un simple “replace”. Como ya sabéis, HTML 5 es un markup, al igual que lo son el HTML, los XML, el RDFa, etc… de forma que, lo mismo que podemos cargar XML en el código HTML… ¿por qué no cargar HTML 5 de la misma manera?

La idea es que, aquellos nuevos elementos que pueden no funcionar en todos los navegadores de forma correcta podemos cargarlos de la siguiente manera:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:html5="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8"/>
  <title>Demo HTML5</title>
  <style>
    html5\:section {
      display: block;
    }
  </style>
</head>
<body>
  <h1>Demo HTML5</h1>
  <html5:section>Este <strong>&lt;html5:section&gt;</strong> funciona incluso en Internet Explorer.</html5:section>
</body>
</html>

El día en que se vea que todos los usuarios usan un navegador “compatible”, se hace un simple “reemplazar” de <html5: por < y de </html5: por </ y ya está… ¡prueba superada!

Un buen punto de partida para aquellos que quieran comenzar a hacer sus primeros códigos y ver que cualquier usuario lo ve correctamente.

7 comentarios en “HTML 5 en todos los navegadores”

  1. Esto sería una buena idea en teoría, pero para que esto fuera “legal” tendrías en enviar el contenido como pplication/xhtml-xml mime types, el cual ni siquiera IE8 soporta correctamente. Básicamente con esto consigues un pastiche de XHTML5, con namespaces.

    No digo que no sea una buena propuesta, pero está lejos de lo que sería una serialización en XML, y por lo tanto código realmente correcto que ayuda a los parseadores a cargar un documento x10 veces más rápido.

    ps: si solo usas no conseguirás soporte completo utf-8 en IE, debes usar content-type como “antaño” ;)

  2. En el comentario se ha recortado el html, sorry:

    ps: si solo usas <meta charset=”utf-8″/> no conseguirás soporte completo utf-8 en IE, debes usar content-type como “antaño”

  3. Lo que también me preocupa de esta solución, ya que el documento no está serializado de ninguna manera, es como estar seguros de que google interpretará xmlns:html5 como contenido semántico HTML5.

    En teoría debería no tendría que haber problemas. ¿Qué opinas?

  4. Hola Luis!

    Esta es una propuesta que hacen de forma “oficial”, y que en teoría hace que funcione… el que funcione en las versiones antiguas del navegador básicamente se basa en que estén cargados los elementos en el DOM o no… como ya he comentado alguna vez, yo he conseguido ver HTML5 en Explorer 6, no de forma maravillosa, pero la verdad, si alguien usa Explorer 6 no lo quiero como cliente, y tampoco voy a dejar de aplicar nuevas tecnologías porque este tipo de perfil de usuarios no pueda navegar por la web…

Deja un comentario