Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create an universal braille table for as many languages as possible out of the existing tables #489

Adriani90 opened this Issue Dec 15, 2017 · 2 comments


None yet
2 participants
Copy link

Adriani90 commented Dec 15, 2017

Steps to reproduce:

  1. Connect a braille display with NVDA and write following:
    Turkish: nasilsin
  2. Try to read the words on the Braille Display when Output table is in german

Expected behavior:

The letter i as well as other language specıfıc signs of many other languages should automatically be properly dısplayed on a braılle dısplay regardless of the language NVDA is set on. i is for example dots 3, 5 (grade 1).

Actual behavior:

On the Braille Display there is a code generated (for this letter 'x0219') instead of displaying the letter itself.
The turkish letter is being correctly displayed on the Braille display, when NVDA's language is set on turkish and Output table is set on turkish.

my work around for romanian language

  1. In NVDA Source code, I went to “Dist / Louis / Tables / de-de-g0.utb” and added following line:
    include ro.ctb
  2. I have copied this modified file to “include / Liblouis / Tables” and “Source / Louis / Tables”. Before I did the steps above, I have looked at ro.ctb and saw that it is Romanian 8 dots computer braille.
  3. I have built the scons targets
  4. I have started NVDA from Source.

I opened a word document and typed Romanian specific signs, they have been recognized properly on the braille display. Now if I am writing german signs and Romanian signs, for example a sentence where a Romanian word is introduced by german explanation, the diacrices in Romanian and german are both correctly displayed. I am aware that I did not take the german 8 dot braille table. This was just a proof of concept for me.

In conclusion, we could build a worldwide universal braille table for many languages by just implementing the Braille grade which is common to most countries of which Braille tables exist. We just have to create a new braille table called worldwide or so and the user could choose it in braille Settings of NVDA or other Screen readers. In my view, there would not be any issues caused by this, because the user can check by context of the text and, if needed, by speech feedback the language to which a sign must be atributed. This is for example in case of dots 3 and 5 which can be a bullet or a mathematical sign or a turkish ı. Or dots 2, 4, 6 which could be a Romanian ț or a german ö. But as an user I would imediately know that if the text is in german, dots 2, 4, 6 are ö and not ț.

My proposal to include as many languages as possible

After comprehensive testing I found out that there are many languages which treat signs like exclamation mark and so on in 8 dot computer braille differently. Because of that I propose following:

First step: we have to find all languages which have the same mapping of latin letters, digits and common signs like percent, dollar, exclamation point etc. in braille and put them together in one table.
Second step: language specific signs (letters accents and diacrices, greek letters, cyrillic and hebrew signs and other alphabeths have to be included into the master table. Some of the other alphabeths might be 6 dot braille, but this would not be a problem because the sign displayed on the screen is not in conflict with any standard latin letter or sign. For example a cyrillic letter could be 6 dot braille if the most countries in the tables which use cyrillic letters use 6 dot unicode braille. Latin letters could be 8 dot computer braille. But to achieve this we have to sort the existing tables and look at the common aspects of each alphabeth and how often a certain Braille grade is used.

Follow up: an optional universal worldwide braille output table integrated in NVDA braille Settings and Braille Settings of other Screen readers.


  1. Documentation on the standard computer braille for each alphabeth which has been implemented in the master table must be published (i.e. latin = 8 dot computer braille; cyrillic = 6 dot braille) and description of signs must be provided. Additionally, a small tool for learning the implemented standards could be developed for People who want to read Multi language texts and learn new languages
  2. The standard braille which is used by most countries according to existing tables has to be implemented and has to be learned by users who want to read confortably more languages or who want to learn new languages.

I know that this issue is more related to liblouis than to NVDA. But I think in this case both projects have to work together. NV Access comitted itself to give people with visual disabilities access to technology and invormation. In this case, we would bring millions of users together.

I hope the community is open to start working on this. A project team could be built to work on it.

System configuration:

NVDA version:

Last Liblouis Version.

Windows version:
Windows 10 Build 16299.64

Name and version of other software in use when reproducing the issue:

Other questions:

Does the issue still occur after restarting your PC?


This comment has been minimized.

Copy link

Adriani90 commented Jan 11, 2018


This comment has been minimized.

Copy link

bertfrees commented Feb 12, 2018

It is an interesting idea. However I must say that I agree with Joseph, Davy, Leonard, Jamie, etc. in that it does not sound very realistic. I'd like to be proven wrong though. If someone could come up with a script that generates such a universal table from all existing tables in Liblouis, and if someone can have the resulting table tested by a representative group of NVDA users all over the world and this shows that the table is useful, I'd be happy to include it in Liblouis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.