Una disquisición respecto al caótico mundo de los estándares y los navegadores web.

De un tiempo a esta parte he redescubierto los estándares. No es que nunca los haya tomado en cuenta, pero los había relegado a un rincón polvoriento de mi conciencia en aras de la sanidad mental.

¿Por qué? Porque los estándares son lo menos estandarizados que hay.

En 1997 la cosa era sencilla. Los browsers eran tan primitivos y limitados que se estaba obligado a hacer cosas simples. No existía el boom de los editores WYSIWYG (What You See Is What You Get, o Lo Que Ves Es Lo Que Obtienes ( podríamos nombrarlos LQVELQO)) y las tecnologías tipo flash necesitaban aún muucho desarrollo.

Así que sólo estaba el HTML y tú (por lo menos para los menos iniciados).

Pero de a poco fuimos viendo los problemas de implementación. Las tablas no se rendereaban igual, no daba lo mismo que tu código tuviera espacios en blanco, habían tags que no funcionaban en uno u otro browser… y   la cosa fue empeorando. Funcionalidades completas comenzaron a perderse de una versión a otra de los navegadores… y comenzó la guerra. Microsoft vs todos los demás. Y en el medio quedamos los desarrolladores.

Entonces surgió la idea del «este sitio está optimizado para Narcolepx 0.005 beta», en el que se optaba por un browser y se dejaba de lado todo lo demás. No muy elegante ni democrático, pero las soluciones desesperadas son así.

Cuando descubrí que en uno de mis sitios la mayoría usaba explorer 5.+, decidí diseñar para ese y dejar de quebrarme la cabeza con los demás. Y así estuve hasta que me topé de bruces con la cruda realidad: el log de mi sitio personal muestra que el 45% de las sesiones eran servidas para Netscape 4.+

Especulando y razonando llegué a la única conclusión posible: los estudios de uso de la web reflejan la realidad Norteamericana y no la nacional. Ni siquiera la latinoamericana.

¿Alternativas? Diseñar la web como se supone que debe ser hecha: siguiendo las especificaciones del w3c (World Wide Web Consortium). El razonamiento era perfecto: estos tipos definen qué hace cada marca del html, por lo que usando lo que ellos dicen, todos los browsers deberían verlo bien. Nada más alejado de la realidad.

El w3c especifica RECOMENDACIONES. No obliga a que nadie las siga. Así que de nuevo la implementación de cada tag es levemente distinta de navegador a navegador. Y a veces no tan leve, sino que gigantescamente.

El caso más patético es el uso de las Cascadas de Estilo (CSS para abreviar). Vamos en la especificación 2, pero los browsers aún no se ponen de acuerdo para respetar la especificación 1. Mi sitio es la prueba palpable. No usa tablas, sino sólo CSS para la diagramación y el «look & feel», como diría algún siútico por allí. Hacerlo fue un parto, pues si funcionaba en IExplorer, fallaba en Mozilla. Si lograba que anduviera en los dos, se pifiaba en Opera. Y qué decir cómo lo ven en Macintosh.

Para que lograra verse medianamente bien en todos tuve que recurrir a un par de hacks (trucos que engañan a los motores de renderización de los browsers, explotando fallas existentes del navegador), que no dejan de ser la versión sofisticada del «diseñar un sitio distinto para cada navegador».

Este fue un punto controversial en el reciente seminario de Arquitectura de la Información y Usabilidad para la Web, dictado en la Universidad de Chile por el Centro de Investigación de la Web (CIW). Uno de los panelistas planteó que hay que diseñar para la tecnología más atrasada que visite tu sitio. Si seguimos ese razonamiento, como lo hizo ver un asistente, deberíamos diseñar de la misma forma como lo hacíamos en 1996. O como en el caso de una Intranet donde trabajé, hacer las imágenes a 16 colores porque no todos los computadores tenían seteada una mayor resolución. O yéndonos a los extremos, hacer los monos en escala de grises. O prescindir de ellos. O sólo usar texto. U olvidarse de las tablas…

¿Dónde está el límite? ¿debemos seguir esa directriz? ¿debemos seguir diseñando par tecnologías obsoletas? ¿debemos forzar a que la gente actualice sus navegadores?

Así se ve este artículo en Netscape 3

Estas son preguntas con las que me topo cada vez que diseño un sitio. Y me doy cuenta que las respuestas sólo pueden ser tomadas individualmente. Mi sitio personal se olvidó de los browsers antiguos. Miento. Los toma bastante en cuenta, pero renuncié a que vean el sitio igual que los browsers nuevos. En su lugar ven todo como una página blanca con texto sin formato (usando, eso sí, listados, encabezados, negritas y cursivas). ¿Cómo hice esto? Probando el diseño en Iexplorer 6 y en Netscape 3.

En suma: la implementación de los estándares es difícil, no porque sea especialmente compleja, sino porque los browsers los interpretan de forma distinta. El uso de editores LQVSLQO tampoco ayuda, pues mucho del código que generan no es estándar (aunque la cosa mejora: Dreamweaver MX es bastante bueno al respecto, mientras que FrontPage es mejor tirarlo a la basura). Pero hay que hacerlo. La tecnología sigue avanzando y quizás en el futuro ningún browser siga igual que hasta ahora. Se viene el XML y los navegadores de última generación, que posibilitarán la migración de datos desde aplicaciones en el pc del usuario y el sitio web o viceversa. Y si nuestros códigos no están bien formateados, no soportarán el cambio. En sitios pequeños no es problema, pero para entornos con cientos o miles de páginas, es gigantesco.

¿Para qué hacer las cosas mal si se pueden hacer bien? Si partimos de la base de que nadie nos verá exactamente como queremos, podemos liberarnos de la dictadura del pensamiento soporte-papel y hacer diseños adaptables, con aceptables márgenes de error o cambio. Y que más encima se verán en todas partes, aún cuando la diagramación o la presentación sea eliminada. Porque al final ¿qué es lo que importa en nuestros sitios? Mi respuesta es una sola: el contenido.