desarrollo de aplicaciones asistente o alternativas

Anuncio
DESARROLLO DE APLICACIONES ASISTENTE O ALTERNATIVAS
MEDIANTE APLICACIONES WEB (CASO PRÁCTICO: AWAKE)
Eric Rodríguez Suazo, José G. Zato Recellado
Escuela Universitaria de Informática de la Universidad Politécnica de Madrid
Campus Sur, Ctra. Valencia km.7, 28031 Madrid, España
[email protected], [email protected]
RESUMEN
Este artículo presenta una propuesta para el desarrollo o transformación, según el caso, de
navegadores y aplicaciones alternativas en general a aplicaciones Web mediante el uso de
distintas tecnologías Java. Se comenta a su vez un caso práctico: la transformación de AWAKE,
un navegador Web diseñado para personas con discapacidades físicas severas a una aplicación
Web. Se pretende dar a conocer los grandes beneficios de este enfoque y mostrar a su vez al
lector las posibilidades e impacto que un desarrollo de este tipo puede tener en la sociedad.
Palabras Claves: Acceso a Internet, Navegación Alternativa, Aplicaciones Web
1. INTRODUCCIÓN
El concepto de Tecnología Asistente se refiere a ayudas mecánicas que substituyen o aumentan
la función de alguna habilidad física o mental que se encuentre impedida. Las Tecnologías
Asistentes pueden ser adquiridas comercialmente o hechas en casa, pueden ser adquiridas listas
para usarse o habrá que modificarlas1. La clave es que ésta sea utilizada para ayudar a un
individuo a realizar una actividad cualquiera de la vida diaria. Las tecnologías usadas pueden
incluir cosas tan simples como un mango para sostener un lápiz, o cosas tan complejas como un
ordenador, un sintetizador de voz o un lector de braille.
En el caso del acceso al ordenador y concretamente a Internet, se puede distinguir entre 3
componentes que deben interactuar conjuntamente para lograr que Internet sea un recurso
realmente accesible2:
1. El hardware necesario para la interacción humano-ordenador,
2. Los agentes de usuarios necesarios para la interpretación de la información contenida en
la Web (software) y
3. La estructura de datos usada para representar dicha información y facilitar la navegación
a través de Internet (diseño efectivo y accesible de páginas HTML).
1
Por hardware se entiende los dispositivos de Entrada y Salida (E/S) necesarios para el
intercambio de información con la Web; tales como el teclado, el ratón y por supuesto el monitor
de video (considerados todos como dispositivos estándar de E/S). Dicho intercambio de
información requiere generalmente del uso de ciertas funciones sensoriales y cognitivas, así
como destrezas motoras y el uso de la memoria. Por lo tanto, cuando uno o más partes de las
interfaces estándar de E/S impide o previene a un usuario de acceder al ordenador, y por
consiguiente, de Internet, es necesario el uso de dispositivos E/S especiales, tales como
dispositivos de entrada por voz o mediante interruptores. Un display de Braille es también un
buen ejemplo de un dispositivo de salida no estándar.
Los agentes de usuario (más conocidos como navegadores) son editores software especiales
que interpretan códigos HTML a un formato comprensible por el usuario. Como la mayor parte
de las aplicaciones de hoy en día, los navegadores ofrecen su funcionalidad a través del uso de
una Interfaz Gráfica de Usuario (IGU) compuesta por controles tales como menús, botones, etc.
y mediante los elementos HTML (imágenes, formularios, enlaces de hipertexto, etc.) propios del
documento HTML recuperado. Los navegadores constituyen la interfaz por defecto a la World
Wide Web (WWW) y proveen el lugar de interacción entre los usuarios y la Web.
Por último, al hablar de diseño efectivo y accesible de páginas HTML, se refiere a que estas
deben ser diseñadas de modo que las distintas tecnologías, ya sean hardware como un display
Braille ó software como un lector de pantalla, puedan interpretar correctamente el contenido de
cada documento. Este diseño efectivo y accesible incluye, pero no se limita a:

Proporcionar texto asociado y/o alternativo a toda imagen gráfica.

Incluir comentarios descriptivos y detallados con todas las imágenes.

Proporcionar descripciones o transcripciones de texto para todos los archivos de
audio3.

Ser consistente en el diseño de las páginas, tal que la navegación sea previsible.

Ser claros en la forma de describir lo que hay que hacer y cómo hay que hacerlo,
evitando que el usuario con problemas dependa únicamente de la información visual.

Ser sensibles con respecto a la claridad y organización en el diseño, de forma que los
usuarios no tengan mayores problemas en localizar la información que han ido
extrayendo4.
La interacción entre un navegador, los dispositivos E/S estándar y los documentos recuperados
de la Web suele ser bastante simple e intuitiva: se toma el ratón, se coloca sobre el enlace o
2
botón o lo que sea, se presiona el botón del ratón ¡y se deja que el navegador se encargue del
resto! Sin embargo, para las personas con discapacidades esta interacción no es ni simple ni
intuitiva. Para usuarios que tienen dificultad o que no pueden usar un ratón o un teclado, estos
representan otra puerta cerrada al mundo5. Estos usuarios necesitan de sistemas alternativos,
distintos al clásico IGU para poder acceder a la Web, por ello se ha desarrollado lo que se conoce
como Navegación Web Alternativa.
2. NAVEGACIÓN WEB ALTERNATIVA
Actualmente existe una gran variedad de navegadores “alternativos” diseñados con un enfoque
distinto a los típicos navegadores de IGU. Por ejemplo, las personas con discapacidad visual o
con dificultades para leer pueden recurrir a navegadores por voz, displays de Braille y en muchos
casos al uso del teclado en lugar del ratón. Personas que no pueden usar el teclado recurren al
reconocimiento de comandos por voz o a interruptores que pueden ser activados por la cabeza,
movimientos del ojo, etc.6. Para un listado mas completo de los distintos Navegadores
Alternativos y sus características puede verse http://www.w3.org/WAI/References/Browsing.
Algunos de estos navegadores alternativos pueden obtenerse de forma gratuita, mientras que
otros son pagados.
3. DESVENTAJAS DE LA NAVEGACIÓN ALTERNATIVA
Los diferentes sistemas de Navegación Alternativa proporcionan acceso a Internet a las personas
con distintas discapacidades ofreciendo características que compensan las funciones impedidas
inherentes a cada tipo de discapacidad. Sin embargo, existen una serie de barreras que dificultan
que estas aplicaciones alternativas solucionen el problema de acceso a la Web por parte de las
personas con discapacidades, a continuación se nombran las más comunes:

Aunque muchas de estas aplicaciones alternativas reconocen lenguajes de script como
JavaScript o VBScript, la mayoría no son capaces de interpretarlos correctamente y
muchas no las interpretan del todo. Es más, a medida que se desarrollan estos lenguajes
de scripts y se les agregan funcionalidades, más difícil es mantener actualizados estos
navegadores alternativos. Después de todo, estos lenguajes se desarrollan teniendo en
cuenta mayormente a navegadores estándar como el Internet Explorer de Microsoft
(MSIE) o el Navegador de Netscape (NN).

Lo mismo aplica a los objetos incrustados (embedded) como lo son los Applets de Java,
animación Flash, videos, etc.
3

Los navegadores alternativos, por lo general, no incluyen las características más comunes
de Accesibilidad que proveen los navegadores estándar, como son: Alto Contraste, Teclas
de Filtrado, Teclas “Pegajosas” (StickyKeys), etc. Estas características deben proveerse
en todos los navegadores para así lograr un rango más amplio de usuarios beneficiados.

Algunos de los navegadores alternativos presentan problemas al tratar con los elementos
más avanzados de HTML, por ejemplo, la utilización de marcos y el re-direccionamiento
de páginas.
Para tener una mejor comprensión de las diferentes barreras que un usuario puede encontrar al
utilizar la Web, se puede consultar la Iniciativa de Accesibilidad Web, mejor conocida por sus
siglas en inglés WAI.
4. ENFOQUE PROPUESTO
El siguiente paso en esta línea de aplicaciones debe solucionar de forma efectiva las barreras que
se acaban de mencionar, más algunas más. El enfoque que se propone es el de convertir todas
estas aplicaciones alternativas en Aplicaciones Web, las cuales en lugar de ser aplicaciones
independientes que deban, además de sus características particulares, también incluir las
características estándar de accesibilidad (StickyKeys, FilteKeys, etc.) de los navegadores
comunes; simplemente utilicen las que ya estén incluidas en estos. Para lograr esto se propone
hacer uso de las tecnologías Java que nos permiten crear aplicaciones Web, concretamente: JSP
y Java Servlets. Además, algunas de las operaciones más simples podrían llevarse a cabo
mediante el uso de JavaScript, utilizando así tanto los recursos del cliente como los del servidor.
¿Qué son las Aplicaciones Web y porque usarlas?
Las aplicaciones Web no son más que aplicaciones comunes con la simple excepción de que
estas corren dentro de un servidor Web. Utilizan la Web como mecanismo de transmisión de
información entre la aplicación y el usuario, constituyendo el navegador Web su interfaz
primaria de usuario lo cual es una gran ventaja dado que los navegadores se han establecido
como el estándar de facto y multi-plataforma para acceder a la información en la WWW.
Además, cuando una aplicación adopta al navegador Web como interfaz de usuario, elimina la
necesidad de que sus usuarios tengan que instalar software adicional para poder correr dicha
aplicación. Y, a medida que se desarrollen y distribuyan nuevas versiones de la aplicación en el
servidor, los usuarios comienzan a utilizarlas de forma automática, sin que sea necesario hacer
actualizaciones y sin tener que pasar por, generalmente, complicadas instalaciones. Esto, claro
4
esta, representa una ventaja añadida cuando los usuarios son personas con una u otra
discapacidad.
Mientras que las aplicaciones Java normales y los Applets usan componentes AWT y
Swing para construir su interfaz (IGU) alrededor de elementos de entrada como campos de texto,
botones, etc., y así obtener información del usuario; las aplicaciones Web se valen de los
elementos de formulario HTML para realizar la misma función7.
Páginas de Servidor Java & Servlets
Las páginas de servidor de Java, conocidas por sus siglas en ingles (JSP), consisten en tecnología
basada en Java para desarrollar contenido Web dinámico. Estas contienen HTML tradicional
junto con código incrustado que accede a código Java que corre en el servidor. A simple vista
dan la impresión de ser páginas HTML comunes y corrientes, excepto que tienen la extensión
.jsp e incluyen unas cuantas etiquetas comunes a JSP. Esto permite definir una página con
botones y demás controles HTML de forma estática y luego generar el contenido dinámico ya
sea, mediante “scripting” o mediante la inclusión de Servlets o JSP.
Servlets es el nombre dado a pequeñas aplicaciones Java que le añaden funcionalidades
dinámicas a los servidores Web. Estos toman solicitudes HTTP del navegador como parámetros
de entrada y de acuerdo a estos, localizan y/o generan el contenido apropiado para la respuesta
del servidor. Como los Servlets operan exclusivamente dentro del dominio del servidor, estos no
necesitan que el navegador utilizado soporte Java8. Una última característica que no se puede
dejar de mencionar es que los Servlets son portables: tanto a través de distintos sistemas
operativos como de los servidores Web.
5. CASO PRÁCTICO: AWAKE
AWAKE, de sus siglas en inglés Alternative Web Access toolKit for impairEd users, es un
navegador desarrollado por el Departamento de Sistemas Inteligentes Aplicados (SIA) de la
Escuela Universitaria de Informática (EUI) de la Universidad Politécnica de Madrid (UPM) para
proveer acceso a Internet a las personas con discapacidades físicas severas. Esto se logra
enfocando el problema desde dos puntos principales. Primero, resuelve el problema de la
interacción humano-ordenador utilizando un interruptor binario como su principal dispositivo de
entrada y a través del barrido de sus comandos y componentes como su método de selección.
Luego, para facilitar la navegación a través de los enlaces de hipertexto de un documento,
AWAKE extrae dichos enlaces; los muestra en una ventana separados del resto del documento y
finalmente los hace accesibles utilizando el método de barrido a través de cada uno de ellos.
5
El primer paso para transformar AWAKE de una aplicación Java a una aplicación Web
consiste en pasar de una interfaz creada mediante elementos Java a una que utilice elementos
HTML (Figura 1).
Como AWAKE consta de 3 paneles o ventanas principales, resulta lógico que como aplicación
Web cada ventana se corresponda a una página HTML, de modo que para visualizar las 3
ventanas al mismo tiempo se hace uso de marcos. La sección 1.a corresponde a la barra de
navegación, la 1.b es donde se visualizan los enlaces extraídos y la 1.c donde se ve el contenido
de la página. La versión original de AWAKE presenta los documentos en forma de un árbol
HTML mientras que la versión Web visualiza las páginas tal y como el autor de dicha página
desea que se visualicen. Dado que se desea que esta ventana sea tan grande como sea posible, se
ha optado por otorgarle a la ventana de visualización de enlaces (1.b) una condición dinámica tal
que sea visible únicamente cuando se selecciona el botón de mostrar enlaces “Show Links” y que
permanezca oculta el resto del tiempo.
Las preferencias del usuario se recuperan automáticamente mediante el uso de
“Cookies”, las cuales se usaran para inicializar las distintas variables que la aplicación necesite.
Figura 1. Transformación de AWAKE a una Aplicación Web
6
Barrido de Componentes vs. Barrido de Ventanas
Una de las características más atractivas que ofrece AWAKE es su sistema de barrido, ya que lo
hace de forma tal, que aunque todos sus comandos y componentes están disponibles a través del
sistema de barrido, esta tarea no resulta ni agotadora ni tediosa. Esto se logra estableciendo una
jerarquía en la interfaz de forma tal que la complejidad de esta tarea se ve reducida al estructurar
la interfaz en niveles. Cada nivel se corresponde con uno de los paneles antes mencionados, así
que al inicializar la aplicación, el barrido se hace entre cada panel. Luego, según la acción que se
desea realizar, el usuario solo debe activar (o desactivar según el método de barrido) el
interruptor para cambiar de un barrido entre paneles a un barrido a través de los componentes de
cada panel. De esta forma se evita que el usuario tenga que esperar un extenso barrido de a través
de todos sus elementos, lo cual resulta especialmente tedioso si, por alguna razón cualquiera, al
usuario se le pasa el elemento que deseaba activar por lo que este se vea forzado a tener que
esperar a que el barrido termine y vuelva a comenzar de nuevo antes de poder realizar la
operación deseada.
En el caso de AWAKE, y probablemente en todos los casos, es precisamente su
característica más deseada, la técnicamente más difícil de alcanzar. En este caso el problema
reside en que el estándar HTTP no cuenta con memoria de estado, lo que imposibilita realizar el
barrido a través de métodos más tradicionales, es decir, comprobando el estado de cada elemento
AWT o Swing. Esta falta de memoria de estado es probablemente el aspecto más desafiante a la
hora de construir aplicaciones Web, sin embargo, tanto JSP como los Servlets nos proveen
soluciones alternas a estos problemas. Además al estar trabajando con código HTML y con
navegadores estándar existe otro recurso a nuestra disposición: JavaScript. Para resolver el
problema del barrido en AWAKE tanto entre ventanas como entre componentes, se hizo uso de
la combinación de JavaScript con el poder de los Servlets. JavaScript es un simple, y a la vez
poderoso lenguaje de scripts que nos permite crear contenido Web dinámico. Trabaja sobre el
navegador del cliente, contrario a las JSP y a los Servlets que trabajan sobre el servidor, lo que
significa que usa los recursos de sistema del cliente, liberando así carga al servidor. Otra razón
de peso para su uso, es que en JavaScript se puede acceder a cada elemento HTML y sus
propiedades de forma directa tratándolos como arrays9.
5. VENTAJAS DEL ENFOQUE PROPUESTO
Algunas de las ventajas del enfoque propuesto, convertir las aplicaciones alternativas en
aplicaciones Web, se relacionan directamente con las desventajas antes mencionadas de la
navegación alternativa, otras en cambio, son inherentes a la naturaleza de las aplicaciones Web y
7
un tercer grupo son el resultado de trabajar con tecnologías Java. Dichas ventajas incluyen, pero
no se limitan a:

Dado que las aplicaciones Web trabajan “dentro” de un navegador estándar, estas
cuentan automáticamente con la interpretación de los mismos lenguajes de scripts, como
JavaScript y VBScript, siempre y cuando el navegador utilizado sea capaz de
interpretarlos.

Por la misma razón, también se soportarían los mismos objetos incrustados, como los
Applets de Java, animaciones, archivos de audio y video, etc., que soporte el navegador
utilizado.

Contarían también, además de con sus propias características de accesibilidad, con las
características de accesibilidad que ofrece cada navegador. Por ejemplo, Alto Contraste,
Teclas de Filtrado, Teclas “Pegajosas” (StickyKeys), etc.

De hecho, el número de tecnologías que se soporten estaría limitado únicamente por el
número de tecnologías que el navegador utilizado soporte y crecería acordemente. Lo que
es mejor, este crecimiento vendría sin ningún tipo de esfuerzo por parte de los
desarrolladores de la aplicación Web ya que esto queda a cargo de los desarrolladores de
cada navegador, Microsoft y Netscape por mencionar algunos.

Dado que las tecnologías Web se desarrollan teniendo en cuenta principalmente a los
navegadores estándar, las aplicaciones desarrolladas serian siempre compatibles con las
últimas tecnologías. De esta forma los desarrolladores de aplicaciones alternativas se
concentrarían únicamente en aquellas características propias a la funcionalidad
alternativa de su respectiva aplicación.

Como los navegadores estándar son desarrollados para trabajar bajo un sistema operativo
especifico (por ejemplo, MSIE tiene una versión para Windows y otra para MacOS) estos
han sido configurados para utilizar los recursos que ofrece cada sistema operativo. De
especial interés para las aplicaciones alternativas es el uso de todos los puertos existentes
en el ordenador del cliente, lo que libera a los desarrolladores de tener que programar por
si mismos la interfaz entre sus aplicaciones alternativas y, por ejemplo, un interruptor.

Una ventaja común a todas las aplicaciones Web, es que el usuario no tiene que
preocuparse por actualizar la aplicación, ya que estas estarán automáticamente
disponibles al iniciar la sesión.
8

Este enfoque resulta verdaderamente independiente de la plataforma utilizada y como
trabaja bajo distintos navegadores (como MSIE y Netscape), atrae a un mayor número de
usuarios.

Debido a las facilidades que ofrece Java para programar en Internet, resulta fácil trabajar
sobre el código HTML de cada página, de modo que se puedan controlar aspectos
indeseables como la aparición indeseada de ventanas emergentes, que para algunos
usuarios con discapacidades, más que indeseables resultan verdaderas barreras que
impiden al acceso a la Web.
6. CONCLUSIONES
A lo largo del presente documento se han descrito muchas de las ventajas de transformar las
aplicaciones alternativas (sean Navegadores Web o cualquier otra) de aplicaciones de escritorio
comunes a aplicaciones Web. Sin embargo, cabe mencionar una desventaja de este enfoque que
no se puede olvidar. Al trabajar estas aplicaciones desde un servidor, es indispensable que el
usuario se mantenga conectado a Internet. En el caso de los navegadores alternativos esto no es
tan grave como lo sería para otras aplicaciones como, por ejemplo un editor de signo-escritura,
ya que cualquier navegador Web, estándar o no, debe conectarse a Internet. A pesar de este
inconveniente, el desarrollo de aplicaciones Web dirigidas a usuarios con discapacidades
presenta una solución que no es solo viable sino también aconsejable. No solo por las ventajas
anteriormente discutidas, sino porque representaría un paso en la dirección correcta hacia una
verdadera integración de las personas con discapacidades a la sociedad y en especial a la
educación. ¿Porque? Por que los navegadores estándar son aplicaciones comunes a cualquier
ordenador en cualquier parte del mundo, por lo que estas aplicaciones estarían disponibles desde
cualquier ordenador que posea acceso a Internet, incluso desde un Café Internet. Esto libera al
usuario de la necesidad de tener que trabajar forzosa y exclusivamente desde su hogar, abriéndole
la posibilidad de navegar y/o trabajar desde distintas partes de su ciudad, país o incluso del
mundo.
Además, al ser aplicaciones gratuitas, resultan accesibles a usuarios de países en vías de
desarrollo que no cuentan con grandes recursos económicos y, por lo general, tampoco cuentan
con representantes de las firmas que desarrollan las aplicaciones alternativas, lo que se traduce a
falta de soporte técnico.
En referencia al tema de la educación, desarrollar aplicaciones Web a partir de
aplicaciones alternativas ya existentes resulta un gran apoyo a Universidades y demás centros
educativos y de formación ya que estos cuentan, generalmente, con una conexión permanente a
9
Internet, permitiendo así que los estudiantes con discapacidades puedan combinar las clases
presénciales con los recursos disponibles en Internet accesibles a través de los navegadores
alternativos.
7. REFERENCIAS
1
Prepared by “Parents, Let's Unite for Kids (PLUK)” in cooperation with The Federation for
Children with Special Needs. Family Guide to Assistive Technology.
http://www.pluk.org/AT1.html#2.
2
Loy, B. y Batiste, L. (1998). Surfing the net:the three keys to universal access. Trabajo
presentado en la CSUN98
3
Hyppönen, H. (1998). The World Wide Web Accessibility.
http://www.stakes.fi/include/accessib.html
4
McCain, S. (1998). Web Accesibility of Disabilities. Trabajo presentado en la CSUN98
5
Thomas Wagner, José Zato Recellado (2001). Alternative Web Acess Toolkit (AWAKE). SIA,
EUI, UPM.
6
Web Accessibility Iniciative (WAI). Alternative Browsing.
http://www.w3.org/WAI/References/Browsing.
7
Fields & Kolb (2000) Web Development with Java Server Pages. Greenwich, CT : Manning.
8
Hall (2003). Core servlets and JavaServer Pages (JSP). Prentice Hall.
9
Goodman (2001). JavaScript Bible Gold Edition. Hungry Minds Inc.
10
Documentos relacionados
Descargar