GNOME Bugzilla – Bug 521599
[mike] Provide better support for BrlTTY commands
Last modified: 2018-02-08 12:57:44 UTC
BrlTTY provides a number of commands to allow the user to control a lot of application interaction from the braille display alone. Orca currently supports very little. In fact, we see these braille bindings in default.py: brailleBindings[braille.CMD_FWINLT] = \ self.inputEventHandlers["panBrailleLeftHandler"] brailleBindings[braille.CMD_FWINRT] = \ self.inputEventHandlers["panBrailleRightHandler"] brailleBindings[braille.CMD_LNUP] = \ self.inputEventHandlers["reviewAboveHandler"] brailleBindings[braille.CMD_LNDN] = \ self.inputEventHandlers["reviewBelowHandler"] brailleBindings[braille.CMD_TOP_LEFT] = \ self.inputEventHandlers["reviewHomeHandler"] brailleBindings[braille.CMD_BOT_LEFT] = \ self.inputEventHandlers["reviewBottomLeftHandler"] brailleBindings[braille.CMD_HOME] = \ self.inputEventHandlers["goBrailleHomeHandler"] And cursor routing keys are handled somewhat specifically/hackedly in braille.py. Orca should provide more complete support for the BrlTTY command set.
First coarse pass at GNOME 2.24 planning.
The following may be useful starting points. These are taken from the BRLTTY sources: BRL_CMD_LNBEG /* go to beginning of line */ BRL_CMD_LNEND /* go to end of line */ (Corresponding commands would be useful for speech output in flat review; if there are plans to implement this, simply binding to the same commands would suffice for braille here.) I don't use the following much myself, but others may have different usage patterns. BRL_CMD_CHRLT /* go left one character */ BRL_CMD_CHRRT /* go right one character */ BRL_CMD_HWINLT /* go left half a window */ BRL_CMD_HWINRT /* go right half a window */ BRL_CMD_FWINLTSKIP /* go left to nearest non-blank window */ BRL_CMD_FWINRTSKIP /* go right to nearest non-blank window */ The following is relatively important: BRL_CMD_CSRTRK /* toggle cursor tracking on/off */ (bound to toggle flat review mode, equivalent to numpad minus in desktop key bindings.) More comments to follow later.
There are other motion commands that were not mentioned in my previous comment as I am unsure of their applicability or usefulness in the Orca environment. The following command would be a good candidate for implementation. Presumably it must have a parameter, since on the braille display it behaves as two separate commands issued by distinct key combinations. BRL_CMD_SIXDOTS /* toggle text style 6-dot/8-dot */ In BRLTTY, this operation doubles as the command to switch between contracted braille and uncontracted (computer) braille. If a contraction table is defined, then choosing six-dot braille with the above command has the effect of enabling contracted braille translation; choosing eight-dot braille disables it. This allows rapid switching between contracted and uncontracted braille without having to modify preference settings, and could be integrated into Orca using the existing contracted braille support from liblouis.
For 2.24 we should at least enable the following brltty commands: Toggle grade two on and off Move to top and bottom of window Cycle between the attributes presented Keyboard learn There are many more but I'm hoping that these are the ones that might be low hanging fruit for the next release.
Marking as FUTURE so we can reevaluate when BrlTTY 3.10 comes out. At that time, Mike will provide the exact mappings.
Comments on the BrlTTY list indicate that WINUP/WINDN might be good for doing Tab and Shift+Tab injection. We might consider these for 2.26.0.
(In reply to comment #6) > Comments on the BrlTTY list indicate that WINUP/WINDN might be good for doing > Tab and Shift+Tab injection. We might consider these for 2.26.0. I investigated this a fair amount last night and this morning. It turns out not many of the BrlTTY drivers actually provide these commands. In addition, our internals for BrlTTY support could be better (see http://svn.gnome.org/svn/orca/branches/phase2/src/orca/braille/brltty.py), so I think we need to refactor that stuff first. Moving back to FUTURE for a Michael J. Fox sighting.
Bulk reassigning Will's bugs to the default assignee. (Sorry for the spam!)