HTML es el lenguaje utilizado para escribir páginas web. Su principio fundamental, la utilización de ciertos elementos para estructurar los contenidos, sigue vigente desde los orígenes en los que surgieron las primeras páginas. Por ello, incluso la más vieja de las páginas se sigue visualizando perfectamente en cualquier navegador actual, incluidos los que no existían en aquellos primeros años, como Firefox o Chrome.En 1998 el W3C dio por finalizados sus trabajos sobre HTML y empezó a trabajar en su sucesor: el XHTML. Básicamente, el XHTML tiene una sintaxis similar, pero con reglas mucho más estrictas. Con ello, básicamente, se buscaba lograr unos resultados más consistentes independientemente del navegador utilizado. Aunque el XHTML se convirtió en el estándar a seguir por los profesionales del desarrollo web, un pequeño secreto lo hizo naufragar. Aunque una página incumpliera el estándar XHTML el navegador no dejaba de visualizarla. Nada impedía a un programador poco cuidadoso utilizar viejas sentencias HTML dentro de una página escrita con el estándar XHTML.
La solución parecía venir de la mano del XHTML2 que pretendían que el navegador rechazará las páginas que no cumplieran los estándares. Además trató de dejar fuera muchos de los caprichos y convencionalismos heredados del HTML. Desde el punto de vista más teórico, con todo ello se esperaba generar páginas más claras y hechas con más sentido. Pero obligaba a cambiar la forma de programar y a revisar todas las páginas ya construidas sin añadir nada positivo por el esfuerzo que eso conlleva. Así que el XHTML2 fue recibido por la comunidad de desarrolladores con un frío desprecio.Al mismo tiempo que esto sucedía, un grupo de gente empezó a enfocar el futuro del desarrollo web desde un punto de vista diferente. En vez de pensar en lo que estaba mal del HTML, se fijaron en lo que le faltaba al HTML. Es decir, las cosas que un desarrollador echaba en falta.
HTML en sus orígenes fue una herramienta para visualizar documentos. Luego, con la aparición del lenguaje javascript se convirtió en una herramienta para construir aplicaciones webs. Pero la complejidad de los sitios web realizados (tiendas de comercio electrónico, motores de búsqueda, foros, lectores de correo, etc.) también supuso una enorme dificultad para encajar todas las diferentes piezas que se tienen que utilizar (diferentes librerías, diferentes estándares, diferentes plugins) y obtener los mismos resultados en todos los navegadores disponibles.
Por eso el camino seguido por este grupo no consistió en reemplazar al estándar HTML, sino en ampliarlo para facilitar la compatibilidad con todos los navegadores. Así, su primera aportación fueron las especificaciones que recibieron el nombre de “Web Applications 1.0” y “Web Forms 2.0”. Con el tiempo estas normas se convirtieron en el embrión del estándar HTML5.
Finalmente, el W3C decidió abandonar el trabajo del XHTML2 y adoptó el estándar HTML5, y está trabajando en darle la formalidad necesaria. En este momento, el original HTML5 se ha dividido en varios trozos más manejables y muchas de sus característica originales han visto la luz en forma de diversas especificaciones. Por eso no hay un navegador que dé pleno soporte HTML5, sino que nos encontramos que cada navegador va soportando en cada nueva versión que publica, más subconjuntos de características relacionadas con HTML5.
Esto tiene su parte buena y mala. Es bueno porque permite implementar rápidamente nuevas porciones del estándar HTML5 mientras otras pares siguen desarrollándose. Es malo, porque obliga a los desarrolladores a estar constantemente comprobando el soporte que ofrece cada navegador a las nuevas características que desea implementar en su web.
El núcleo del HTML5 contemplado en la versión oficial de la especificación del W3C incluye las siguientes nuevas características:
- nuevos elementos semánticos.
- ampliación de las posibilidades de los formularios.
- soporte para vídeo y audio.
- el “canvas”[1] para dibujar utilizando javascript.
- Almacenamiento de datos en bases locales.
- Aplicaciones off-line que funcionan sin estar conectados a la red.
- Comunicaciones con el servidor web.
- La tercera versión de la especificación de las hojas de estilo en cascada (CCS3).
- Geolocalización.
Otro aspecto fundamental es el hecho de que ninguna página quedará obsoleta y dejará de funcionar. Las páginas no necesitan especificar que versión de HTML están utilizando, ni siquiera en su sección de cabecera. Los desarrolladores podrán optar por aprovecharse de las nuevas características y los diseñadores de los navegadores podrán optar por implementarlas y darles soporte. Aunque esto parece un caos y pueda generar inseguridad, la realidad es que la comunidad de desarrolladores web está funcionando de esta manera desde los inicios. La nueva política no hace más que adaptarse a la situación real existente. Llevamos años viendo que ciertos navegadores no cumplían los estándares ya aprobados. La única diferencia es que HTML5 asume que es un lenguaje vivo, en evolución y que los navegadores son herramientas nuevas en constante desarrollo que progresivamente van añadiendo soporte a nuevas técnicas.
La tercera aportación filosófica es que es mejor seguir “el camino trillado”. Si una cierta técnica es implementada por la mayoría de los navegadores merece recibir el estatus de especificación, aunque esta técnica tenga lagunas, sea confusa o difícil de utilizar.
La última consideración que se ha tenido en cuenta para definir las nuevas características HTML5 es la evidente necesidad de ser prácticos. Sólo se debe modificar aquello que tenga una evidente demanda. Cuántas más personas soliciten un determinado cambio, mayor será la recompensa. Hacer un lenguaje más bonito, más claro o más formal no es razón suficiente para cambiar el hábito de trabajo de millones de desarrolladores, que se opondrán a él por la lógica inercia que a todos nos empuja a seguir haciendo lo mismo que hemos hecho siempre.
Para terminar, una herramienta útil. Podemos encontrar una lista actualizada de las características soportadas por cada versión de los diferentes navegadores en la web http://caniuse.com/
[1] Canvas significa lienzo. Por eso se ha adoptado este término para definir el espacio donde se puede realizar presentaciones gráficas. La comunidad ha optado por utilizar el término inglés y nosotros hemos respetado esta costumbre.
| Próximo > |
|---|






