Herramientas y Estrategias para Crear Apps Accesibles en Android e iOS

El desarrollo de aplicaciones móviles se ha convertido en una de las áreas más dinámicas e innovadoras de la industria del software. Este sector exige unos tiempos de actualización y publicación de nuevas aplicaciones muy elevado. Esto provoca que, en muchos casos, la accesibilidad sea una de las características perjudicadas en los productos publicados.
Una aplicación puede ser visualmente atractiva, contar con funciones avanzadas y ofrecer un rendimiento impecable, pero si no es usable para personas con discapacidad, estará dejando a un sector de la población fuera de la experiencia digital.

Accesibilidad desde la base del dispositivo

Los sistemas operativos para dispositivos móviles han dado pasos decisivos para que los desarrolladores tengan a su disposición herramientas de accesibilidad integradas desde el inicio. En el caso de Android, TalkBack es el lector de pantalla oficial que permite a los usuarios interactuar con la interfaz mediante gestos y mediante una comunicación por voz o braille, conocer qué aparece en la pantalla del dispositivo. En iOS, VoiceOver cumple esa función con un enfoque similar, basado en gestos multitáctiles y una navegación estructurada similar a la presentada en Android. Estos lectores no solo son esenciales para las personas ciegas, también se convierten en el punto de partida para que cualquier desarrollador entienda cómo se percibe su aplicación sin ver la pantalla.

El reto de desarrollar interfaces de usuario accesibles

Pensar en la interfaz no solo como un conjunto de imágenes y botones visibles, sino como una estructura semántica que se transforma en una experiencia navegable, coherente y predecible mediante voz o braille. Para lograrlo, es fundamental aprovechar correctamente los roles de accesibilidad que ofrecen los frameworks nativos. En SwiftUI, por ejemplo, existen modificadores que permiten etiquetar elementos y proporcionarles un texto descriptivo con accessibilityLabel, agrupar componentes o describir cambios dinámicos en la interfaz para que VoiceOver pueda transmitir toda la información de la pantalla al usuario ciego. En Android, el uso adecuado de contentDescription, AccessibilityNodeInfo y las API de Jetpack Compose garantizan que cada control comunique su función de manera clara a TalkBack.

Pero la accesibilidad no se limita a etiquetas de texto. También implica asegurar que la navegación por gestos sea lógica, que los botones tengan un tamaño adecuado para ser pulsados, que los contrastes de color cumplan los estándares y que las animaciones no generen barreras. Una interfaz sobrecargada de elementos visuales puede ser un obstáculo insuperable si no se acompaña de una estructura semántica que guíe al lector de pantalla.

Probar el producto

Las pruebas son otro aspecto crucial para la accesibilidad. Así como se prueban la usabilidad o el rendimiento, es necesario integrar pruebas de accesibilidad en el ciclo de desarrollo. Probar la aplicación con TalkBack y con VoiceOver no debe ser una tarea secundaria ni un “extra” antes de la publicación, sino un paso constante que permita detectar fallos antes de que lleguen a los usuarios. Existen además validadores automáticos, como Accessibility Scanner en Android o las auditorías de Xcode en iOS, que ayudan a identificar problemas comunes de forma temprana.

La accesibilidad en el equipo

Crear aplicaciones accesibles también implica cambiar la mentalidad del equipo de desarrollo y diseño. No se trata solo de cumplir con normativas como las WCAG, sino de pensar en la diversidad de personas que van a usar la aplicación. Una pantalla que puede parecer intuitiva para alguien que puede ver puede ser confusa si los elementos no están correctamente etiquetados o si el flujo de navegación es poco claro. Del mismo modo, un gesto complejo puede convertirse en una barrera para personas con movilidad reducida o que no puedan intuir el comportamiento necesario para utilizar la aplicación.

El equipo, además, tiene que comprender que la accesibilidad no es una carga, sino una oportunidad. Una app bien diseñada para ser inclusiva no solo beneficia a las personas con discapacidad visual, sino que también mejora la experiencia para otros colectivos: usuarios mayores, personas que utilizan el móvil en condiciones de baja visibilidad o incluso quienes prefieren interactuar con comandos de voz. La accesibilidad amplía el alcance del producto y refuerza la idea de que la tecnología debe estar al servicio de todos.

El reto del desarrollo de aplicaciones móviles accesibles es, en gran parte, un reto de empatía y de calidad. Quienes se enfrenten a él con seriedad descubrirán que las herramientas ya están disponibles y que, con buenas prácticas y compromiso, es posible construir experiencias digitales que no excluyan a nadie. Android y iOS ofrecen la base: depende de los desarrolladores aprovecharla para transformar sus proyectos en aplicaciones verdaderamente universales.

Cómo etiquetar imágenes y componentes visuales en Android con Content Description

En el desarrollo de aplicaciones para Android, la accesibilidad es un aspecto que no puede dejarse de lado. Uno de los errores más comunes en las interfaces de aplicaciones móviles es utilizar iconos o imágenes sin acompañarlos de una descripción accesible. Para los usuarios que dependen de TalkBack u otros lectores de pantalla, estos elementos pueden convertirse en barreras de accesibilidad muy severas si no cuentan con la información adecuada para identificar la funcionalidad de dichos botones o elementos visuales.

La propiedad contentDescription permite añadir una etiqueta textual a cualquier componente visual, de forma que TalkBack la anuncie en lugar de limitarse a leer un nombre técnico como “ic_send” o a ignorar la imagen por completo.

Ejemplo básico en XML

Un caso clásico es un botón con un icono de avión de papel que representa la acción de enviar un mensaje. Visualmente resulta evidente, pero sin descripción accesible no es comprensible para quien no puede ver la pantalla:

<ImageButton
android:id="@+id/sendButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_send"
android:contentDescription="Enviar mensaje"
/>

En este ejemplo, TalkBack leerá “Enviar mensaje” al situarse sobre el botón, en lugar de un nombre de archivo técnico.

Ejemplo con Jetpack Compose

En Compose, la accesibilidad se maneja mediante modificadores de semántica. El equivalente a contentDescription sería:

IconButton(
onClick = { /* Acción para enviar */ },
modifier = Modifier.semantics { contentDescription = "Enviar mensaje" }
) {
Icon(
imageVector = Icons.Default.Send,
contentDescription = null // Evitamos redundancia
)
}

En este ejemplo el botón anuncia la etiqueta “Enviar mensaje” al interactuar con TalkBack. El icono interno no necesita contentDescription porque ya se ha definido en el contenedor.

Buenas prácticas

La propiedad contentDescription es sencilla de usar, pero conviene aplicarla con criterio:

  1. Priorizar la función: un icono de engranaje para un botón para ir a los ajustes de la app no debería describirse como “rueda dentada”, sino como “Ajustes”, que es la acción real.
  2. Ser breve y claro: descripciones cortas facilitan la navegación. Un botón que abre un chat debe decir “Abrir chat”, no “Icono de burbuja de diálogo para iniciar conversación”.
  3. Evitar redundancias: si un TextView ya tiene texto visible, no es necesario repetirlo en contentDescription. TalkBack lo leerá automáticamente.
  4. Ocultar lo decorativo: para imágenes que solo son decorativas, se debe establecer android:contentDescription=»@null» en XML o contentDescription = null en Compose. De esta forma TalkBack las ignora.

Etiquetar adecuadamente los componentes visuales no solo es una buena práctica de desarrollo, sino un compromiso con la inclusión digital. Al igual que ocurre con cualquier aspecto del diseño, dedicar unos segundos a escribir una descripción accesible marca la diferencia entre una app usable y otra que excluye a parte de sus usuarios. La propiedad contentDescription es una de las herramientas más simples y a la vez más poderosas que Android pone en manos de los desarrolladores para mejorar la accesibilidad. Añadir una descripción clara y precisa a imágenes e iconos garantiza que los usuarios con lectores de pantalla comprendan e interactúen con la interfaz en igualdad de condiciones.

Accesibilidad en Android TV

Al hablar de accesibilidad digital, suele pensarse en dispositivos móviles, sitios web o aplicaciones de escritorio. Sin embargo, los dispositivos utilizados en el entorno doméstico también forman parte del ecosistema digital. Android TV, el sistema operativo de Google para televisores inteligentes, reproductores multimedia y decodificadores, ha incorporado importantes avances en materia de accesibilidad en los últimos años.

Las Smart TV ya no son simplemente “televisores”. Hoy son plataformas interactivas con cientos de aplicaciones, acceso a Internet, funciones de búsqueda por voz, sistemas de compra y hasta videojuegos. Por eso, las personas con discapacidad también necesitan poder navegar por ellas, entender su contenido y controlarlas sin barreras.

Una buena implementación de accesibilidad en este entorno permite que personas ciegas, con baja visión, dificultades motoras o sordera puedan ver contenidos audiovisuales con subtítulos y audiodescripciones, navegar por menús, apps y configuraciones usando solo un mando a distancia, controlar el dispositivo con comandos de voz y escuchar la interfaz leída por un lector de pantallas.

Navegación por Android TV

Android TV está diseñado para ofrecer una experiencia de usuario sencilla, optimizada para pantallas grandes y control remoto. Su interfaz está compuesta por distintas secciones que permiten acceder a aplicaciones, configuraciones del sistema, contenidos recomendados y servicios multimedia.

A continuación se describen las principales áreas del sistema y su funcionalidad:

Escritorio

Es la primera pantalla que se muestra al encender el dispositivo. Desde ella se accede a las aplicaciones instaladas, contenidos recomendados y accesos directos a servicios multimedia. Suele estar organizada en filas horizontales que se pueden recorrer con el mando a distancia mediante las flechas de dirección.

Dependiendo del dispositivo, puede incluir una barra de búsqueda por voz o texto, así como accesos a ajustes rápidos o perfiles de usuario.

Esta pantalla suele estar asociada al botón Inicio del mando a distancia.

Menú de ajustes

Desde este panel se configuran todos los aspectos del sistema: red, imagen, sonido, accesibilidad, almacenamiento, actualizaciones, etc. Está estructurado de forma jerárquica y permite navegar con el mando siguiendo una exploración vertical y profundizando las opciones hacia la derecha.

Se puede acceder a esta sección desde un botón en el escritorio con el icono de un engranaje y etiquetado como Ajustes y, en algunos modelos de televisión, haciendo una pulsación mantenida del botón de Inicio en el mando a distancia.

Buscador

Android TV integra un sistema de búsqueda por texto o por voz que permite encontrar películas, series, vídeos, aplicaciones o ajustes del sistema. Utiliza el motor de Google para ofrecer resultados relevantes tanto dentro de apps como en la tienda de contenido.
También, en algunos modelos, realiza la búsqueda en los contenidos almacenados en el dispositivo o en los catálogos de las plataformas de streaming como HBO o Disney.

Se puede acceder al buscador utilizando la función de micrófono o a través de un botón en el escritorio. 

Aplicaciones

Existe un panel que muestra una cuadricula de aplicaciones instaladas. Desde este panel se pueden abrir o cerrar las aplicaciones o desinstalarlas mediante el menú contextual de cada icono.

Cada aplicación instalada funciona como una ventana de acceso a un servicio o contenido específico. Algunas permiten personalización, guardado de contenidos, inicio de sesión, o integración con canales del escritorio.

Se puede acceder a este panel utilizando el botón Apps del mando a distancia, desde el menú de ajustes o a través de un botón en el escritorio.

Google Play Store

Algunos fabricantes incluyen la tienda de aplicaciones de Google desde la que podemos instalar nuevas apps para añadir más funcionalidad a nuestra televisión.

Su catálogo está adaptado a dispositivos de pantalla grande y control remoto. Incluye categorías como entretenimiento, juegos, herramientas, educación y más.

El acceso a la Playstore se realiza mediante la app Playstore. En algunos mandos a distancia se incluye un botón específico para esta app.

Perfiles y cuentas de usuario

Algunos modelos de Android TV permiten gestionar varios perfiles para personalizar la experiencia de cada usuario. Esto incluye recomendaciones, historial de visualización y ajustes individuales.
En la esquina superior derecha del escritorio suele haber un icono para acceder a los perfiles de usuario disponibles.

Ajustes rápidos o menú contextual

En algunos dispositivos se puede acceder a un pequeño panel lateral que muestra opciones rápidas como modo de imagen, audio, subtítulos o entradas de vídeo.

Para acceder a este menú contextual se debe utilizar o un botón específico del mando a distancia o una pulsación mantenida del botón Enter.

Selector de entrada

Este panel permite cambiar entre diferentes fuentes de señal: HDMI, antena, AV, etc. Este panel es especialmente relevante en televisores que combinan Android TV con sintonizadores de televisión tradicional.

Para acceder a este panel debemos utilizar el botón Input del mando a distancia (si lo incluye) o desde el menú de ajustes, en la sección de entradas o dispositivos externos.

Protectores de pantalla y contenidos dinámicos

Además de todas estas secciones en Android TV existen contenidos dinámicos que aparecen cuando se dan ciertas situaciones como varios minutos de inactividad, algún cambio en la emisión o alguna notificación para el usuario.

Acceder o salir de estas secciones es algo no resuelto del todo en todas las versiones de Android TV 4. Si no se requiere ningún tipo de interacción o acción por parte del usuario podemos salir de este contenido pulsando la tecla Enter del mando a distancia pero si utilizamos un servicio de accesibilidad puede que la accesibilidad no funcione mientras el foco del sistema esté en este panel de contenido dinámico.

Servicios de accesibilidad y fragmentación de la plataforma

Aunque los servicios de accesibilidad para Android TV vienen por defecto, en la mayoría de fabricantes, esto es cierto sólo cuando el dispositivo utilice Android TV 4 o una versión superior. Además, el fabricante puede incluir cambios o personalizaciones en su versión de Android limitando o ampliando las características y servicios de accesibilidad.

Además de estas personalizaciones que pueden reducir la accesibilidad de Android TV, el fabricante también puede reducir la accesibilidad al proporcionar un mando a distancia táctil o que no incluya los botones suficientes para que los servicios de accesibilidad funcionen de forma apropiada. 

En una versión pura y sin personalizaciones de Android TV 4 podemos encontrar los servicios de accesibilidad en la sección de Ajustes > Preferencias del dispositivo > Accesibilidad.

En este conjunto de servicios de accesibilidad es usual encontrar las siguientes herramientas para mejorar la accesibilidad a la hora de utilizar el dispositivo:

TalkBack: lector de pantallas

TalkBack es el lector de pantallas incluido en Android TV. Una vez activado, proporciona una descripción por voz de los elementos visibles en pantalla, lo que permite su uso sin necesidad de visión.

Funcionalidades principales:

• Lectura por foco: al desplazarse por la interfaz con el mando, TalkBack verbaliza el elemento seleccionado.
• Comandos mediante el mando a distancia: se pueden emplear combinaciones de teclas para ejecutar acciones, avanzar, retroceder o activar funciones.
• Soporte para contenido dinámico: TalkBack proporciona retroalimentación sobre notificaciones, banners y cambios de estado en aplicaciones compatibles.

En algunos dispositivos, TalkBack puede activarse manteniendo pulsados simultáneamente los botones de bajar y subir volumen, o una pulsación mantenida del botón para silenciar el micrófono del mando a distancia.

Ampliación (Zoom)

La función de ampliación permite hacer zoom sobre la imagen de la pantalla. Resulta útil para personas con baja visión y puede activarse mediante combinaciones de botones específicas del mando.

Subtítulos

El sistema permite activar subtítulos para contenidos compatibles, así como personalizar su apariencia (tamaño de letra, colores, fondo, tipo de borde, posición en la pantalla, etc).
En algunas versiones más modernas de Android Tv, además, estos subtítulos pueden ser leídos automáticamente por el lector de pantallas.

Control por voz

Android TV es compatible con el Asistente de Google, lo que permite controlar el dispositivo mediante comandos de voz. Esta funcionalidad facilita tareas como abrir aplicaciones, reproducir contenido o modificar el volumen, sin necesidad de navegar manualmente.

En las versiones más modernas de Android TV se ha incluido compatibilidad con Gemini y la inteligencia artificial de Google.

Accesibilidad en los contenidos en emisión

Cuando la televisión accede a los distintos canales mediante una conexión digital se pueden acceder a ciertos servicios de accesibilidad que ofrecen las propias emisoras de televisión. Entre las opciones disponibles se encuentran:

  • Soporte para pistas de audiodescripción, cuando están disponibles en el contenido.
  • Subtítulos automáticos, en algunas aplicaciones de Google.
  • Compatibilidad con salida de audio por Bluetooth o en modo mono, útil para audífonos.

Interacción mediante el mando a distancia

La principal vía de interacción en Android TV es el mando a distancia. Dado que no se dispone de pantalla táctil ni puntero, la navegación se realiza secuencialmente mediante las teclas de dirección, las opciones y teclas del mando a distancia para el acceso a los menús, la activación de botones y el teclado virtual en pantalla.

Aunque el sistema y TalkBack están diseñados para funcionar con esta interfaz, permitiendo la navegación y activación de elementos sin barreras visuales, la accesibilidad de muchas aplicaciones depende del esfuerzo y el interés del desarrollador en incluir características de accesibilidad.

El número de teclas incluidos en el mando a distancia puede limitar algunas funciones del lector de pantallas ya que el acceso a funciones como abrir el menú contextual o accesos rápidos a la pantalla de inicio, a los ajustes generales o al escritorio de apps puede dificultarse si el mando no incluye estos accesos rápidos. Además, aunque la televisión no está diseñada como una interfaz táctil, el mando a distancia si puede incluir una pantalla táctil para sustituir algunas funciones como el teclado en pantalla. 

Algunas televisiones permiten la conexión de un teclado externo mediante Bluetooth u otros mandos para jugar a videojuegos o utilizar ciertas herramientas que requieren de más precisión. Estos dispositivos externos, en algunos casos y siempre que lo permita el fabricante de la televisión, pueden utilizarse para mejorar el manejo de los servicios de accesibilidad incluidos en la televisión.

Carencias en accesibilidad

Aunque Android TV 4 ofrece varios servicios de accesibilidad y limita la forma de interacción al uso de un mando a distancia la actual fragmentación originada por los fabricantes hacen que no se pueda asegurar que todos los dispositivos con Android TV 4 sean accesibles.

Además, la documentación de accesibilidad para los desarrolladores de Android TV 4 es aún más escasa que para Android para smartphones por lo que es muy probable encontrar fallos de accesibilidad en las apps.

Unido a esto, Android TV aún no ha incluido soporte para líneas braille, barredores y dispositivos apuntadores para la accesibilidad. Esto hace que el nivel de accesibilidad de Android TV es inferior al que podemos encontrar en las versiones actuales de Android para teléfonos. Esperemos que en futuras actualizaciones de Android TV se reduzca la fragmentación y se amplíe el soporte de accesibilidad para periféricos externos.

Cómo mostrar la pantalla de tu teléfono Android en tu Mac

En un artículo anterior aprendimos a mostrar la pantalla de nuestro iPhone en el mac.

Esta misma necesidad nos puede surgir pero con un teléfono Android. El programa Quicktime no detecta a los teléfonos y dispositivos Android como fuentes de video por lo que necesitaremos otra aplicación como puede ser scrcpy.

¿Qué es scrcpy?

El paquete scrcpy es una herramienta que permite reflejar y controlar dispositivos Android desde un ordenador. Es ideal para realizar demostraciones en tiempo real, capturar la pantalla para tutoriales o pruebas, y mejorar la productividad cuando necesitas interactuar con tu dispositivo móvil sin tener que tocarlo. Además, es una solución ligera, sin necesidad de instalar aplicaciones en el teléfono, ya que utiliza ADB (Android Debug Bridge) para conectarse a tu dispositivo.

Su instalación es sencilla ya que se distribuye como un paquete de Homebrew.

Para instalar scrcpy simplemente deberemos ejecutar este comando de brew en la Terminal de MacOS:

brew install scrcpy

Una vez instalado para poder utilizarlo deberemos activar el modo de depuración por USB en nuestro teléfono Android. Esta opción está disponible dentro del menú de opciones para desarrolladores del teléfono.

Una vez activado este modo de depuración es necesario conectar el teléfono Android al Mac utilizando un cable USB. El teléfono preguntará si confías en el ordenador al que se ha conectado. Debemos responder que sí.

En la Terminal de Mac ejecutaremos el comando:

scrcpy

Aparecerá una nueva ventana con el contenido de nuestro teléfono y, además, si el teléfono está ejecutando una versión de Android moderna, también podremos escuchar el sonido del teléfono en nuestro Mac. De esta forma podremos compartir el contenido visual y auditivo de nuestro teléfono Android en videoconferencias y reuniones compartiendo la pantalla de nuestro Mac.

Puedes consultar más opciones y comandos de scrcpy en la página oficial del proyecto scrcpy.

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 instalar apps de la Playstore en un dispositivo Android desde un navegador

El sistema operativo Android está presente en multitud de dispositivos: teléfonos, televisores, tablets, centralitas domóticas, etc, y aunque su accesibilidad va en un continuo aumento sigue presente el problema de la fragmentación a causa de los fabricantes así como la mayor o menor comodidad a la hora de acceder y manejar ciertas interfaces de usuario de Android.

Por ejemplo se puede dar el caso de querer instalar una aplicación como Talkback, el lector de pantallas de Google para Android, en una tablet o una televisión que no tenga instalado el lector de pantallas. En principio una persona ciega no podría hacer esta instalación de forma autónoma a menos que aproveche la instalación remota de aplicaciones que permite la Playstore de Google.

La Playstore es la tienda de aplicaciones para Android que ofrece Google para los dispositivos compatibles con los servicios de esta empresa. En la actualidad la mayoría de dispositivos con Android, Android TV, Android wear y Android auto incluyen la Playstore y demás servicios de Google.

Para instalar desde un navegador web una aplicación de la Playstore en uno de nuestros dispositivos Android debemos seguir los siguientes pasos:

  1. Ir a la página oficial de Google Playstore e iniciar sesión con la misma cuenta de GMail con la que hayamos configurado nuestro dispositivo Android.
  2. Busca la aplicación que deseas instalar y accede a la página de detalle de la aplicación pulsando el enlace en la lista de resultados de búsqueda.
  3. Busca el botón Instalar y selecciona el dispositivo donde quieras instalar la aplicación.
  4. Acepta el diálogo de consulta e introduce la contraseña de tu perfil si es necesario para continuar con el proceso.
  5. Si el dispositivo de destino está encendido y conectado a Internet el proceso de instalación comenzará en pocos minutos.

Con este procedimiento podemos preparar nuestro dispositivo Android con nuestras aplicaciones favoritas y necesarias para que podamos utilizar estos dispositivos de la forma más autónoma posible.