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.

Control por voz para iPhone

Control por Voz (Voice Control) es una función de accesibilidad integrada en iOS que permite manejar el iPhone completamente mediante comandos de voz, sin necesidad de tocar la pantalla. Este servicio de accesibilidad es indispensable para personas con movilidad reducida o para quienes prefieren interactuar con el dispositivo utilizando la voz.
Con este servicio de accesibilidad se pueden abrir aplicaciones, navegar por menús, escribir mensajes, hacer llamadas, interactuar con elementos de la pantalla y mucho más simplemente usando comandos de voz.
A diferencia de Siri, que se centra en ejecutar tareas o responder preguntas, Control por Voz sustituye la interacción táctil. Es como si el iPhone entendiera cada toque, deslizamiento o pulsación… pero dicho en voz alta.

Activar control por voz

El control por voz se activa en el menú de Accesibilidad dentro de los Ajustes del iPhone. Dentro de la sección HABILIDADES FÍSICAS Y MOTORAS se encuentra un botón llamado Control por voz. Al pulsarlo accederemos a las opciones de activación y configuración de Control por voz.

Configurar Control por Voz en español

Cuando se activa Control por Voz por primera vez el dispositivo tiene que descargar un modelo de comprensión del habla para poder entender los comandos que se le indican. El dispositivo puede tardar unos minutos en descargar el modelo de reconocimiento de voz.
Para configurarlo en nuestro idioma debemos entrar en la opción de idioma, seleccionar el idioma que queramos utilizar y esperar a que se descargue el soporte para nuestro idioma.

Importante: Algunos comandos pueden variar ligeramente entre idiomas por lo que es recomendable consultar la lista de comandos disponibles para Control por voz.

Uso básico

Una vez activado, un pequeño icono azul aparecerá en la parte superior de la pantalla indicando que el iPhone está “escuchando”.
A partir de ese momento, se pueden decir cosas como: abrir Safari, ir a inicio, pulsar atrás, tocar aceptar, etc.

Activación y desactivación rápida

Aunque Control por voz incluye un modo para pausar su uso y despertarlo también podemos hacer uso de Siri para activarlo o desactivarlo. Con el comando «activa control por voz» Siri ejecutará el control por voz si ya lo hemos configurado en nuestro dispositivo. Y con el comando «desactiva control por voz» Siri lo desactivará.

Utilizando el sistema de oye Siri podremos también activar y desactivar el control por voz sin necesidad de tocar el iPhone.

Identificar elementos en pantalla con Control por voz

Cuando necesitamos tocar un botón o manipular un elemento de la pantalla debemos emplear el nombre que aparece en el botón o control. Pero en muchas ocasiones la aplicación no se ha desarrollado con el nivel de accesibilidad suficiente y el servicio de Control por voz no encuentra eso que le hemos pedido debido a que internamente el desarrollador no ha etiquetado de forma apropiada ese control.

Para solucionar esta situación de baja accesibilidad el Control por voz puede reetiquetar todos los elementos pulsables que aparecen en pantalla utilizando un número. De esta forma, aunque un botón con el icono de continuar no se haya etiquetado de forma accesible podremos activarlo diciendo «pulsar» y el número que aparezca sobre el botón.

Para hacer que aparezcan estos números simplemente debemos utilizar el comando Mostrar números. Y para dejar de usar números existe el comando Ocultar números.

Navegación por zonas

A veces la pantalla de una aplicación tiene demasiados controles y la navegación por números puede ser muy pesada. El servicio de Control por voz permite activar una navegación por zonas, para ello debemos utilizar el comando Mostrar cuadrícula. En la pantalla aparecerá una rejilla que delimitará la zona de acción del Control por voz. Podemos utilizar el comando Ocultar cuadrícula para dejar de utilizar este sistema.

Escribir con Control por voz

Con el servicio de Control por voz también podemos introducir texto dictando lo que queramos escribir. Para ello debemos activar el teclado del iPhone pulsando sobre el cuadro de texto donde queramos escribir y utilizar el comando Escribir. Por ejemplo: pulsar nombre, escribir Jonathan Chacón, pulsar aceptar.

También, cuando el teclado está activo, se pueden utilizar los comandos seleccionar todo, borrar todo, reemplazar Chacón por Chacón Barbero. Las posibilidades son inmensas.

Si utilizamos Control por voz con Zoom o VoiceOver activos el comportamiento del sistema de dictado cambia por lo que debemos ajustar la forma de dictar al teléfono a la presencia de otros servicios de accesibilidad.

Conociendo más comandos de Control por voz

En los ajustes de Control por voz hay un botón llamado Comandos. Dentro de ese botón aparece un menú de navegación en el que podemos consultar y activar todos los comandos de voz disponibles para este servicio de accesibilidad.

Programar a ciegas RSS vuelve a estar disponible para iOS

La app Programar a ciegas RSS vuelve a estar disponible en la AppStore para poder leer con más comodidad los artículos de este sitio web.

Podéis encontrar más información en la página de ProgramarACiegas RSS en Tyflos Accessible Software.

Dentro de las novedades de esta versión se incluyen las siguientes:

  • Toda la app se ha rehecho utilizando SwiftUI y las últimas librerías de Apple para proporcionar la experiencia más accesible posible.
  • La aplicación ahora incluye persistencia de la información utilizando Realm para poder leer los artículos en cualquier momento.
  • Con esta nueva reconstrucción de la app es posible la publicación en otras plataformas como MacOS, TvOS, WatchOS o VisionOS si el feedback de los usuarios así lo piden.

Qué es Fastlane

Dentro del desarrollo de software es habitual que los entornos de desarrollo incluyan muchas herramientas para realizar tareas relacionadas con el mantenimiento y la publicación de una aplicación software. Pero la mayoría de estas herramientas integradas en los entornos de desarrollo funcionan de forma manual requiriendo una completa atención por parte de la persona que está desarrollando el software.

La automatización de procesos dentro de la ingeniería del software se ha demostrado como uno de los caminos más beneficiosos para aumentar la productividad y la fiabilidad del software. Por esta razón han ido apareciendo multitud de herramientas que permiten realizar más tareas y procesos que los entornos de desarrollo y, sobre todo, automatizar estos procesos.

¿Qué es Fastlane?

Fastlane es una de estas herramientas que permiten automatizar muchos de los procesos y tareas relacionadas con el desarrollo de software para iOS y Android.

Esta herramienta creada por Felix Crause consiste en un conjunto de servicios y aplicaciones ejecutadas desde la línea de comandos (CLI) utilizando lenguaje Ruby y permite automatizar muchos de los procesos que se realizan con Android Studio y Xcode.

Entre las diversas tareas que permite automatizar Fastlane están las siguientes:

  • Creación de capturas de pantalla para la tienda de aplicaciones
  • Despliegue de la app dentro de entornos de betatesting como Test flight.
  • Publicación del proyecto en la tienda de aplicaciones
  • Firma de paquetes de software para la distribución del proyecto
  • Ejecución de planes de tests

Como todas estas automatizaciones se ejecutan desde la línea de comandos es muy fácil incluir scripts de la Terminal para realizar comprobaciones o actualizaciones de recursos para la distribución de nuestro proyecto software.

En futuros artículos veremos algunas de estas automatizaciones con más detalle.

La instalación de fastlane es muy sencilla y su uso consiste principalmente en la ejecución de ciertos comandos de Terminal en la propia carpeta raíz de nuestro proyecto software. Este uso de la Terminal hace que el uso de Fastlane resulte más accesible que utilizar ciertas herramientas visuales incluidas en Xcode o Android studio.

Puedes obtener documentación, ejemplos y más información en la página oficial de Fastlane.

Disponible la librería SpeechManager para MacOS, iOS, TvOS y WatchOS

La librería SpeechManager proporciona diversas funciones para poder controlar los sistemas de síntesis de voz que ofrece Apple en sus diversas plataformas.

Con SpeechManager podremos utilizar tanto la síntesis de voz del sistema como la de la propia API de accesibilidad.

Este framework se distribuye como un paquete compatible con Swift Package Manager por lo que la integración en proyectos con XCode está garantizada.

La librería se ha publicado bajo la licencia MIT por lo que es totalmente libre y únicamente se requiere respetar la autoría de la misma.

Puedes encontrar esta librería en la página del repositorio de SpeechManager en el Github de Tyflos accessible software.

Disponible la librería OCRHelper para MacOS, iOS, TvOS y WatchOS

Disponible librería para reconocer el texto de imágenes en proyectos MacOS, iOS, TvOS y WatchOS con Swift utilizando Swift Package Manager.

La librería llamada OCRHelper simplifica los procesos de detección de texto en una imagen tanto en formato CGImage, NSImage como UIImage por lo que se pueden crear aplicaciones con reconocimiento de texto en cualquier plataforma de Apple.

La librería se ha publicado bajo la licencia MIT por lo que es totalmente libre y unicamente se requiere respetar la autoría de la misma.

Puedes encontrar esta librería en la página del repositorio de OCRHelper en el Github de Tyflos accessible software.