Universidad de Alicante
Departamento de Lenguajes y Sistemas Informáticos

Accesibilidad Web

Buscador

Migas de pan

Estás en: Accesibilidad web > Ejemplos > Errores típicos > JavaScript > Accesibilidad de las aplicaciones AJAX

Accesibilidad de las aplicaciones AJAX

Nota: está es una traducción al español autorizada por WebAIM del artículo original en inglés Accessibility of AJAX Applications.

Contenido del artículo

Autor: WebAIM, Center for Persons with Disabilities, Utah State University

¿Qué es AJAX?

AJAX es un conjunto heterogéneo de tecnologías web utilizadas conjuntamente para permitir que las interacciones dinámicas cliente-servidor comunes en las aplicaciones web, se realicen sin que estas requieran recargar o refrescar la página. AJAX es el acrónimo de Asynchronous JavaScript and XML (JavaScript Asíncrono y XML). AJAX no es una tecnología en sí misma - es una combinación de tecnologías usada de una manera concreta. AJAX utiliza distintas tecnologías de la siguiente forma:

Utilizando AJAX, las aplicaciones web pueden permitir altos niveles de interactividad y de procesamiento, sin requerir las interacciones estándar entre cliente-servidor, que constan de los siguientes pasos:

  1. Se presenta una interfaz de la página Web.
  2. Se recoge información del usuario (a través de formularios, enlaces, etc.)
  3. El usuario envía la información (envía el formulario, se activa un enlace, etc.)
  4. El servidor procesa la información enviada.
  5. El servidor responde con una nueva interfaz de la página web que es enviada al usuario.

Con AJAX, todos estos pasos se pueden realizar en la misma interfaz. Algunos ejemplos de uso de AJAX son las aplicaciones de mapas, búsquedas en tiempo real, chat, validación de formularios en tiempo real y procesamiento en segundo plano, aplicaciones de carro de compras, aplicaciones de correo electrónico, y la lista continua. Las aplicaciones web y la interacción mediante el uso de AJAX han dado origen al término "Web 2.0" - término que sin duda indica una gran revolución en el modo en que se hace uso de la web. Si bien ninguna de las tecnologías que componen AJAX son nuevas o innovadoras, la creciente popularidad y uso de AJAX conlleva la necesidad de que los desarrolladores conozcan las implicaciones para la accesibilidad que estas tecnologías acarrean.

¿Por qué AJAX?

Como se mencionó anteriormente, AJAX permite crear aplicaciones web más dinámicas y ricas en características, utilizando procesamiento del lado del servidor sin requerir la metodología tradicional de "enviar datos - recibir la página web modificada. Utilizando el objeto XMLHttpRequest, los datos pueden ser transmitidos en segundo plano y con JavaScript se puede modificar la interfaz de la aplicación y mostrar información dinámica. Esto implica aplicaciones web más ágiles ya que requieren menos procesamiento y menor transmisión de datos, principalmente debido a no tener que generar la página entera cada vez que ocurre algún cambio en ella. En lugar de esto, una aplicación web refleja todos los cambios que se producen. Es posible utilizar JavaScript para conseguir mayores niveles de interactividad de los que se consiguen utilizando únicamente HTML (por ejemplo, atajos de teclado, hacer clic y arrastrar, etc. en Google Maps).

¿Por qué no usar AJAX?

AJAX puede no funcionar en todos los navegadores. Como su nombre indica, AJAX requiere JavaScript. Esto significa que las aplicaciones AJAX no funcionarán en navegadores web y dispositivos que no soporten JavaScript. Por esta razón no es accesible para muchos usuarios web típicos. Las guías para contenido web accesible (Web Content Accessibility Guidelines) requieren que las aplicaciones web funcionen aunque JavaScript esté deshabilitado o no esté soportado por el navegador. AJAX además requiere que el navegador soporte el objeto XMLHttpRequest, cosa que muchos navegadores no hacen.

La solución actual a estos problemas es proveer una alternativa sin AJAX para tu aplicación y permitir que la aplicación AJAX continúe funcionando aunque no se soporte JavaScript o XMLHttpRequest. Este requisito puede ser muy difícil de conseguir. Los desarrolladores pueden optar por exigir a los usuarios utilizar navegadores que soporten AJAX, pero deberían entender que cumplir este requisito no es posible para todos los usuarios - especialmente para los usuarios de dispositivos móviles o con navegadores antiguos.

Por su propia naturaleza, AJAX tiende a actualizar y manipular elementos de la interfaz "al vuelo". Además AJAX puede enviar información al servidor sin interacción del usuario o hacerlo por métodos que no son obvios para el mismo. Por ejemplo, muchos usuarios esperan a que los formularios sean enviados, validados y procesados cuando presionan un botón de submit, pero con AJAX este proceso puede darse sin que sean conscientes (e.g. cada 5 segundos, cuando un elemento del formulario pierde el foco, etc.). Puede no ser intuitivo para los usuarios que la información ha empezado a ser procesada y guardada - y esta confusión se puede intensificar por el hecho de que AJAX es capaz de realizar estas operaciones muy rápidamente. Muchos usuarios esperan en estos casos algún retardo antes de la respuesta o de que se presente alguna información adicional y normalmente esperan que la página entera se refresque mostrando una nueva visualización - con AJAX, ninguna de estas indicaciones visuales pueden ser apreciables.

Otra cuestión con AJAX es la forma en que se actualiza la interfaz de aplicación. Cuando se realiza una actualización de la interfaz, puede que no sea evidente que el cambio se ha realizado. El problema es todavía mayor para los usuarios de lectores de pantalla. Los lectores de pantalla normalmente leen de forma lineal. Cuando ha ocurrido un cambio en la interfaz, el usuario de un lector de pantalla puede no darse cuenta del cambio y es probable que el contenido nuevo no se lea.

Resumiendo, para permitir que las interfaces dinámicas sean accesibles, la aplicación debe alertar al usuario cuando ocurre un cambio, permitir el acceso directo al nuevo contenido, y en consecuencia permitir un funcionamiento continuo de la aplicación web. Lograr este objetivo es complejo, especialmente para usuarios de lectores de pantalla, pero se puede conseguir en muchas aplicaciones AJAX. La parte 2 de este articulo presenta posibles soluciones para algunas de estas cuestiones, incluyendo los métodos con ARIA (Accessible Rich Internet Applications) que pueden hacer que el contenido dinámico sea más accesible.

Ver también:

Traducción autorizada realizada por: Iván Perea Fuentes

Estándares, licencia y contacto