Hay dos opciones para conseguir que una pantalla braille se soporte en NVDA: solicitar a NVAccess que haga un controlador o escribir un controlador por ti mismo.

Solicitar que NVAccess desarrolle un controlador

NVAccess tiene recursos muy limitados, y pueden pasar meses hasta que consideren tu petición. Sin embargo, este tipo de solicitudes son bienvenidas. Para que NVAccess pueda desarrollar un controlador, necesitan:

  • Acceso físicamente a la pantalla braille en las oficinas de Queensland, Australia, durante aproximadamente un mes y sin coste para NVAccess (el interesado corre con los gastos de envío desde y hacia Australia)
  • Documentación técnica del fabricante sobre cómo comunicarse con la pantalla
  • Permiso del fabricante para distribuir el controlador de NVDA como software libre
  • Cualquier controlador, librería o documentación del fabricante para comunicarse con la pantalla
  • Permiso del fabricante para distribuir los controladores y librerías necesarios con NVDA
  • Información de atajos de teclado y comandos de la pantalla que sean comunes a todos los lectores de pantalla

Nota: si después del desarrollo hay cambios importantes en el controlador o el núcleo de NVDA, habrá que repetir otra vez el proceso.

Si estás interesado en que se añada soporte para una nueva pantalla Braille, abre una incidencia en GitHub (en inglés) aportando toda la información posible. También puedes facilitar el contacto entre el fabricante y NVAccess.

Escribe un controlador por ti mismo

NVDA es de código abierto, y acepta controladores para pantallas braille escritos por la comunidad. Como todos los demás componentes, los controladores para pantallas braille deben programarse en Python y liberarse bajo la GNU General Public License, versión 2.

Un controlador para pantalla braille es un módulo Python con una clase BrailleDisplayDriver que hereda de la clase braille.BrailleDisplayDriver.

Estos son algunos consejos clave que te guiarán en el desarrollo:

  • Si quieres comunicarte por la pantalla usando HID o un puerto serie, utiliza el módulo hwIo. Este es el método de comunicación recomendado. Los controladores para Baum o BrailliantB son buenos ejemplos a seguir.
  • Si necesitas usar una dll para comunicarte con la pantalla, utiliza el módulo ctypes de Python. Ten en cuenta que NVAccess no aceptará distribuir dlls con NVDA que ocupen más de 300KB, salvo en casos muy excepcionales. Recuerda que los problemas de una dll son muy difíciles de depurar. Como ejemplos, tienes los controladores para Freedom Scientific y AlvaBC6.
  • Si necesitas un objeto com para comunicarte con la pantalla, puedes usar el módulo comtypes. Hay que tener en cuenta lo mismo que con las dlls. Un buen ejemplo es el controlador para HandyTech.

En cuanto completes tu controlador y te asegures de que sigues las convenciones de código y estilo de NVAccess, puedes distribuirlo como un complemento, o preparar un pull request para integrarlo en el núcleo de NVDA.