Uninstallme

Para muchos de los que comenzamos en esto en la época de la revolución CSS, el boom del Zen Garden (en España) y la agonía de la maquetación con tablas, Javascript ha sido visto como algo sucio, molesto y que ponía en peligro la accesibilidad de las páginas.

No es de extrañar teniendo en cuenta que en aquella época veíamos que Javascript servía para que objetos de todo tipo persiguieran el cursor por la pantalla, nevara sobre las páginas, se deshabilitara el botón derecho del ratón, en la barra de estado del navegador apareciera un mensaje en movimiento y sobre todo, para lanzar popups sin nuestro consentimiento.

Tal era nuestro empeño en evitarlo siempre que fuera posible, que hemos hecho menús desplegables o galerías de imágenes (carruseles) sólo con CSS convencidos de que era la opción más accesible, precisamente en casos en que no lo es.

Como otras muchas cosas, Javascript no es bueno ni malo en sí, sino que depende del uso que se le dé. Su propósito en aquellos años, exceptuando la validación de formularios, no dejaba de ser relativo a la presentación, mientras que en la actualidad su principal propósito es añadir un extra de usabilidad a las páginas, además de conseguir efectos de presentación que a día de hoy no se pueden lograr sólo con CSS.

Habrá muchos casos en los que el uso de Javascript proporcionará más accesibilidad que una solución basada sólo en CSS. Un ejemplo claro es un menú desplegable, en el que, si no usamos Javascript, los usuarios de teclado tendrán dificultades, por no decir que les será imposible acceder a los submenús de cada opción, ya que sólo los elementos clicables o campos de formulario pueden tener el foco.

Como comentaba en un párrafo anterior, todo puede ser beneficioso si se usa correctamente. Desde hace unos años, se ha cambiado la forma de usar Javascript gracias a los principios de lo que en inglés se ha llamado “Unobtrusive Javascript” y en español… de mil formas distintas (no intrusivo, no molesto, etc.)

Siguiendo estos principios conseguiremos que Javascript sea una mejora sin comprometer la accesibilidad. Por poner unos pocos ejemplos:

  • Los contenidos ocultos que deban ser visibles sin Javascript, se ocultarán con Javascript y no previamente con CSS o en el HTML con estilos en línea.
  • Los enlaces que ejecuten una función seguirán siendo navegables con Javascript deshabilitado o no soportado, es decir, tendrán un destino de enlace.
  • Los elementos cuya presencia atienda solamente a la ejecución o explicación de una funcionalidad Javascript, por ejemplo un texto “Mostrar / Ocultar”, también serán generados con Javascript evitando la existencia de elementos sin sentido que podrían resultar confusos con Javascript deshabilitado.

A pesar de todo esto, el uso de Javascript seguirá poniendo en riesgo la accesibilidad para algunos colectivos como los usuarios de lectores de pantalla, ya que, más por desgracia que por suerte, estos agentes de usuario soportan javascript de una forma bastante deficiente causando más daño que beneficio.

Hay incluso quien propone que los usuarios de lectores de pantalla antiguos deshabiliten javascript:

If we are doing things right, we should be able to tell users of older screen readers software to turn JS off for more consistent experience.

A mí personalmente, esta solución me parece tan mala como decir aquello de “para una mejor visualización te recomendamos que uses x navegador”.

Por otra parte está el cada vez más omnipresente AJAX, que presenta problemas de navegabilidad similares a los que en su día presentaban las páginas con marcos y es un gran problema para usuarios de lectores de pantalla, que no pueden advertir fácilmente los cambios dinámicos de contenido debido a la lectura y navegación lineal de sus agentes de usuario. Aun así no se puede negar que Ajax proporciona una mejor experiencia de usuario al evitar tiempos de espera, aunque su uso debería estar restringido a pequeñas cosas, como por ejemplo sugerencias de búsqueda en campos de formulario, y ser siempre prescindible.

La conclusión que se puede sacar de todo esto es que no hay un navegador, ni un usuario, ni un contexto ni circunstancias perfectas para que todo funcione sin problemas, pero tampoco podemos evitar por norma el uso de las tecnologías de las que disponemos cuando pueden ofrecer una mejora. Javascript o Flash son dos ejemplos.

WAI-ARIA: contenidos dinámicos accesibles (Actualización 18 Octubre 2008)

Tengo que corregir o ampliar lo dicho sobre los problemas de accesibilidad que presentan los contenidos generados con AJAX, ya que gracias a WAI-ARIA, podemos añadir la semántica necesaria a contenidos dinámicos generados con javascript, se use o no AJAX, para que tecnologías asistivas como lectores de pantalla, sepan cómo interpretar e interactuar con estos contenidos.

Más información sobre WAI-ARIA:

Deja tu comentario

Los campos marcados con (*) son obligatorios