Como en el caso de la voz, Orca brinda dos módulos fundamentales para el braille: braille.py y braillegenerator.py. El módulo braille.py proporciona la interfaz principal para la línea braille. El módulo braillegenerator.py proporciona una clase BrailleGenerator que puede utilizarse para generar realmente el texto a mostrar en braille para distintos objetos. El uso de ambos módulos es el siguiente: un script hace su propia instancia de un BrailleGenerator y lo utiliza para las regiones braille. Luego, el script pasa las regiones braille al módulo braille.py para que sean visibles.
POR HACER: [[[WDW - Queda mucho por escribir aquí, particularmente, en relación con la forma en que las regiones brinden apoyo automático a las teclas de seguimiento del cursor. ]]]
El objetivo primario de un BrailleGenerator es crear texto que sea visible para un objeto accesible. Existen dos puntos de entrada pública a un BrailleGenerator:
El getBrailleRegions(obj, groupChildren=True): responde con una lista de dos elementos: el primero es una lista ordenada de instancias Region que representan el texto que debe mostrarse en la línea braille, de izquierda a derecha en una línea. Y el segundo es un elemento de la primera lista que representa la Region que tiene el "foco" y debería representarse por el cursor braille en la pantalla.
POR HACER: [[[WDW - describe la agrupación de hijos. ]]]
El getBrailleContext(obj): responde con una lista ordenada (un arreglo) de instancias braille Region que describen el contexto visual del objeto accesible. Éste es libremente representado por la relación jerárquica del objeto (el botón "Salir" en el menú "Archivo" en el ...).
Usualmente, un script"construirá" una sola línea lógica de texto para la línea braille. El comienzo de esta línea será el resultado de la llamada al getBrailleContext y el resto de la línea será el resultado de una o más llamadas a la getBrailleRegions. Como la línea lógica usualmente será más larga que el número de celdas en la línea braille, el módulo braille.py se desplazará en la pantalla para mostrar la Region braille con el foco. Además, el braille.py también responderá a los eventos de entrada BrlTTY para permitirle al usuario que utilice los botones de entrada de la línea braille para desplazarse y revisar toda la línea.
NOTA: Orca actualmente brinda cierto nivel de apoyo para la cantidad de información mediante los campos VERBOSITY_LEVEL del módulo settings.py. Existen actualmente dos niveles decantidad de información: VERBOSITY_LEVEL_BRIEF y VERBOSITY_LEVEL_VERBOSE. Una subclase BrailleGenerator debe examinar la propiedad brailleVerbosityLevel del módulo settings.py y brindar el nivel apropiado de texto:
if settings.brailleVerbosityLevel == settings.VERBOSITY_LEVEL_VERBOSE:
regions.append(braille.Region(
" " + rolenames.getBrailleForRoleName(obj)))