HTML5 es la última revisión en el que se encuentra laborando la W3C. Propuesto hace poco más de 4 años atrás con la finalidad de poder crear una librería más semántica introduciendo etiquetas más acomodadas al uso común.
Etiquetas tales como “header”, “nav”, “section”, “article”, “aside”, “details”, “audio”, “video”, “time”, “progress”, “canvas”, “footer”, entre otras, son las que ahora definen la forma como escribimos HTML.
Si con HTML4.1 teníamos que hacer lo siguiente para definir el listado de navegación de una web:
<ul class="nav">
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
</ul>
Ahora disponemos de una etiqueta específica para el efecto en HTML5:
<nav>
<div><a href="#">Item 1</a></div>
<div><a href="#">Item 2</a></div>
<div><a href="#">Item 3</a></div>
</nav>
Como ven, más simple no puede ser. Gracias a la nueva etiqueta “nav” no se necesita aplicar una clase al objeto directamente, porque podemos apuntar a este desde nuestro CSS.
Personalmente me inclino por HTML5. Ya he desarrollado proyectos basados en esa modalidad y continuaré con él, porque no podemos seguir cercenando camino al desarrollo de la tecnología a causa de que ciertos navegadores (léase Internet Explorer 8 y anteriores) no lo soportan.
Esto viene a la sazón de leer los comentarios de un artículo más de muchos dedicados al tema, en los que la gente todavía insiste en no recomendar su uso dizque porque aún no es un estándar.
Es cierto, HTML5 no es un estándar y se encuentra en estado de “draft” en la W3C, pero el primer error que puede cometer alguien con una tecnología, es no confiar en ella aunque le convenga. Una tecnología se convierte en estándar cuando es consumida y/o usada de forma masiva. Si se detiene ese proceso, el desarrollo o mantenimiento de esa tecnología se estanca y desaparece.
Vamos, si se estanca HTML5, se estanca también la belleza que aportan WebGL, videotag, canvas, CSS3 y otros tantos que aportan más que tecnologías “dinosáuricas” como Flash.
Es tiempo de cambiar esa mentalidad. El problema con la falta de compatibilidad de los navegadores ya no es por los propios navegadores, sino por los visitantes a nuestros websites. Algo que debemos introducir en nuestro mecanismo de trabajo es la forma de cómo enrutar los visitantes a que usen navegadores modernos. No podemos permitir detener el desarrollo de una tecnología simplemente porque existen muchos usuarios con navegadores antiguos.
Existen dos alternativas para lograr la compatibilidad de nuestros proyectos con los visitantes, que se pueden usar de forma independientes o combinadas:
- Presentando algún mensaje como browser-update que incite a cambiar o actualizar el navegador por razones de peso, como seguridad, velocidad o una mejor experiencia de usuario.
- Usar javascripts como Modernizr, que generan los objetos del DOM necesarios para que navegadores antiguos puedan entenderse con las nuevas etiquetas de HTML5.
Siempre he preferido lo simple, lo menos complejo y que menos tiempo tarde en cargar, porque lamentablemente Modernizr u otros scripts del mismo tipo tienden a ser ligeramente pesados, tornando el tiempo de rendering de la página más extenso. Personalmente sugiero utilizar el script que genera los elementos del DOM:
<script type="text/javascript">
/* < ![CDATA[ */
(function(){
var obs = ['header','nav','section','article','abbr','aside','hgroup','figure','bb','datagrid','dialog','eventsource','details','audio','video','time','mark','meter','summary','output','progress','figcaption','datalist','canvas','footer'];
for (var i = 0, c = obs.length; i < c; i++) document.createElement( obs[i] );
})();
/* ]]> */
</script>
Extremádamente liviano y sin exigerle muchos recursos al navegador. Lo aplicamos en el <head> de la página para que los elementos se creen antes de cargarse el resto del markup. Las nuevas etiquetas de HTML5 son objetos inexistentes en HTML4.1, por lo que navegadores como Firefox 2.1 e Internet Explorer 5-6-7-8 no las reconocen. Al crear tales etiquetas a través del DOM antes de cargarse el HTML, cubrimos parte de las deficiencias que puedan provocar esos navegadores inútiles en nuestro proyecto.
Es tiempo de cambiar la mentalidad. Si damos el primer paso en desmitificar que HTML5 todavía no es un estándar, en el proceso cambiamos la mentalidad de los visitantes para que actualicen sus navegadores.