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, biblioteca o documentación del fabricante para comunicarse con la pantalla;
- Permiso del fabricante para distribuir los controladores y bibliotecas necesarios con NVDA; y
- Información de atajos de teclado y comandos de la pantalla que sean comunes a todos los lectores de pantalla.
Ten en cuenta que si después del desarrollo hay cambios importantes en el controlador o el núcleo de NVDA, habrá que repetir otra vez el proceso con la pantalla física como antes.
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
.
Mira la documentación del código de la clase braille.BrailleDisplayDriver
para más detalles.
Para aquellos controladores que deberían integrarse en el marco de trabajo de detección automática de pantallas braille, hay que añadir metadatos específicos del controlador al módulo bdDetect
. Ten en cuenta que, para que se soporte la detección automática de la pantalla braille, el controlador debe tener seguridad de hilos. Los datos se escriben en los controladores de pantallas braille con seguridad de hilos en segundo plano, mejorando así el rendimiento.
Estos son algunos consejos rápidos que te guiarán en el desarrollo:
- Si quieres comunicarte con la pantalla mediante puerto serie en bruto, Hid o Bulk, mira el módulo
hwIo
.
Esta es la forma preferida de comunicación, ya que se pueden garantizar el soporte para la detección automática de pantallas y la seguridad de hilos usando este método.
Los siguientes controladores se consideran buenos ejemplos. baum
brailliantB
eurobraille
hims
superBrl
El controlador de handyTech
podría ser un buen ejemplo de controlador que debería soportar varios modelos o protocolos.
Si necesitas usar una dll para comunicarte con la pantalla, utiliza el módulo ctypes
de Python.
Sin embargo, generalmente NV Access no aceptará dlls, a no ser que sea estrictamente necesario.
Además, las dlls que ocupen más de 300 KB no se aceptan generalmente a la hora de distribuirlas con NVDA.
Además, ten en cuenta que los problemas en las dlls son más difíciles de depurar, e implementar el soporte para el marco de trabajo de detección automática podría ser imposible debido a la falta de seguridad de hilos en la dll.
El controlador de freedomScientific
es un buen ejemplo.
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.
Lee el documento sobre cómo contribuir con NVDA para obtener información sobre el estilo del código, etc.
Una vez termines tu controlador, puedes enviar una solicitud de cambios.