Etiquetar botones en Android con Talkback

jueves, 20 de octubre de 2016
Tiempo de lectura 8 minutos

En todos los sistemas operativos hasta la fecha inventados, siempre hay aplicaciones que por alguna razón no funcionan como deberían con lectores de pantalla. En esta ocasión me gustaría hablar de los botones.

Todos hemos utilizado alguna aplicación para PC que tenga botones. Las páginas web también los incluyen. También las aplicaciones móviles tienen interfaces que usan los botones. Básicamente un botón te permite conectarlo a una acción, de manera que cuando tú presionas sobre él, “algo” ocurre. Ese algo, lógicamente, tiene que estar programado por el desarrollador de la aplicación.

En este ejemplo hablaré de Android. Talkback, la aplicación que ofrece Google para personas con discapacidad visual, puede interactuar con la mayor parte de los controles que tiene el sistema operativo (a no ser que hablemos de las vistas web, que son un dolor de cabeza para el pobre Talkback y el usuario que lo intenta manejar). Pero a veces las cosas se complican, porque los desarrolladores de las aplicaciones incluyen una imagen a un botón, pero se olvidan, por así decirlo, de ponerle el nombre a ese botón. El usuario que ve el botón lo entiende porque la imagen es más que obvia (por ejemplo una flecha apuntando a la derecha para “página siguiente” y una a la izquierda para “anterior”), pero el lector de pantalla, que lógicamente es incapaz de ver imágenes, intenta salir del paso pero no puede conseguirlo.

¿pero por qué?

Para dar una explicación sencilla de por qué razón no lo puede conseguir, vamos a tener en cuenta que los botones son un elemento más en la interfaz de un programa. Talkback interpreta los tipos de controles que ve, y para no complicar las cosas, imagina que para cada control tiene que existir un nombre definido. Por ejemplo si vemos una casilla, esa casilla tiene que tener un texto que indique qué es lo que hace, así tiene que ser para los botones también. Tienen que tener un texto que indique para qué sirven.

A veces, los desarrolladores de aplicaciones hacen que un botón contenga una imagen, de modo que en el área reservada para dibujar ese botón solo aparezca el logo o la imagen de lo que ellos quieren mostrar. Es una forma de hacer que el usuario medio entienda mejor la idea, por una imagen que represente qué es lo que ese botón hace. Pero para esto también podía haberse definido el nombre del botón, y no siempre se hace. En ocasiones, el desarrollador deja “vacío” el campo para el nombre del botón.

Grave problema, si tenemos en cuenta que Talkback lo único que puede leer del mencionado botón es su nombre. Pero espera… si esto no tiene nombre, ¿entonces?

Si el botón no tiene nombre, por algún proceso que me cuesta entender todavía, el sistema le asigna un número que identifica a ese botón. Bien, ese número es lo que talkback lee. Eso es un problema, porque por ejemplo, para enviar un mensaje de Whatsapp, a veces Talkback dice que es un “botón 75 sin texto”, pero puede que al cerrar y abrir la aplicación otra vez me diga que es un “botón 4 sin texto” y a la siguiente un “botón 6 sin texto”. No tiene ningún tipo de orden la manera en la que se asignan los números a los botones, y como te puedes dar cuenta, tampoco se puede saber para qué sirve el botón. Lo único que ves de él es un número y ya.

¿Cómo se resuelve esto?

La solución ideal es hablar y comunicarse con los desarrolladores de la aplicación, bien dejando un comentario en la Play Store, bien contactando por correo electrónico y pidiendo de favor que etiqueten correctamente los botones. Es algo que en teoría no cuesta casi nada y que siempre que se hace mal, o directamente no se hace, es más por desconocimiento que por mala intención.

¿Y si no funciona?

Pero seamos realistas. No siempre funciona. Así como puedes encontrar equipos (o desarrolladores independientes) muy comprometidos y atentos con los usuarios, que quieren que sus aplicaciones sean mejores y funcionen para todos, puede que te encuentres otros a los que simplemente les dé igual que su programa no pueda ser usado por ciegos, porque los botones que utiliza solo son números para ti.

La solución, en este caso, es intentar etiquetar el control por tu propia cuenta, para que Talkback “aprenda” que ese botón se va a llamar como tú le quieras poner, y cada que te lo lea te diga lo que tú le indicaste. Por ejemplo hace un par de semanas yo he etiquetado el botón de envío de mensaje de WhatsApp, para que me diga “enviar” en lugar de “botón 25 sin texto” o “botón 2 sin texto”. Ahora cuando navego por esta aplicación, usando la exploración por gestos o deslizando mi dedo por la pantalla, llego a ese botón y me dice “botón enviar”.

Esto está muy bien si lo que quieres es salir del paso y entender cómo funciona una aplicación. Pero lógicamente tiene desventajas, aquí van:

  • No puedes compartir los botones etiquetados. Si yo quisiera que a un colega que tiene su WhatsApp le funcione eso de que te diga “enviar” o “mensaje de audio” en su teléfono, tendría que pedírselo y etiquetar los botones de nuevo en su equipo. No puedes, por así decirlo, exportar tus botones etiquetados y compartirlos con los demás.
  • Según tengo entendido, depende de la posición en la pantalla del botón. Si en una actualización del programa en cuestión cambian la posición del botón que se etiqueta, me temo que habrá que repetir el proceso.
  • Necesitarás una de estas dos cosas, o mucha paciencia para pulsar el botón y ver qué hace, para así poder etiquetarlo; o pedirle a alguien que vea que te diga cuándo estás en el botón que quieres para etiquetar.

Quiero etiquetar el botón por mi cuenta, ¿Qué debo hacer?

A continuación tienes los pasos para añadir una etiqueta a un botón. Lo he probado con los botones para enviar audio, mensaje y compartir archivos de los chats en WhatsApp y los botones de reproducción de Spotify, en Android 4.4.

Primero tienes que localizar, de ser posible con la exploración táctil, el botón que quieres etiquetar. Este quizá es el paso más difícil, sobre todo si tenemos en cuenta que ese botón te dirá su número en lugar de su nombre. Lo que yo hacía, con los botones que tenían una acción muy notoria, por ejemplo el botón de poner pausa en Spotify, era presionarlos. Por ejemplo, presioné uno que decía que era un botón 4 sin texto, y noté que ponía pausa. Entonces, sin salir de la ventana donde estás (porque si sales de la ventana puede que los números de los botones cambien), usas los flics para encontrar ese botón 4 sin texto. Ese es tu objetivo.

Después tienes que activar el menú de contexto local. Esto se hace con un gesto de talkback, que se puede cambiar, pero por defecto se consigue desplazando un dedo hacia arriba y luego hacia la derecha. Se escucha un sonido en señal de que el menú ha sido activado. Es importante que actives ese menú sin haber cambiado el foco del sistema a otro botón u otro control, porque si pasa eso, entonces el menú se activará para el nuevo control, y no para tu botón.

(si tienes dudas sobre los gestos de Talkback y cómo puedes usar los diferentes menús que tienen, puede que quieras mirar en el blog de <Android Accesible, los gestos Gelly bean que también sirven para versiones posteriores)

En ese menú, tienes que explorar la pantalla en forma circular para encontrar las opciones. Cuando encuentres la que quieres activar, tienes que despegar el dedo de la pantalla para seleccionarla. Es un poco raro de manejar, pero se acostumbra uno.

Cuando estás trabajando con un botón, hacia la parte superior de la pantalla, haciendo un círculo (recuerda que así tienes que navegar por ese menú :D ), aparece una opción que se llama “agregar etiqueta”. Si la seleccionas (despegando tu dedo de la pantalla en cuanto escuches que estás sobre ella), aparecerá un cuadro de texto donde tienes el teclado para escribir tu etiqueta. La escribes, pulsas “listo” o el botón aceptar, y ya tienes ese botón etiquetado. Ahora, siempre que pases por ese botón, Talkback te hablará lo que tú le pusiste en esa etiqueta.

Si estás trabajando con un control más complejo, no verás la opción “agregar etiqueta”, al menos no al principio. En su lugar, en el menú de contexto local (ese donde te movías en forma de círculo), vas a encontrar una opción que se llama algo similar a “opciones de etiqueta”. Lo seleccionas de la misma extraña manera, y te mostrará otro menú. También volverá a hacer un sonido para indicártelo. Ahí sí, puedes buscar esa opción, “agregar etiqueta”, que me parece es la única, además de Cancelar, que existe. El resto del procedimiento es el mismo.

Un dato importante a tener en cuenta es que si te has equivocado por alguna razón o quieres escribir otra cosa para la etiqueta de ese botón, no tienes más que repetir los pasos, solo que en lugar de agregar etiqueta vas a encontrar una opción que se llama “editar etiqueta”. El resto funciona tal y como lo hacía la primera vez.

De esta manera puedes hacer que Talkback salga del paso por un tiempo, en lo que convencemos a los desarrolladores de aplicaciones para móviles que también existen usuarios ciegos, y que también es importante tener que definir el nombre para los botones. O mientras Google se decide a terminar de mejorar sus API de accesibilidad e integrarlas en el sistema operativo. Lo que pase primero.

Saludos.

Tutoriales

Android Talkback