Los Beneficios y Desafíos de la Accesibilidad en Herramientas Low-Code y No-Code para la Creación de Software

En los últimos años, el auge de las herramientas low-code y no-code ha revolucionado la manera de desarrollar software. Estas plataformas han permitido el acceso al desarrollo de software, permitiendo que personas sin conocimientos avanzados de programación puedan crear sus propias aplicaciones, automatizaciones y sitios web. Sin embargo, para personas con discapacidad, estas herramientas presentan barreras significativas de accesibilidad.

¿Qué son las Herramientas Low-Code y No-Code?

Las herramientas low-code y no-code son paquetes de aplicaciones que permiten crear aplicaciones mediante interfaces gráficas y flujos visuales, reduciendo o eliminando la necesidad de escribir código manualmente. Estas plataformas están diseñadas para ser intuitivas, ofreciendo funciones como arrastrar y soltar (drag-and-drop), plantillas preconstruidas y bloques modulares para construir aplicaciones rápidamente.
Herramientas de lowCode como OutSystems, o Mendix presentan interfaces visualmente sencillas pero que contienen multitud de barreras de accesibilidad que impiden que un producto de apoyo como un lector de pantallas pueda transmitir la información a la persona ciega o interactuar con los elementos de la herramienta para colocar los componentes que darán forma al nuevo software.
Pero, además, herramientas noCode como Webflow o Bubble, enfocadas en la creación de aplicaciones y sitios web, además de resultar inaccesibles para personas que utilicen productos de apoyo, crean contenidos web que presentan barreras de accesibilidad perpetuando así el problema de una Web no accesible.

Beneficios de las Herramientas Low-Code y No-Code

Uno de los mayores beneficios es la posibilidad de que personas sin experiencia técnica puedan materializar sus ideas tecnológicas. Ya no es necesario depender exclusivamente de desarrolladores o equipos técnicos para crear prototipos o soluciones funcionales.
Además, la velocidad con la que se puede pasar de la idea a un producto mínimo viable (MVP) es uno de los mayores atractivos de estas plataformas. Las empresas pueden lanzar productos en menos tiempo, respondiendo más rápido a las necesidades del mercado.

Un gran poder conlleva una gran responsabilidad

La posibilidad de crear rápidamente y sin demasiados conocimientos nuevas experiencias y contenidos digitales es algo muy atractivo para muchas personas que bien no pueden o no quieren invertir mucho tiempo y esfuerzo en aprender aspectos del desarrollo de software. El problema es que este tipo de herramientas no permiten modificar la forma en que se generan esos contenidos y experiencias y en muchos casos lo hacen incluyendo barreras de accesibilidad. No está claro quién es la persona responsable de solucionar este problema: la persona que utiliza la herramienta pero no puede o no quiere aprender a desarrollar software o la empresa que ha creado la herramienta pero que no quiere complicar la experiencia de creación incluyendo aspectos de accesibilidad para así resultar una herramienta más atractiva a personas que no se quieren complicar con aspectos técnicos del desarrollo de software.

Iniciativas para Mejorar la Accesibilidad

Afortunadamente, algunas plataformas están comenzando a abordar estos desafíos. Por ejemplo, Webflow ha incorporado herramientas que permiten a los diseñadores agregar etiquetas y descripciones accesibles a los elementos. Bubble ofrece cierta flexibilidad para personalizar cómo se presentan los componentes en una aplicación para que sean más accesibles. Sin embargo, aún queda un largo camino por recorrer para garantizar que estas herramientas sean completamente inclusivas para todos los usuarios en esos contenidos web generados sin ninguna línea de código por parte de la persona que los crea.
Además, estas soluciones y parches siempre están enfocadas en el software generado y no en el uso de la propia herramienta por lo que los creadores de estas herramientas sólo piensan en personas con discapacidad como posibles clientes y no como posibles trabajadores o creadores.
Los hechos mencionados en el artículo publicado en el 2010 con el título La accesibilidad en crisis para los desarrolladores ciegos parece que siguen presentes en la sociedad actual.

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.

Accesibilidad en los títulos de página

Los desarrolladores web y las herramientas de desarrollo van incorporando poco a poco elementos que van reduciendo la complejidad y la severidad de las barreras de accesibilidad presentes en las páginas de nueva creación. Pero estos esfuerzos se centran principalmente en las alternativas a imágenes, contrastes de color y, a veces, la estructura semántica de las páginas. En muchos casos siguen apareciendo barreras de accesibilidad relacionadas con la comprensión del sitio que se está navegando o de los mecanismos de navegación y orientación en un sitio web. En la mayoría de ocasiones este problema se debe al desconocimiento de las necesidades de estos mecanismos de orientación y navegación.

Título de página

El título de una página web es un mecanismo de orientación al que no se le presta actualmente mucha importancia. Incluso en muchos casos el desarrollador desconoce cómo cambiar el valor del título de la página sobre todo si desarrolla webs del tipo Single Page Application en la que toda la experiencia de navegación aparentemente se desarrolla sin saltar a otras páginas web.

El título de una página web es un mecanismo de navegación muy útil para personas con discapacidad que no pueden comprender una página de un vistazo.

Esta necesidad de accesibilidad se recoge en el criterio de éxito 2.4.2 de WCAG 2.0. Puedes leer la documentación oficial de la WAI para el criterio de éxito 2.4.2 understanding page titled.

Este criterio de éxito es de nivel A por lo que es de obligado cumplimiento en todas las legislaciones nacionales de Europa y Estados Unidos así como en las legislaciones de otros países ya que en todos ellos el nivel de mínimo cumplimiento legal es el de AA.

Título de página apropiado

Se considera como válido y accesible un título de página que identifique claramente el propósito y el contenido de la página que se está consultando.

En muchos casos el título de las páginas consiste en el uso del nombre de la empresa o producto que se está consultando. 

Imaginemos por ejemplo la experiencia de navegación por un sitio web especializado en la venta de productos de jardinería. Lo habitual es encontrar que el título de todas las páginas es algo como El jardinero en casa. Y utiliza este valor para titular todas las páginas del sitio web. Esto hace que el título de la página no ayude como mecanismo de orientación.

Sigamos imaginando y en nuestro sitio de jardinería encontramos que hay secciones de quienes somos, contactar, tienda, noticias y galería de fotos. Con esta complejidad en la estructura de secciones y contenidos es cada vez más necesario un título de página que refleje la sección que estamos consultando sin olvidar el nombre del sitio web. Un título de página más apropiado para estos contenidos podría ser: El jardinero en casa – quienes somos.

Pero si seguimos profundizando en la experiencia de navegación y nos movemos dentro de la tienda consultando productos el título de página que muestra el nombre del sitio y la sección no es suficiente. Además debemos añadir al título de página el nombre del contenido concreto que estamos consultando en esa página. Un título de página más apropiado sería: El jardinero en casa – Tienda – Tijeras de podar modelo Acme.

Con esta información una persona puede comprender dónde está y qué contenido principal se va a encontrar en la página.

Declaración del título de página

La declaración del título de página se realiza dentro del fichero HTML en la cabecera de la página (elemento <head></head>) y se utiliza el tag <title>.

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8" />

    <title>El título de la página</title>

  </head>

  <body></body>

</html>

Esta declaración dentro del código HTML es apropiada cuando utilizamos tecnologías en las que tenemos total control del código HTML que se envía a los navegadores web de los usuarios.

En el caso de utilizar tecnologías como las utilizadas en las Single Page Applications como React o Angular debemos hacer uso de Javascript para actualizar el valor del título de la página.

La propiedad title del objeto document nos proporciona esta posibilidad de actualizar el título de nuestra página. Por ejemplo la siguiente línea en javascript actualizará el título de la página:

function setTitlePageWithProduct(productName) {

  document.title = "El jardinero en casa - Tienda - " + productName

}

Esta función se podría utilizar cada vez que se vaya a renderizar el componente que muestra la información del producto de la tienda.

Con toda esta información ya no hay excusas para que los desarrolladores no proporcionen buenos y accesibles títulos en sus páginas web.

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.

AImaginator, una contribución de Tyflos accessible software para usar Dall-E de forma más cómoda en MacOS

El uso de inteligencias artificiales para ayudar a personas con discapacidad es algo cada vez más común. Personalmente utilizo DALL-E para generar algunas imágenes que necesito utilizar en mi día a día.

Por este motivo y por evitar tener que utilizar el sitio web de OpenAI he creado el proyecto de AImaginator

AImaginator es una aplicación sencilla para MacOS que permite generar imágenes a partir de un texto que la describe.

Para utilizar AImaginator sólo necesitamos un ordenador Mac y una API key del servicio de OpenAI. El resto lo encontrarás en el repositorio de AImaginator en Github. En el repositorio también encontrarás el código fuente para mejorar la aplicación.