La inteligencia artificial como aliada para los programadores ciegos

La inteligencia artificial está transformando la forma en que se desarrolla el software. Desde hace unos años, el auge de los modelos de lenguaje y de las herramientas de autocompletado inteligente ha abierto nuevas posibilidades que van mucho más allá de la simple ayuda para escribir código más rápido.

Para una persona ciega que se dedica a programar, estas tecnologías representan no solo un aumento de productividad, sino un refuerzo de autonomía y acceso a recursos que antes resultaban más costosos de alcanzar.

Uno de los ámbitos donde la IA muestra mayor potencial es en la asistencia al escribir código. Los asistentes de programación, integrados ya en entornos como Visual Studio Code, Xcode o Android Studio, permiten recibir sugerencias de código completas que se adaptan al contexto de lo que se está escribiendo. Esto reduce el tiempo invertido en consultar la documentación del lenguaje y la plataforma así como el esfuerzo extra en la memorización de esta información.

La Inteligencia artificial también está entrando en el terreno de la depuración de código. Existen herramientas capaces de analizar un bloque de código y proponer explicaciones de por qué falla una prueba, dónde puede estar el error lógico o qué cambios podrían mejorar su rendimiento. Para un programador ciego, este acompañamiento supone un ahorro de tiempo, pero también un refuerzo pedagógico. Además, en muchos casos, las herramientas de depuración habituales resultan inaccesibles para las personas ciegas por problemas de accesibilidad en estas herramientas de depuración. Poder obtener una idea o una explicación de por qué está fallando algo puede ayudar al proceso de depuración de bloques de código.

La documentación es otro frente donde la inteligencia artificial está marcando la diferencia. Generar comentarios, crear documentación técnica a partir de funciones o clases, traducir explicaciones a varios idiomas o resumir artículos largos son tareas que, integradas en el flujo de desarrollo, facilitan la comunicación con otros equipos y el mantenimiento de los proyectos.

Falta de accesibilidad en la Inteligencia artificial

Aunque la aparición de estas herramientas, aparentemente, impliquen beneficios para todos los programadores, en realidad estas herramientas presentan un problema común para mucho del software utilizado para trabajar. Este problema es la falta de accesibilidad. En muchos casos estas herramientas integradas en los entornos de desarrollo utilizan componentes visuales o un lenguaje visual que resulta inaccesible para lectores de pantalla o, en otros casos, no existe la posibilidad de controlar las funciones de estas herramientas de autocompletado de código desde el teclado. Esto hará que el catálogo de entornos de desarrollo disponible para las personas ciegas se reduzca ya que, en un futuro, no sólo se tendrá que observar si el editor de código o los botones del entorno de desarrollo son accesibles, también se deberá observar si la forma en que el asistente de autocompletado de código es accesible.

En muchos casos, poco a poco, gracias al feedback de los programadores ciegos que notifican a los responsables de estos entornos de desarrollo de los problemas de accesibilidad, las herramientas de autocompletado van siendo un poco más accesible cada día. El problema es el de siempre: pocos programadores ciegos reportan y ayudan a hacer más accesibles los entornos de desarrollo y las herramientas que los acompañan.

La solución está en la personalización

La capacidad de muchas herramientas de poder personalizar distintos aspectos visuales y comportamientos permiten superar, en muchos casos, la falta de accesibilidad de estas herramientas. Poder asignar un atajo de teclado a una función de la herramienta de autocompletado o personalizar los colores de la pantalla de visualización para que las funciones de OCR del lector de pantallas puedan identificar cual es la zona del editor y cual es la zona de la recomendación facilita la identificación de estos elementos.

En cualquier caso estos son parches para la falta de una accesibilidad plena y completa en estas herramientas. Los programadores ciegos debemos seguir aportando feedback y reclamando accesibilidad para estos elementos del desarrollo de software.

El futuro para la programación

No debemos olvidar que la IA no sustituye la necesidad de criterio propio. La dependencia excesiva de las sugerencias puede llevar a errores invisibles, y la accesibilidad de estas herramientas aún tiene un largo camino por recorrer. Las interfaces gráficas, los atajos de teclado mal diseñados o la falta de descripciones adecuadas en los resultados pueden generar barreras nuevas. Por eso, la adopción de la IA debe ir acompañada de una mirada crítica y de una exigencia a los proveedores de que sus soluciones sean inclusivas desde el diseño.

Además, muchas de las soluciones propuestas para el código no incluyen atributos o elementos de accesibilidad. Sería muy irónico que un programador ciego desarrollase interfaces de usuario con problemas de accesibilidad por limitar su trabajo a copiar el código propuesto por una Inteligencia artificial sin prestar ni revisar el código propuesto por la herramienta.

Nueva generación de herramientas automáticas de validación de la accesibilidad gracias a la inteligencia artificial

Las herramientas automáticas para la validación de barreras de accesibilidad, aunque conocidas sus limitaciones, son indispensables para las personas que diseñan y desarrollan interfaces digitales. Es conocido que la mayoría de estas barreras sólo pueden evaluar menos del 40% de los criterios de éxito de WCAG y que, en su evaluación, tampoco hay una precisión demasiado elevada.

La Inteligencia Artificial al rescate

Gracias a los últimos avances en la creación de modelos expertos con IA hay empresas como Evinced, que apuestan por el desarrollo de mejores herramientas, hoy podemos decir que tenemos a nuestra disposición la siguiente generación de las herramientas automáticas para la validación de la accesibilidad.

En algunos casos la mejora parece bastante evidente como sucede con Site scanner, una herramienta para analizar las barreras de accesibilidad en un sitio web de forma global ofreciendo resultados agrupados por componentes o incluso zonas que requieran de un usuario y contraseña. Lo interesante de esta herramienta es que, según sus creadores, pueden validar el 80% de los criterios de éxito y los resultados son más fiables. Por ejemplo, que una imagen tenga una cadena de texto ya no es suficiente para validar ese criterio de éxito, la descripción también debe ser algo comprensible y no el nombre del fichero del archivo de imagen.

Otra diferencia importante es que pueden analizar el contenido y la funcionalidad del renderizado del DOM (Document Object Model) por lo que algunos problemas de accesibilidad no visibles para Wave o AXE debido al uso de ReactJS o Angular si son detectados por esta nueva generación de herramientas.

La accesibilidad no sólo es Web

Las Web Content Accessibility Guidelines (WCAG) también se aplican a las aplicaciones de los smartphones pero las herramientas de automatización de experiencias son pocas y casi ninguna incluye alguna herramienta de validación de la accesibilidad de forma fiable ya que, en muchos casos, el acceso al dispositivo móvil se realiza mediante capturas de pantalla, perdiendo el acceso a la capa semántica de las aplicaciones móviles.

  El Automation SDK de Evinced se integra con los tests automatizados de Selenium, Cypress, Playwright, XCUITest o Appium para dar ese extra para poder evaluar las posibles barreras de accesibilidad en una web o una app móvil.

Accesibilidad desde el diseño

Los diseñadores de contenidos o de experiencia de usuario, en muchos casos, utilizan aplicaciones como Figma para hacer ese diseño de experiencia de una web o una app móvil. Aunque este tipo de herramienta ofrecen algunos plugins relacionados con la accesibilidad, todos ellos son de ejecución manual y, cuando el frame de diseño de un proyecto es demasiado grande, hay muchas posibilidades de que haya componentes o flujos que se hayan quedado sin evaluar.

Con el plugin de Design Assistant para Figma se promete una evaluación automatizada de todos los elementos del proyecto y aplicando los evaluadores mejorados con IA se ofrece la detección y corrección de problemas de contraste de color, problemas de foco y zonas táctiles, flujos ARIA y otras validaciones de criterios de éxito de WCAG.

Además este plugin ofrece la posibilidad de incluir notas para los desarrolladores para que durante la implementación del diseño se incluyan las soluciones a las barreras de accesibilidad y ejemplos para diseñar tests unitarios.

Los desarrolladores también tienen más herramientas

Las herramientas de desarrollo de Google Chrome pueden mejorarse gracias a Debugger, una extensión para este navegador que usando IA mejora la detección de errores de contraste de color o de navegación por teclado y también mejora la detección de problemas con etiquetas de accesibilidad. Además proporciona ejemplos para solucionar los problemas detectados.

En el apartado para el CI/CD (Integración continua y distribución continua) Evinced ofrece Unit Tester, una herramienta automática para crear tests para la validación de criterios de éxito WCAG 2.1 nivel AA para problemas de roles, teclado y lectores de pantalla.

Se puede integrar de forma sencilla en los pipelines de Jenkins, Travis o CircleCI.

Conclusiones y realidades

Esta empresa ofrece otras herramientas para el apoyo de diseñadores, testers, desarrolladores y analistas. Todo enfocado en la detección y solución de barreras de accesibilidad.

Como con cualquier solución automática, no reemplaza la evaluación manual ni pruebas con usuarios reales con discapacidad. La experiencia final de un usuario es la única prueba que validará la accesibilidad al 100%. Estas herramientas ayudan a los profesionales a poder mejorar su trabajo y, de forma voluntaria o involuntaria, hacer que todo sea más accesible.

El desconocimiento de la accesibilidad es el primer problema que tiene el mundo de la accesibilidad digital. Muchos profesionales del diseño o el desarrollo usan sus herramientas de trabajo sin molestarse en comprender que hay elementos técnicos que se salen de su tecnología de trabajo. Gracias a estas herramientas esos profesionales tienen un contacto con la accesibilidad de forma más cómoda, guiada y no les exige un esfuerzo inicial de aprendizaje. Lo toman como algo a solucionar en su trabajo y siguen los consejos e indicaciones de la IA para solucionar ese problema de accesibilidad.

Estas herramientas siguen en desarrollo y están abiertas a mejora ya que todavía hay casos complejos de accesibilidad que la IA no sabe resolver. Además, por ahora, sólo se da soporte para contenidos en inglés.

Lo interesante de este conjunto de herramientas es que el enfoque se aplica a todos los sectores relacionados con un proyecto web o una app móvil. La responsabilidad de la accesibilidad no recae en un único profesional. Con estas herramientas todos los profesionales, desde el diseñador al desarrollador y el tester tienen contacto con la accesibilidad. Esto maximiza la posibilidad de que la mayor cantidad posible de barreras de accesibilidad sean detectadas y solucionadas antes de que el producto sea puesto a disposición de los usuarios. Un enfoque interesante y muy alineado con el concepto de que la accesibilidad debe aplicarse a todas las etapas de un proyecto.

Esperemos que pronto veamos que este tipo de herramientas automáticas mejoran el trabajo de muchos profesionales y facilitan que la accesibilidad sea parte real de los proyectos.

¿Cómo incluir una firma en un documento PDF utilizando Inteligencia artificial?

La Inteligencia artificial poco a poco se está moldeando en nuevas herramientas de ayuda a personas con necesidades especiales. Una de estas necesidades es la de incluir una imagen con la firma de una persona en un lugar concreto de un documento PDF. Esta operación que puede resultar muy sencilla para la mayoría de personas es algo muy complicado para personas con discapacidad visual o con discapacidad motriz.

Las herramientas de Inteligencia artificial generativas como ChatGPT o Gemini pueden ayudarnos a realizar estas operaciones.

Un posible ejemplo

Imaginemos que tenemos un documento prueba.pdf con el siguiente texto:

Documento de prueba
Esto es un documento de prueba para probar la función de introducir una firma utilizando AI.

Para ello creamos este documento en formato PDF.

Además del texto básico debemos incluir alguna estructura de información que permita identificar dónde incluir la firma.

Por ejemplo, dejando un hueco suficiente.

Firmado:

 

 

 

 

En España el 1 de agosto de 2024

 

 

 

 

Además tenemos un fichero firma.jpg que contiene un dibujo de nuestra firma. Es importante que nuestra firma esté escrita en color negro y el fondo en color blanco.

Utilizando el siguiente prompt en ChatGPT o Gemini podemos conseguir firmar nuestro documento PDF:

En el documento prueba.pdf pega la imagen del fichero firma.jpg

La imagen debe colocarse entre las líneas con el texto «Firmado:» y «En España el 1 de agosto de 2024»
Modifica el tamaño de la imagen pegada para que encaje bien entre las dos líneas de texto. La imagen no debe ocultar las líneas con los textos «Firmado:» y «En España el 1 de agosto de 2024». Para ello reduce la altura de la imagen si es necesario y la imagen debe colocarse entre las dos líneas de texto indicadas

Cuidado con la precisión

Hay que recordar que estas herramientas generativas no son fiables al cien por ciento por lo que es recomendable revisar que el documento pdf no haya sido modificado en su texto y que la firma se haya incluido bien.

Además, hay que señalar que actualmente la mayoría de sistemas que convierten el lenguaje escrito en algo comprensible para los motores de Inteligencia artificial comprenden mejor el idioma inglés por lo que es recomendable que los prompts se escriban en inglés para facilitar la comprensión al motor de inteligencia y evitar ambigüedades.

Nuevas posibilidades para la accesibilidad 

El uso de herramientas de Inteligencia artificial está abriendo nuevos caminos para la accesibilidad para ayudar a personas con necesidades especiales a superar de forma autónoma barreras sociales y técnicas que persisten hoy en día. La Inteligencia artificial es una herramienta más y como tal debemos aprender a utilizarla para hacer un mundo más accesible.

¿Cómo enviar informes de error y sugerencias de Ray-ban Meta para mejorar su uso?

Las gafas inteligentes Meta Ray-ban se han convertido en un dispositivo de asistencia para personas ciegas. Aunque el dispositivo no se ha diseñado como producto de asistencia para personas con discapacidad resulta de utilidad el poder utilizar los micrófonos y la cámara junto con la inteligencia artificial que proporciona Meta a este dispositivo para que una persona ciega pueda resolver situaciones o dudas visuales consultando qué hay delante de la persona que está utilizando estas gafas inteligentes.

Aunque este tipo de utilidad utilizando Inteligencia Artificial ya está disponible utilizando un teléfono Android o un iPhone la posibilidad de tener las dos manos libres y utilizar comandos de voz de forma rápida hacen que el uso de unas gafas inteligentes con cámara sean un buen candidato de producto de apoyo para personas ciegas.

Fronteras lingüísticas y comerciales

Aunque estas gafas están a la venta en varios países e incluso se pueden adquirir a través de la tienda on-line de Ray-ban el acceso a los servicios de Inteligencia artificial de Meta no está en todos los países. A fecha de Junio de 2024 el servicio de Meta-AI sólo está disponible para Estados Unidos de America y Canadá.

Además, aunque podemos solicitar mediante comandos de voz que nos hable la respuesta a la consulta que le hagamos en el idioma de nuestra preferencia si hay que indicar que todas las preguntas y las funciones de dictado de mensajes o consulta de contactos se realizan con soporte en inglés y parcialmente en francés o italiano. 

Conexión a Internet a través de nuestro teléfono

Las Meta Ray-ban necesitan de conexión a Internet tanto para compartir los videos y fotografías así como para acceder a la inteligencia artificial de Meta. Para ello es necesario instalar la app Meta view en el teléfono.

Enviando informes de error y sugerencias

Una vez nos hayamos registrado en la aplicación Meta View podemos utilizar el servicio de ayuda incorporado en esta aplicación para acceder al formulario de ayuda.

Para ello, una vez abierta la aplicación Meta view debemos ir a la sección de Configuración, cuyo botón está situado en la parte inferior derecha de la pantalla.

Tras acceder a la sección de configuración deberemos deslizar la pantalla hacia abajo (con tres dedos de abajo a arriba si utilizamos VoiceOver) para que se listen todas las opciones disponibles en la sección de configuración.

Dentro de estas opciones encontraremos la opción Ayuda y asistencia, y dentro de este menú de ayuda podemos acceder al formulario mediante la opción Informar de un problema.

Al entrar en esta opción nos ofrece distintas categorías para notificar un error o enviar una sugerencia. Por ejemplo, para solicitar que mejoren la accesibilidad de la aplicación Meta view habría que elegir la categoría Meta view. Para notificar un problema de comportamiento de las gafas habría que seleccionar la categoría Hardware de las gafas y para enviar sugerencias para que incluyan el español o que ofrezcan Meta-AI en Europa o America Latina habría que elegir la categoría Otras.

Dependiendo de la categoría seleccionada se nos ofrecerán distintas opciones. Por ejemplo, si queremos solicitar que las Ray-ban Meta soporten los comandos en español habría que elegir la categoría Otras y seleccionar la opción Solicitud de función.

Los usuarios podemos mejorar un producto

Aunque Meta tiene su hoja de ruta para mejorar este producto y los servicios que lo acompañan los usuarios del producto podemos enviar informes de error y sugerencias para que, por ejemplo, el producto vaya mejorando a nuestra satisfacción. Por ejemplo, solicitando que se incluya el español entre las opciones para hablar y escuchar a las gafas, que mejoren la accesibilidad de la aplicación o que se pueda personalizar el botón de tomar fotografía para otra opción más útil para una persona ciega o con otro perfil. Siempre es recomendable hacer el informe de error de forma apropiada y explicar lo mejor posible la sugerencia y quienes se benefician con esa nueva característica.

Meta y Ray-ban han creado un producto útil para muchas personas pero los usuarios podemos hacer que el producto sea aún más útil.

Riffusion crea música de forma artificial

En la actualidad hay varios servicios de creación de imágenes utilizando inteligencia artificial. Estos servicios consisten en la creación de una imagen a partir de un texto introducido por el usuario.

Muchos de estos servicios como DallE-2 o StableDiffusion ofrecen resultados tan sorprendentes que han ganado algunas competiciones de arte digital sin que el jurado lo supiese.

De la imagen al sonido

Un grupo de ingenieros que colaboraron en StableDiffusion han dado el siguiente paso utilizando el mismo motor de inteligencia artifical para enseñarle a generar música. De este esfuerzo nace Riffusion.

Actualmente esta inteligencia artifical crea 5 segundos de música a partir de un texto introducido por el usuario. Su sistema de gestión de azar le permite ir generando nuevos bloques de 5 segundos introduciendo pequeñas modificaciones para que la música no resulte monótona e incluso realice transiciones a las nuevas frases introducidas por el usuario para que la música que se está creando evolucione a otras melodías de forma progresiva.

Escuchando los resultados obtenidos en esta primera versión de Riffusion y observando la evolución de sus hermanos a la hora de generar imágenes y vídeos esto hace pensar que estas nuevas inteligencias artificales para la generación de música tendrán una pronta progresión en calidad y en variedad.

Puedes colaborar con este proyecto desde el repositorio de Riffusion en Github..