Ticket #82 (closed enhancement: fixed)

Opened 7 months ago

Last modified 4 weeks ago

Implement braille support

Reported by: winman3000 Owned by: jteh
Priority: major Milestone: 0.6
Component: Braille Version: trunk
Keywords: Braille support Cc: samuel.thibault@ens-lyon.org
Blocking: Blocked By:

Description

NVDA should have a braille support, because it is very important for european people.

It needn't implemented in the 0.6 Version, but it would be great, when it comes after 0.6.

Change History

Changed 4 months ago by aleksey_s

do people have any thoughts about concrete implementation of this? what library will be used, and do we need add some specific braille module, or add it as synthesizer? or might be current synthesizers concept needs to be rewritten: nvda will have some abstract think as "output module". this one gets on input all neccessary information (text with formatting and roles info) and do something on the output: speaks it, draws on the screen in some form, or send to braille output. it might have some specific settings which user can change to set preferred info be spoken or displayed. after we can write output module for speech, display and braille. speech module will contain such settings as synthesizer, user-specifed role labels, speech verbosity etc, display output module will have settings as fond/background properties, and braille output will have a lot of braille specific settings. might be my idea is written some chaotic, but if the developers will have interest i can describe it more concrete.

Changed 4 months ago by jteh

I personally feel that braille is too different from speech to combine them at this level. Speech can only speak messages (or chunks of text), while braille can both display flashed messages and have a more interactive view of items such as documents. Note that we do abstract quite a bit by having speech functions which work with NVDAObjects, rather than having the focus events speak the required text directly; e.g. speech.speakObject and speech.speakObjectProperties. I think braille would work in a similar way; the events would make calls to the braille module as appropriate.

I'll hopefully be able to start on designing this once 0.6p2 is out and a few other things are done. Unfortunately, it's been delayed somewhat longer than I would have liked.

Changed 3 months ago by jteh

  • owner set to jteh
  • status changed from new to accepted

Changed 2 months ago by jteh

  • summary changed from NVDA should have A Braille Support to Implement braille support
  • version set to trunk
  • milestone set to 0.6

Bzr branch:
http://bzr.nvaccess.org/nvda/braille/
Note that this is not really useable at this point, but a lot of the core code is now present. Liblouis is used for braille translation, so the Python liblouis bindings are required. A driver is included for brltty.

Changed 2 months ago by jteh

  • component changed from Core to Braille

Changed 2 months ago by jteh

  • NVDA can now track the focus and appropriate ancestors on the display as the focus changes. Pressing a cursor routing key anywhere in an object activates its default action.
  • The TextInfo for the focus is used if appropriate. The current line of text is displayed and the caret is tracked for most edit fields, including display of the (optionally blinking) cursor. Cursor routing keys will move to the associated position in the field.

Still a lot of work to be done, but this is well on the way.

Changed 2 months ago by sthibaul

  • cc samuel.thibault@ens-lyon.org added

Changed 2 months ago by jteh

An appropriate build of liblouis and Python ctypes bindings are available here. Extract this self-extracting archive into the NVDA source dir.

Changed 6 weeks ago by jteh

Here are some instructions for those who will use brltty. They assume you already have the NVDA braille branch running, which means you must have extracted misc-deps and the liblouis bindings.

  • Download a Windows build of brltty 3.10.
  • Set up brltty and start it. Instructions can be found in the file README.first.txt included in the package.
  • Install the brlapi Python bindings. They are included in the package and are named Brlapi-0.5.2.win32.exe.
  • Copy brlapi-0.5.dll from the bin directory in the package to your windows\system32 directory.

NVDA should now work with braille. brltty is the default driver at present.

Changed 4 weeks ago by jteh

  • status changed from accepted to closed
  • resolution set to fixed
  • I merged the braille branch into trunk/main in r2436. There is still lots of work to be done, but the initial implementation is there.
  • liblouis is now included in MiscellaneousDependencies. I have removed the python-louis package mentioned earlier in this ticket.
  • noBraille is now the default display; i.e. braille is disabled by default.
  • Feature requests, bugs, etc. (of which I am sure there will be many) should be filed as new tickets in the Braille component.
Note: See TracTickets for help on using tickets.