Búsqueda

jueves, agosto 18, 2005

DHTML, IBM y Firefox

El martes leí una noticia en El Mundo sobre la ayuda de IBM a Firefox para hacerlo más accesible (para el que no lo sepa, Firefox es un estupendo navegador web que, en mi opinión, supera al omnipresente Internet Explorer). La noticia dice que IBM ha donado código a la fundación Mozilla (la creadora de Firefox) para que la versión 1.5 del Firefox (ahora va por la 1.0.6) sea más accesible.

Hay que hacer notar que en este contexto, "accesibilidad" se refiere a las facilidades para que una persona discapacitada pueda utilizar el programa en cuestión. Un ejemplo de esto lo tienen los usuarios de Windows. Si van al Panel de Control, dependiendo de la versión que utilicen, aparecerá entre las diversas opciones, una de título "Opciones de accesibilidad" Icono de "Opciones de accesibilidad" del Panel de Control de Windows XPcon el clásico icono de un hombre en silla de ruedas. Allí podrán configurar cosas como el escuchar un pitido al presionar determinadas teclas, o que no sea necesario mantener pulsadas las teclas Sifth, Ctrl y Alt para realizar determinadas combinaciones de teclas.

La noticia es muy corta, y hay un párrafo que es engañoso:

Esta contribución, que fue anunciada por la compañía el lunes 15 de agosto, permitirá añadir las ventajas del lenguaje dinámico de hipertexto (DHTML) a la versión 1.5 de Firefox. Así, las páginas 'web' diseñadas para este navegador podrán ser leídas automáticamente, por ejemplo, o bien poder navegar por ellas mediante el uso del teclado, en lugar del ratón.

Este párrafo da a entender varias cosas: Por un lado, parece que el DHTML es algo nuevo de lo que Firefox carece y que lo tendrá a partir de la versión 1.5 gracias a IBM. Por otro lado, parece que hoy por hoy, es imprescindible el ratón para poder usar el Firefox, y que no se puede usar sólo con el teclado. Además, se establece una relación entre el DHTML y esa posibilidad.

Pues bien, eso no es así. ¿Que demonios es eso del DHTML? se estarán preguntando ya algunos. Bueno, para contestar, antes hay que explicar brevemente tres conceptos fundamentales en el mundo web: el HTML, las CSS y el JavaScript.

El HTML (Hyper Text Markup Language) es lenguaje que se utiliza para crear páginas web. Este texto que estás leyendo ahora mismo, está escrito en HTML. Este lenguaje, es lo que se llama un lenguaje de marcas. Esto básicamente quiere decir que tú escribes el texto que quieres mostrar tal cual, y utilizas determinadas marcas para indicar un enlace, una imagen, un texto en negrita, etc. Si utilizáis la opción "Ver código fuente" de vuestro navegador (normalmente accesible con el botón derecho del ratón), veréis el código HTML de esta página. Habrá muchas cosas que no se entiendan a simple vista, pero se puede ver que los textos que leéis están ahí. Hay que tener muy claro que el HTML es simplemente un lenguaje para presentar información de forma estática. Nada más.

Las CSS (Cascading Style Sheet) son una especificación para dar estilo y formato a la página. Yo puedo decir perfectamente en HTML que un texto vaya en negrita, utilizando la etiqueta <b>, o puedo cambiar el color de un texto mediante la etiqueta <font>. Pero entonces estaríamos mezclando el contenido con el formato. Es buena idea separar de alguna manera la estructura del documento de la apariencia que debe tener. Y para eso se crearon las CSS. Utilizando CSS, uno puede hacer que toda la información relativa a la apariencia de una página esté en lo que se llama una "hoja de estilos" y quede completamente separada del HTML que es el contenido. Así, podemos cambiar la hoja de estilos para variar completamente la apariencia, pero sin tocar una sola coma del HTML. Un buen ejemplo de esto lo tenemos en la web CSS Zen Garden, donde hay una interesante colección de hojas de estilo aplicadas a la misma página. Pinchad aquí, aquí y aquí. Aunque parezca mentira, todas son exactamente la misma página, pero con estilos diferentes. Si no me creéis, mirad los textos y los encabezados, o mejor aún, el código HTML.

Finalmente, el JavaScript es un lenguaje de programación interpretado que permite realizar multitud de cosas en una página web, como pequeñas animaciones, ventanas emergentes, incluso modificar el contenido de la página.

Vale, todo esto es muy interesante, pero ¿qué demonios es el DHTML? Pues el DHTML no es más que el nombre que le dan algunos fabricantes a la combinación de HTML, CSS y JavaScript, para crear páginas web más "dinámicas" y vistosas. En realidad, el DHTML no es nada tangible. No es un estándar, ni una especificación, ni un lenguaje. Es una forma de darle un nombre a una mezcla de cosas.

Una vez explicado esto, veamos los errores de la noticia. El primero es decir que gracias a IBM, la versión 1.5 de Firefox contará con DHTML. Veamos, como todo navegador, Firefox "comprende" el HTML y "pinta" las páginas en consecuencia. Además, es uno de los navegadores con mejor soporte de CSS que existen (no me atrevo a decir que el mejor, pero si no lo es, le falta poco). Y como todo navegador moderno, es capaz de interpretar JavaScript. Esta combinación de factores lo convierte en una navegador que ya tiene DHTML.

El segundo es el afirmar que la donación de IBM permitirá la navegación con el teclado, en vez de con el ratón. Bueno, al igual que muchos otros navegadores, el Firefox se puede utilizar sólo con el teclado. Presionad ahora mismo la tecla TAB varias veces. Veréis que el foco (un rectangulito punteado) se va desplazando por los enlaces de la página. Si presionáis la tecla Enter, iréis a la página del enlace seleccionado. También podéis utilizar las flechas del cursor "arriba" y "abajo" para mover la página.

Pero esa forma de navegar es muchas veces tediosa, y ahí está el quid de la cuestión. El código que dona IBM a Mozilla, lo que permitirá es que la navegación mediante el teclado pueda ser mucho más cómoda y sencilla, permitiendo que personas con problemas de mobilidad (y que no puedan utilizar un ratón), puedan navegar de forma rápida.

Otro error es el decir que ese código donado, permitirá que las páginas sean leídas. Bueno, supongo que con "leídas" se referirá a que sean leídas en voz alta por algún software de síntesis de voz, para que un invidente pueda saber lo que dice una página. Pero nuevamente, eso es algo que ya se puede hacer. Lo que hará ese nuevo código es permitir mejorar la forma en la que ese software interactua con la página.

Finalmente, la noticia parece dar a entender que el DHTML está relacionado con la accesibilidad de las páginas web, cuando la triste realidad es que en muchos casos, el DHTML se utiliza para añadir molestas animaciones y efectos visuales, en la creencia de que así la página será más vistosa. Bueno, puede que sea más vistosa, pero eso mismo hace que sea más dificil aún de moverse por ella sólo con el teclado, o de ser correctamente interpretada por un software para invidentes.

En defensa del redactor de la noticia, diré que la fuente original (IBM) también es engañosa con respecto a estos temas. Esto es algo por desgracia bastante habitual en este tipo de notas de prensa. Se envuelven en paquetes muy bonitos que deforman la realidad.

4 comentarios:

  1. Genial. Veo que siempre puedo recurrir a ti para aprender cosas. Un saludo.

    ResponderEliminar
  2. Desgraciadamente es como dices, el hacer las páginas DHTML normalmente convierte las páginas en poco accesibles con teclado e incompatibles entre navegadores.

    Es muy fácil (copy & paste) meter un montón de cosas danzando por la pantalla, así como realizar menus desplegables, pero todas estas cosas en algún momento degradan la usabilidad de la página.

    Zen Garden es todo un ejemplo de a lo que deberían aspirar los diseños de página web.

    Saludos!

    ResponderEliminar
  3. No tiene ninguna importancia, pero no estoy del todo de acuerdo con la definición dada de DHTML (que es la que viene en la wikipedia). Me sobran las CSS. Hace unos años las CSS prácticamente no se usaban (sólo IE, y parcialmente, las soportaba) y sin embargo el palabro DHTML ya existía, refiriendose a usar Javascript para modificar el HTML directamente (de ahí lo de Dynamic HTML, lo que se modificaba no era la apariencia, sino algo más: se podía modificar el propio código HTML). Ahora se hace más con CSS, que es más lógico, pero el significado debería ser el primigenio. De hecho se puede usar Javascript para controlar no solo CSS, sino elementos en Java o Flash incrustados en la página, con lo cual también deberían entrar en la definición.

    ResponderEliminar
  4. Tienes razón.

    El problema es que la definición de DHTML es demasiado difusa, ya que no define nada concreto. La de la wikipedia parece ser la más aceptada ultimamente, si bien recuerdo otras como la de Microsoft, a finales de los 90, en la que el DHTML era la mezcla de HTML y VBScript (y por supuesto, sólo para Internet Explorer).

    Seguro que en un par de años (no más) veremos otra definición diferente.

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.