Archive for the ‘accesibilidad’ Category

Testing with Mark

Monday, February 25th, 2008

Pues como comentaba hace poco, el viernes pasado tuvimos un día de testing con Mark, un chico ciego que además de ciego es biólogo con un master pero que no encuentra trabajo de lo suyo ¿Imaginas por qué? Efectivamente, porque es ciego. Pero dejemos eso para otro post.

El caso. Para empezar es increíble ver cómo una persona ciega utiliza JAWS. La velocidad a la que lo tienen configurado parece una broma. Muchas veces le tenía que preguntar “¿Ha dicho esto?” y el se escojonaba “Claro, ¿no lo has oido?”.

Trato de resumir cosas que me sorprendieron y llamaron la atención, aunque algunas pueden parecer obvias. NOTA IMPORTANTE: En ningún caso quiero decir que la realidad de *todos* los ciegos sea lo que cuento, estas observaciones vienen de un solo día de testing con una sola persona. El equipo era WinXP SP2, JAWS 9, Flash 9.0.115 (importante el 115 ya esta versión trae importantes mejoras con respecto a lectores de pantalla). Dicho queda.

- Para un ciego las webs o aplicaciones no tienen izquierda y derecha, son “verticales”. Es decir, para ellos lo importante es el orden en que los enlaces son leídos. Los primeros estan “arriba”, los últimos “abajo”.

- Hacen una pasada general por todos los enlaces y luego se van a lo que le interesa. Tiene todo el sentido del mundo, lo mismo que nosotros de un vistazo escaneamos una página y luego vamos al enlace o texto que nos interesa, ellos de un “oidazo” escanean la página y luego saltan donde les interesa.

- Por lo menos Mark no utiliza mucho atajos de teclado especiales, utiliza más la “fuerza bruta”. Quicir, va haciendo click en “siguiente enlace” a todo lo que da de velocidad y consigue levantarte dolor de cabeza casi instantáneamente.

- Parece útil que las aplicaciones tengan instrucciones específicas para lectores de pantalla. Esto lo haremos poniendo en pantalla un objeto con el primer tabIndex y añadiéndole las instrucciones a través de _accProps. Interesante el trabajo de optimización que hace JAWS, similar a lo que hacen los navegadores cuando hay wmode. JAWS sólo lee un objeto si es visible en la pantalla. Es decir, si le pones _alpha=0, lo sacas de la pantalla con _x=-1000 o simplemente está tapado con otro objeto, JAWS NO lo lee. Nosotros sólo lo mostraremos si un lector de pantalla está presente (cosa que se comprueba con Accessibility.isActive());

- Como ya vi en mis pruebas iniciales JAWS “lía” los tabIndexes de Flash. No pasa mucho, pero de vez en cuando le da por empezar por ejemplo por el tabIndex 3 en lugar de por el primero.

- Mark utiliza GMail sin ningún problema. El cabroncete dice que si no quiere oir la publicidad entra con JAWS 7 lo que fuerza la versión “basic HTML” de GMail. Dejo para otro post comentar la pasta que están perdiendo los anunciantes por no hacer publicidad accesible.

Seguro que me dejo millones de cosas de las que me acordaré cuando editemos los vídeos. Tenemos casi todo grabado, incluida una mini-mesa redonda de charleta con él, pero no puedo asegurar que se vaya a publicar. Yo voy a tratar de que me den tiempo para escribir algo y editar los vídeos, pero como siempre vamos jodidos de tiempo. Ya os diré algo si eso.

Ea!

JAWS + Flash = al palo

Tuesday, February 12th, 2008

Ando probando una de las últimas versiones de JAWS (9.0.519) en aplicaciones Flash. Como siempre, buenas y malas noticias.

Las buenas noticias son que utilizando la propiedad _accProps de un MovieClip puedes especificar dinámicamente y por código lo que el lector de pantalla leerá cuando le llegue el foco a ese MovieClip.

[Aquí como siempre Adobe haciendo chapuzas de las suyas. No hay un objeto AccProps, si miras la referencia recomienda crear un objeto anónimo, lo cual apesta porque no tienes validación de tipos. Pero es que _accProps ni siquiera aparece en las propiedades de MovieClip sino como propiedad global, por lo menos para AS2.]

Una vez creado la propiedad _accProps, nos vamos al navegador y comprobamos. En general funciona más o menos de forma esperada tanto en IE como en FF (esto último sólo con la version 9.0.115 del player que es la que añade soporte para MSAA en navegadores alternativos). Es decir, JAWS lee con su metálica voz lo que le dices. ¡Yuju! Hasta aquí las buenas noticias.

Las malas noticias son:

- Bastantes inconsistencias con el orden de tabulación. Es decir, sin JAWS activado la tabulación dentro de Flash funciona como un reloj. Con JAWS activado, algunas veces de forma aleatoria empieza por la que le viene en gana. Tanto IE como FF.

- JAWS interfiere en la captura de ciertas teclas. Una de las aplicaciones captura Key.onKeyDown y si es ENTER ejecuta unas acciones. Sin JAWS perfecto, con JAWS no llega el evento a Flash. Pero es que no sólo pasa con ENTER, pasa con más atajos de teclado de JAWS, por ejemplo “r” (ir a radio buttons) o “a” (ir a “anchors”). Aún no sé cómo voy a maravillearmelas para saltarme esto.

Una cosa que mola es que podemos pasar instrucciones específicas a los usuarios que usan un lector de pantalla añadiendo _accProps a _root. Así en el momento que le llega el foco, lee esas instrucciones específicas que pueden diferir bastante de las instrucciones para una persona con visión. La otra forma de hacerlo sería con un div oculto en HTML, lo cual mola menos.

De todas formas lo mejor con diferencia es que en mi curro han contratado a tiempo parcial a un chico ciego para que nos ayude con temas de accesibilidad. Estoy intentando que venga a la oficina un día para hacer user testing con él. Pero testing en plan:

Prueba esto a ver qué tal. ¿Mal? Espera, que recompilo haciendo esto otro y vuelve a probar.

Tener a un ciego en plantilla es de un valor INCALCULABLE para hacer testing REAL. Una cosa es cómo yo utilizo JAWS (al que odio porque me da dolor de cabeza) y otra muy distinta cómo lo hace un usuario avanzado.

En fin, ya os contaré cómo va la cosa y si tengo tiempo haré un artículo algo más extenso. Si alguien tiene preguntas específicas para Mark (que así se llama), que me mande un mail. Si alguien sabe donde hay información *actual* sobre lectores de pantalla y Flash, que me lo cuente también, por favor.

Una vez que tengamos JAWS controlado, intentaremos pasar la prueba con Windows Eyes.

Salud!

Formato de texto por defecto y preferencias de accesibilidad del sistema

Wednesday, November 14th, 2007

Seguimos con los títulos laaaaargos para los posts.

Algunas de las charlas y ponencias de Flash on the Beach me han dado alguna idea para el tema de la accesibilidad en Flash. Dando por descontado que algún día wmode y SeamlessTabbing serán solucionados, qué os parece esto:

Acceso a las preferencias de accesibilidad del sistema

Uno de los principales problemas de Flash es que no reacciona a las preferencias de accesibilidad que el usuario ha puesto en su máquina. Si por ejemplo ha cambiado la letra a gigante, en Flash no hay forma de saberlo.

Sería muy interesante que esas preferencias se ofrecieran en modo sólo lectura mediante un objeto. Cosas como tamaño y color de las fuentes, color de fondo preferido… tampoco me sé todas las opciones, especialmente porque cambian entre distintos sistemas operativos.

Si por la razón que fuera el player dentro del navegador no pudiera acceder a esto, estaría bien que al menos dentro de AIR sí que fuera posible.

Formato de texto por defecto

¿A quién le gusta la Times New Roman 12 que por defecto usa el navegador o Flash? A nadie. ¿No sería bueno que si el programador no define ningún estilo concreto el formato de texto fuera por defecto el que el usuario tiene definido para su sistema? Esta medida es imposible que moleste a nadie, porque quien quiera puede seguir aplicando estilos como hasta ahora, pero quien quiera “respetar” las opciones del usuario, lo tendría simple, no aplicar ningún formato. Igual es algo que también se podría aplicar al color de fondo, no sé, habría que pensarlo con ciudado.

A mi estas 2 cosas me parecen muy sencillas de agregar por parte de Adobe y no creo que dependa de nadie externo para realizarlas. ¿Qué os parece?