Revisa la accesibilidad de tu código Android con Android-ally

El desarrollo de aplicaciones Android implica el diseño y la implementación de diversas interfaces de usuario. Es en esta etapa del desarrollo de un proyecto software donde aparecen todas las futuras barreras de accesibilidad que mostrará la aplicación.

Aunque todavía no exista ninguna herramienta automática para la accesibilidad que sea 100% fiable si está demostrado sin duda alguna que la detección temprana de estas barreras mejora la experiencia de la persona que desarrolla estas interfaces de usuario y es en esas etapas donde deberían existir más herramientas automáticas. Curiosamente hay más herramientas de este tipo para las etapas posteriores al desarrollo.

En Android ya existe una herramienta de validación de la accesibilidad pero funciona en aplicaciones que se estén ejecutando en un teléfono Android.

Para ayudar a las personas desarrolladoras de software para Android surge este plugin para Android studio: Android-ally.

Este plugin permite a los desarrolladores realizar ciertas pruebas en sus interfaces durante la etapa de desarrollo.

Además el creador de este plugin lo distribuye como open source para que toda la comunidad de desarrollo de Android pueda utilizarlo y mejorarlo.

Puedes ver un video explicando el plugin en detalle y su instalación en Youtube.

Cómo reportar errores de accesibilidad a Google

La empresa Google ofrece a sus usuarios multitud de servicios y productos. En la página de ayuda incluso encontramos un apartado específico para la accesibilidad en sus servicios y aplicaciones.

Dentro de este apartado de Accesibilidad de Google se pueden encontrar canales para que asociaciones y fundaciones se pongan en contacto con Google para buscar sinergias. También los usuarios con discapacidad pueden solicitar asistencia para aprender a utilizar alguno de sus productos con sus herramientas de asistencia.

En el apartado Contactar con el equipo Asistencia para Personas con Discapacidad de Google podemos enviar un correo a un especialista para informar a Google de un posible problema de accesibilidad o realizar alguna consulta de accesibilidad a Google.

Cómo utilizar Talkback en el emulador de Android

En un artículo anterior hemos visto cómo utilizar el emulador de Android para poder simular el comportamiento de un dispositivo Android dentro de nuestro ordenador.

Uno de los problemas del emulador de Android es que por defecto no vienen instalados todas las aplicaciones y servicios que se incluyen en un teléfono Android. Entre estos servicios están los servicios de accesibilidad como TalkBack. Pero esto no es problema ya que podemos instalar TalkBack en nuestro emulador de Android para poder probar la accesibilidad del proyecto que estemos realizando o para poder disfrutar de algunas experiencias de Android a través de su emulador.

Instalación del APK

Lo primero que debemos hacer es descargar el APK de TalkBack. Este fichero se puede descargar de la Google PlayStore y su nombre completo es com.google.android.marvin.talkback.apk.

El APK es un fichero comprimido que contiene todos los recursos que requiere una aplicación Android para ser ejecutada en un dispositivo Android.

Una vez descargado el fichero APK debemos arrancar el emulador para que ADB pueda detectarlo ya que realizaremos la instalación a través de ADB.

Podemos mostrar qué dispositivos están conectados a nuestro ordenador con el siguiente comando:

adb devices

Cuando el emulador esté disponible y ADB lo detecte podemos proceder a la instalación del APK con el siguiente comando:

adb install com.google.android.marvin.talkback.apk

Si ADB indica que no se ha encontrado el fichero es porque debemos indicar la ruta concreta o ejecutar el comando ADB en la misma carpeta donde guardamos la descarga del APK. Por ejemplo una versión con ruta completa de este comando sería:

adb install /Users/MiUsuario/Downloads/com.google.android.marvin.talkback.apk

Solucionando problemas con servicios y permisos

En Android es necesario que aplicaciones y servicios tengan permiso del usuario para realizar ciertas tareas. Un lector de pantallas, al igual que otros servicios de accesibilidad, requieren de permisos de alto nivel para poder funcionar. Por defecto al instalar un APK no se otorgan estos permisos por lo que debemos aprobar este nivel de acceso para TalkBack.

Podemos realizar esta operación con el siguiente comando de ADB:

adb shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/.TalkBackService

Arrancando el servicio de accesibilidad

Ahora que tenemos TalkBack instalado en el dispositivo virtual de Android y tiene permisos para ejecutarse debemos activar TalkBack en nuestro dispositivo emulado. Para ello deberíamos ir a los ajustes de Android, accesibilidad y activar TalkBack pero realizar esta operación no es posible si eres un usuario con discapacidad ya que el emulador no ofrece todavía una experiencia accesible.

Por suerte para los usuarios con discapacidad desde ADB también podemos activar y arrancar aplicaciones y servicios en nuestro dispositivo Android. Con el siguiente comando activaremos el servicio de accesibilidad de TalkBack:

adb shell am startservice com.google.android.marvin.talkback/.TalkBackService

Una vez ejecutado el siguiente comando TalkBack debería comenzar a hablar en el emulador. Verifica que el volumen del emulador es suficiente para escuchar la síntesis de voz de TalkBack.

Utilizar TalkBack en el emulador

Para controlar TalkBack en el emulador deberemos utilizar los atajos de teclado de TalkBack como vimos en el artículo sobre cómo utilizar TalkBack con el teclado.

Utilizar Talkback con teclado

En Android existen varias herramientas de asistencia tanto oficiales como de terceros. Una de estas herramientas oficiales es Talkback, el lector de pantallas para Android. Este lector de pantallas viene instalado por defecto en muchas versiones de Android y se puede encontrar en la Playstore de Google.

Talkback, además de mediante gestos en una pantalla táctil, se puede controlar mediante un teclado físico conectado al dispositivo Android. Para ello lo primero que debemos hacer es conectar un teclado inalámbrico al dispositivo.

Hot-key para Talkback

Los lectores de pantalla que son compatibles con el uso mediante teclado suelen utilizar una tecla o conjunto de teclas para sus atajos de teclado. Por ejemplo en VoiceOver son las teclas Control+Opción, NVDA y Jaws utilizan la tecla Insert y Narrador utiliza la combinación Control+Windows. Estas teclas o combinaciones de teclas se conocen como la hot-key del lector de pantallas.

En el caso de Talkback es la tecla Alt. Esto significa que la mayoría de atajos y combinaciones de teclas para manejar Talkback desde un teclado utilizarán la tecla Alt. Esto implica que el teclado que vayamos a utilizar en nuestro dispositivo Android debe incluir, al menos, la tecla Alt.

En las versiones más modernas de Talkback podemos cambiar la hot-key de Talkback por otra tecla que nos resulte más idónea. Para hacer esto dentro de los ajustes de Talkback hay que entrar en configuración avanzada, buscar la sección Combinaciones de teclas. Allí se ha de activar la opción seleccionar tecla modificadora.

Mapas de teclas para Talkback

Talkback ofrece en sus ajustes de configuración la posibilidad de utilizar dos conjuntos de atajo de teclado distintos. Son el mapa de teclas predeterminado y el mapa de teclas clásico. Para este artículo utilizaremos el predeterminado que es el que viene seleccionado por defecto. Además el mapa de teclas clásico no incluye todas las funciones de control de Talkback desde teclado. Por ejemplo, sólo el mapa predeterminado incluye atajos de teclado para navegar de forma más eficiente en contenidos web utilizando Talkback.

Navegación por la pantalla

A la hora de mover el foco de Talkback por la pantalla del escritorio o por una aplicación nativa debemos utilizar las siguientes combinaciones de teclas:

  • Ir al siguiente elemento: Alt+flecha derecha
  • Ir al elemento anterior: Alt+flecha izquierda
  • Ir al elemento superior: Alt+flecha arriba
  • Ir al elemento inferior: Alt+flecha abajo
  • Ir al primer elemento: Alt+Control+flecha izquierda
  • Ir al último elemento: Alt+Control+flecha derecha
  • Ir a la siguiente ventana: Alt+Control+flecha abajo
  • Ir a la ventana anterior: Alt+Control+flecha arriba
  • Hacer click sobre el elemento focalizado: Alt+enter
  • Hacer un click largo o mantenido sobre el elemento focalizado: Alt+Mayúsculas+enter

Explorando texto

También existen combinaciones para poder leer con más detalle el texto que encontremos por la pantalla.

  • Ir a la palabra siguiente: Alt+Control+Mayúsculas+flecha derecha
  • Ir a la palabra anterior: Alt+Control+Mayúsculas+flecha izquierda
  • Ir al carácter siguiente: Alt+Mayúsculas+flecha derecha
  • Ir al carácter anterior: Alt+Mayúsculas+flecha izquierda

Teclas globales

En Android en la parte inferior de la pantalla existen 3 teclas de acción global. Desde el teclado también tenemos acceso a esta funcionalidad.

  • Atrás: Alt+tecla de borrar o retroceder
  • Inicio: Alt+Control+h
  • Aplicaciones recientes: Alt+Control+r
  • Ir a las notificaciones: Alt+Control+n
  • Reproducir/pausar contenido multimedia: Alt+Mayúsculas+espacio

Control de lectura o rotor

En Talkback no existe el rotor de VoiceOver pero si algo muy parecido llamado control de lectura. Podemos utilizar el control de lectura de Talkback mediante los siguientes atajos de teclado:

  • Activar el siguiente control de lectura: Alt+Control+Mayúsculas+flecha abajo
  • Activar el anterior control de lectura: Alt+Control+Mayúsculas+flecha arriba
  • Ajustar el control de lectura al valor anterior: Alt+Mayúsculas+flecha arriba
  • Ajustar el control de lectura al valor siguiente: Alt+Mayúsculas+flecha abajo

Acciones de Talkback

También podemos activar ciertas acciones específicas de Talkback mediante el teclado:

  • Mostrar menú de Talkback: Alt+espacio
  • Mostrar acciones de Talkback: Alt+Control+espacio
  • Buscar un elemento en la pantalla: Alt+Control+/
  • Mostrar idiomas instalados: Alt+Control+l

Lectura de la pantalla

Con Talkback podemos automatizar el proceso de lectura de toda la pantalla. Para ello, además de los gestos específicos, tenemos las siguientes combinaciones de teclas:

  • Leer desde el principio de la pantalla: Alt+Control+enter
  • Leer desde el elemento focalizado: Alt+Control+Mayúsculas+enter

Navegación en Chrome

Con el mapa predeterminado se incluyen algunas combinaciones de teclas para Talkback para agilizar la lectura de una página web:

  • Ir al botón siguiente: Alt+b
  • Ir al botón anterior: Alt+Mayúsculas+b
  • Ir al botón de verificación siguiente: Alt+x
  • Ir al botón de verificación anterior: Alt+Mayúsculas+x
  • Ir al cuadro combinado siguiente: Alt+z
  • Ir al cuadro combinado anterior: Alt+Mayúsculas+z
  • Ir al cuadro de texto siguiente: Alt+e
  • Ir al cuadro de texto anterior: Alt+Mayúsculas+e
  • Ir al gráfico siguiente: Alt+g
  • Ir al gráfico anterior: Alt+Mayúsculas+g
  • Ir al encabezado siguiente: Alt+h
  • Ir al encabezado anterior: Alt+Mayúsculas+h
  • Ir al encabezado de nivel 1 a 6 siguiente: Alt+1 al 6
  • Ir al encabezado de nivel 1 a 6 anterior: Alt+Mayúsculas+1 al 6
  • Ir al enlace siguiente: Alt+l
  • Ir al enlace anterior: Alt+Mayúsculas+l
  • Ir a la lista siguiente: Alt+o
  • Ir a la lista anterior: Alt+Mayúsculas+o
  • Ir a la tabla siguiente: Alt+t
  • Ir a la tabla anterior: Alt+Mayúsculas+t

Talkback ahora será conocido como Android Accessibility Suite

La empresa Google ha decidido cambiar el nombre a su lector de pantallas para el sistema Android. En la última actualización de Talkback Google ha aprovechado y cambiado el nombre de este lector a Android Accessibility Suite.

Con este movimiento parece ser que la empresa quiere dejar claro que Talkback ha dejado de ser un sistema que comenzó como una aplicación para que personas pudiesen manejar el teléfono sin mirar a la pantalla y ser ya oficialmente un lector de pantallas que permite explorar una pantalla táctil mediante gestos y recibir la información bien mediante voz o braille.

Según la página de Android accessibility suite en la PlayStore este lector de pantallas incluye tres servicios:

  • Talkback: añade feedback de voz, vibración y sonido a tu dispositivo
  • Switch access: permite controlar tu dispositivo mediante gestos
  • Select to speak: permite seleccionar un contenido de la pantalla para ser leído mediante la voz de tu dispositivo

Aunque el nombre del paquete de software ha cambiado Google sigue conservando el nombre de Talkback para identificar el módulo principal del lector de pantalla así como las referencias al lector de pantallas en la documentación de soporte para Talkback

A nivel de uso este cambio de nombre no implica nada para el usuario de lector de pantallas para Android. Más bien resulta beneficioso ya que permite a fabricantes de dispositivos Android o cocineros de roms para Android incluir un único paquete con todo el soporte necesario para que un usuario ciego pueda tener acceso al sistema operativo Android instalando una única aplicación.

Puedes encontrar y descargar la aplicación en la página de Android accessibility suite en la PlayStore

La accesibilidad continúa mejorando en Android

Reciéntemente Google ha liberado la versión 4.2.2 de su sistema operativo para dispositivos móviles.

Con cada nueva versión de Android se incluyen nuevas características de accesibilidad que hacen este sistema más accesible a todos los usuarios.

Características generales de accesibilidad en Android

Android, con cada nueva versión, ha ido incluyendo una serie de características generales de accesibilidad en su sistema. Algunas de las que podemos encontrar son:

  • Talkback: El lector de pantallas más utilizado en Android
  • Gestos de ampliación: tocando 3 veces con un dedo en la pantalla se realizará una ampliación de la zona tocada para ayudar a ver algo en detalle.
  • Personalización del tamaño general de la fuente de letra para todo el sistema: de esta forma podremos hacer que todos los mensajes, contenidos y controles amplíen su tamaño o lo reduzcan adaptándose a las necesidades del usuario.
  • Tecla bloqueo descuelga: una función de atajo de teclado para facilitar la función del teléfono a personas con problemas para localizar rápidamente elementos en la pantalla.
  • Control sobre el giro de la pantalla: para aquellos usuarios que siempre utilicen el dispositivo en modo apaisado o vertical y no quieren que eso se modifique.

Todos estos elementos van siendo actualizados en cada nueva versión de Android. Por ejemplo Talkback, en su última versión, incluye soporte de conectividad con líneas braille gracias al módulo Brailleback o un sistema de activación de TalkBack en cualquier momento.

Las aplicaciones como aliados de la accesibilidad

Pero el mayor avance en accesibilidad específica para ciertos perfiles de discapacidad no ha venido de la mano de Google directamente, se ha originado gracias al trabajo de desarrolladores concienciados e interesados en utilizar los dispositivos móviles como intermediarios entre el usuario con necesidades especiales y el entorno que le rodea.

Los desarrolladores han proporcionado alternativas a productos de apoyo para usuarios que no encuentran cómodos o suficientes a los proporcionados por Google. Por ejemplo, Spiel es una muy buena alternativa a Talkback; eSpeak es una voz metálica de muy poco peso que será más ágil que la voz de Google y tiene mejor gestión de los acentos y algunas consonantes que la última versión de la voz de Google que sigue con su entusiasmo a la hora de pronunciar algo.

Android es un sistema bastante más abierto que otras plataformas de dispositivos móviles como Apple iOS o Microsoft Windows Phone. También es posible utilizar este sistema operativo en mayor diversidad de dispositivos: teléfonos, televisiones, controles domóticos, dispositivos de diseño específico, etc. Todo esto facilita el desarrollo de aplicaciones que amplíen las características de accesibilidad en general o que satisfagan las necesidades de accesibilidad de un perfil de discapacidad determinado.

Los enemigos de la accesibilidad en Android

La gran diversidad y fragmentación de configuraciones posibles en Android es uno de los principales enemigos de la accesibilidad. Su gran capacidad de personalización por parte de los fabricantes puede provocar que encontremos dispositivos Android con sus características de accesibilidad mermadas. Es el caso de muchos teléfonos de las empresas HTC o Samsung las cuales incluyen en sus teléfonos escritorios y temas visuales propios que resultan incompatibles con los productos de apoyo y la capa de accesibilidad de Android.

También las distintas configuraciones de resolución de pantallas, teclas físicas y capacidades de procesador provocan que un servicio o producto de apoyo no funcione como se esperaba debido a que los desarrolladores no pueden probar sus desarrollos en todas las posibles configuraciones.

Por último enemigo tenemos a la propia Google que, en algunas ocasiones, parece desviarse de su objetivo de accesibilidad o interpretar conceptos de accesibilidad y usabilidad de forma anómala o distinta al resto de actores en el ámbito de la tecnología móvil sorprendiendo, en ocasiones, a los usuarios con nuevos servicios sin accesibilidad o que con una nueva versión de uno de sus productos desaparecen algunas características de accesibilidad.

Un futuro prometedor al que se llega con paciencia

Desde la publicación de Android 4.0 es clara la evolución a mejor en su accesibilidad. El sistema permite a una persona ciega utilizar cada vez más aplicaciones y funciones de un teléfono con este sistema. Pero aún no es cómodo utilizar esta plataforma para algunos perfiles de discapacidad y hay que tener especial cuidado a la hora de elegir un teléfono móvil que incluya las características de accesibilidad necesarias para satisfacer a un usuario concreto.

Esperemos que Google siga trabajando en mejorar la usabilidad de su capa de accesibilidad, promover esta entre los desarrolladores para que haya cada vez más aplicaciones accesibles en el Play store, la tienda de aplicaciones Android, y que obligue a los fabricantes a respetar la capa de accesibilidad y sus servicios.