-
-
Notifications
You must be signed in to change notification settings - Fork 634
AddingSupportForABrailleDisplay
There are two options if you'd like to see an additional braille display supported by NVDA:
- Request that NV Access develops a driver; or
- Write a driver yourself.
Given our extremely limited resources and other priorities, it may be months before we can consider such a request. However, we will endeavour to support additional displays if we are able.
In order for NV Access to develop a driver, we will need:
- Access to a physical display at our offices in Queensland, Australia for at least a month at no cost to NV Access (which means we will not cover the cost of any shipping to or from Australia);
- Technical documentation from the braille display vendor regarding how to communicate with the display;
- Permission from the vendor to distribute the NVDA driver as open source code;
- Any drivers, libraries, etc. from the vendor necessary to communicate with the display;
- Permission from the vendor to freely redistribute any drivers, libraries, etc. with NVDA; and
- Information about any key commands, etc. for the display that are common across screen raeders.
Note that if there are any significant changes to either NVDA or the display after the driver is initially developed, we may need further access to a physical display as above.
If you'd like to request that we support a display, please file an issue on GitHub including as much of the above as you can. At the very least, you should contact the braille display vendor and facilitate contact between them and us.
Since NVDA is open source, we will gladly accept braille display drivers written by others. As with most of the rest of NVDA, braille display drivers are written in Python and must be licensed under the GNU General Public License version 2.
A braille display driver is a Python module containing a BrailleDisplayDriver
class which inherits from the braille.BrailleDisplayDriver
base class.
See the code documentation for the braille.BrailleDisplayDriver
class for further details.
Here are some quick tips:
- If you want to communicate with the display via raw serial or HID, see the
hwIo
module. This is the preferred form of communication. Thebaum
andbrailliantB
drivers are good examples. - If you need to use a dll to communicate with the display, you can use the Python
ctypes
module. However, we will generally not accept dlls larger than 300 kb for distribution with NVDA. Also, note that problems in dlls are harder to debug. ThealvaBC6
andfreedomScientific
drivers are good examples. - If you need to use a COM object to communicate with the display, you can use the
comtypes
module. The same notes as for dlls apply. See thehandyTech
driver for an example.
See the Contributing to NVDA document for information about code style, etc. Once you have completed your driver, you can submit a pull request.
- FAQ
- Application Support
- Connect
- Guides
- Extra Voices
- Log Files And Crash Dumps
- Log Levels (move to userguide / delete?)
This section will be moved to the NVDA repository as a priority
- Internals
- Notes Adding support for aria attributes to browsers
- Using COM with NVDA and Microsoft Word