Motivación y aplicaciones accesibles

Imagina poder leer un libro digital o navegar por una web solo con la mirada, sin necesidad de usar las manos. Para muchas personas con movilidad reducida, esto podría marcar la diferencia entre la autonomía y la dependencia.

Tradicionalmente, las soluciones de accesibilidad basadas en seguimiento ocular (eye tracking) han sido dispositivos especializados muy costosos, al alcance de pocos. Por ejemplo, las tabletas de comunicación con seguimiento visual como la serie Tobii Dynavox I-16 pueden costar más de 9.000€, una verdadera fortuna. Este alto precio históricamente ha sido una barrera, dejando a muchos usuarios sin acceso a estas tecnologías de vanguardia.

Como desarrollador y entusiasta de la tecnología, siempre me ha motivado compartir conocimiento y hacer la vida más fácil a los demás mediante soluciones ingeniosas. Ya en el pasado comprobé el poder de la tecnología inclusiva con proyectos como LaundryID, una solución de “lavandería inclusiva” que fue premiada a nivel europeo por su innovación en accesibilidad. Esa experiencia –crear una lavadora adaptada para personas con discapacidad visual– confirmó mi convicción de que la tecnología bien aplicada puede derribar barreras cotidianas. Siguiendo esa filosofía, he dado el siguiente paso: aprovechar un eye tracker de consumo (originalmente pensado para videojuegos) y transformarlo en la base de un lector accesible de bajo coste.

El dispositivo elegido es el Tobii Eye Tracker 5, una pequeña barra que se coloca bajo el monitor y sigue los movimientos de tus ojos y cabeza. Este aparato, utilizado por gamers para tener experiencias más inmersivas, es relativamente asequible (unos pocos cientos de euros) comparado con los sistemas médicos dedicados. Además, en 2024 gigantes tecnológicos como Apple anunciaron la incorporación del seguimiento de ojos en sus dispositivos móviles para controlarlos con la mirada. Es decir, la idea de navegar interfaces “sin manos” se está volviendo mainstream. Si Apple logra que un iPad se pueda manejar con solo mirarlo –moviendo un puntero ocular por la pantalla y fijando la vista (dwell) para “clicar” – ¿por qué no podríamos nosotros implementar algo similar en PC con las herramientas a nuestro alcance?

Ahí nace mi prueba de concepto del lector accesible con Tobii (descargar en GitHub). El objetivo es sencillo: permitir que cualquier persona, independientemente de sus capacidades motoras, pueda leer y controlar una aplicación usando únicamente sus ojos, sin gastar una fortuna en hardware exclusivo. Por ejemplo, podríamos pasar de página en un e-book con solo mirar fijamente el botón de avance durante un instante, tal como lo logró la compañía Visual Camp en el primer e-reader controlable con la vista. Del mismo modo, alguien con parálisis podría mover el cursor por la pantalla solo moviendo los ojos y seleccionar elementos al mantener la mirada, muy parecido a cómo propone Apple el “Control de Permanencia” (Dwell Control) en iPadOS. Las aplicaciones son enormes: desde navegar por Internet, leer noticias o libros, hasta comunicarse mediante un tablero virtual de símbolos o letras seleccionadas con la mirada. La tecnología está lista y, con un poco de ingenio, podemos democratizar su uso.

Nota personal: Aunque en un principio mi idea era usar el Tobii simplemente para jugar al Flight Simulator, al final no puedo quedarme quieto y siempre termino buscando la manera de transformarlo en una aportación útil para la accesibilidad.

Tobii hardware funcionando para realizar acciones en una web preparada para ello.

Implementación técnica con Tobii Accessibility Bridge

Para materializar esta idea, he desarrollado una herramienta de código abierto llamada Tobii Accessibility Bridge. Se trata de una pequeña aplicación escrita en C# /.NET que actúa como puente entre el dispositivo físico Tobii y cualquier software que queramos controlar. ¿Cómo funciona? En resumen, el programa se conecta al eye tracker Tobii, lee en tiempo real los datos de la mirada (coordenadas de la pantalla donde el usuario está mirando) y los publica a través de WebSocket en la dirección ws://127.0.0.1:8765github.com. En otras palabras, convierte el flujo de datos propietario de Tobii en un formato estándar y accesible (mensajes WebSocket) que otras aplicaciones pueden consumir fácilmente.

Qué permite esto en la práctica? Que cualquier desarrollador web o de software pueda suscribirse a esos datos de mirada y usarlos en su propia aplicación accesible. Por ejemplo, el lector accesible de la prueba de concepto es una sencilla aplicación web que se conecta a este WebSocket local y recibe las coordenadas donde el usuario está mirando. Con esa información, la aplicación web puede decidir qué acción tomar: si detecta que el usuario fija la vista en el área derecha de la pantalla, pasa a la página siguiente; si mira a una esquina específica durante 2 segundos, activa el modo lectura en voz alta, etc. Las posibilidades son infinitas, ya que la lógica se programa del lado del cliente según convenga a cada caso de uso (lectura, juegos accesibles, comunicación alternativa, domótica, etc.), mientras que el puente Tobii proporciona de forma genérica la posición de la mirada.

A nivel técnico, montar esta solución fue bastante directo. Estos son los pasos principales para cualquiera que quiera replicarlo:

  • Hardware necesario: un dispositivo Tobii Eye Tracker (modelo 4C o 5, por ejemplo) conectado por USB al PC. Primero instalamos el software oficial de Tobii (Experience o Game Hub) y calibramos el eye tracker para nuestro rostro. Es importante también asegurarse de que los servicios de Tobii están corriendo en el sistema (procesos Tobii.EyeX.Engine, Tobii.Service, etc., comprobables con PowerShell).

  • Aplicación puente: se requiere tener .NET Framework 4.8 instalado para ejecutar la herramienta. Tras obtener el código del repositorio, basta con restaurar dependencias y compilar (dotnet restore && dotnet build). Antes de ejecutar, copiamos las librerías nativas de Tobii (DLLs proporcionadas por el SDK de Tobii) hacia el directorio de salida de la compilación, de modo que la aplicación pueda interactuar con el dispositivo.

  • Ejecución: lanzamos la aplicación con dotnet run indicando la IP y puerto deseados (por defecto el localhost 127.0.0.1 puerto 8765). Al iniciarse, el Tobii Accessibility Bridge se conectará al eye tracker y abrirá un pequeño servidor WebSocket en esa dirección. En la consola veremos registros que indican que el tracker fue detectado correctamente y que el streaming de datos ha comenzado. Por ejemplo, cada pocos segundos se imprime un resumen: cuántos puntos de mirada se han capturado, cuántos de ellos son válidos (a veces el ojo se sale del rango o parpadeamos, produciendo puntos inválidos) y cuántos clientes están conectados al WebSocket en ese momento. Esto nos sirve para depurar y asegurarnos de que todo marcha bien. Para detener el servicio, basta con pulsar Ctrl+C en la consola, lo que cierra el servidor de forma ordenada.

  • Cliente de prueba: ahora, cualquier aplicación capaz de abrir una conexión WebSocket puede suscribirse a ws://127.0.0.1:8765 y comenzar a recibir datos de mirada en tiempo real. Para nuestras pruebas, creamos un cliente sencillo (una página web estática) que se conecta al WebSocket usando JavaScript. Esta página muestra en pantalla dónde está mirando el usuario –por ejemplo, dibujando un cursor o resaltando la palabra en la que fija la vista– y permite probar acciones como las de pasar página al mirar cierto botón. Al tener ya el dato de coordenadas $(x,y)$ de la mirada, implementar reglas de interacción es cuestión de unas pocas líneas de código del lado del cliente.

Esta arquitectura nos da una gran flexibilidad: con el mismo puente WebSocket podemos desarrollar múltiples soluciones accesibles diferentes. Hoy es un lector manos libres que avanza páginas con la vista; mañana podría ser un sistema para controlar la casa domótica (luces, termostato) mirando iconos en una interfaz, o un juego adaptado donde se apunta a objetivos con la mirada. De hecho, muchas personas ya utilizan sistemas similares para comunicarse – seleccionando letras en un tablero que luego una voz sintetizada lee en alto – pero suelen depender de equipos cerrados. Aquí, en cambio, proponemos una plataforma abierta y económica:

  • Costo reducido: en lugar de invertir más de 9.000€ en un dispositivo especializado o 1.500€ en un iPad, aprovechamos un eye tracker de uso común (pensado para gaming) de ~250€ y software gratuito, con tu propio portatil con Linux o Windows. Esto democratiza el acceso a la tecnología asistiva.

  • Software libre y extensible: el código de Tobii Accessibility Bridge está disponible para cualquiera que quiera mejorarlo o adaptarlo a sus necesidades específicas. Por ejemplo, un desarrollador podría añadir filtros para detectar fijaciones (cuando la mirada permanece estable cierto tiempo) y emitir eventos de “clic” sólo en esos casos, o integrar reconocimiento de parpadeo como clic alternativo.

  • Multiplataforma y estándar: Al usar WebSocket sobre HTTP, cualquier dispositivo en la misma red local podría beneficiarse. Imagínate conectarte desde una tablet o Smart TV al servidor de mirada de la PC, para controlar esos dispositivos de forma remota con tus ojos. ¡Las fronteras las pone nuestra imaginación!

En conclusión, mi motivación con este proyecto ha sido demostrar que la accesibilidad no tiene por qué estar reñida con la asequibilidad. Con ingenio y ganas de compartir, es posible convertir herramientas tecnológicas existentes en soluciones que hagan la vida más fácil a muchas personas. Controlar un lector con la mirada es solo un ejemplo, pero abre la puerta a un sinfín de posibilidades. Hoy cualquiera con un Tobii y mi puente de software puede experimentar con interfaces ojos-manos libres; mañana, espero ver surgir nuevas aplicaciones comunitarias basadas en esta idea, desde comunicadores para personas con ELA hasta videojuegos inclusivos. Sigamos innovando de forma abierta para que la tecnología sea realmente para todos. ¡Porque cuando compartimos conocimiento, ganamos todos!