Could we hack into designing a Persian/Arabic braille font?

A few days ago I accidentally (somehow) found out that there is no Persian/Arabic braille font whatsoever! None. There are some applications and very old techniques to do the translation to the Persian braille. But not an actual font.

Only a few minutes later I found out why. The Persian script is RTL (I know you know this ) but for some [...] reason they decided to do the Persian braille LTR! But it's getting worse! The letters however should be written RTL!

So basically in those six block dots we have dark dots that are recognizable RTL but the whole line goes LTR. I have no idea what a nightmare this is for Persian blind people to use and translate this in their minds. But since it is almost impossible to make the whole Persian/Arabic braille writing system RTL all of a sudden after all these years, I have decided to give the font a shot. I finished the Persian braille font.

The hack:

But now the thing is is there any way that we could write RTL with Persian keyboard and Persian standard characters and yet the text would appear LTR? Any tricks would appreciated excpet of course installing an app or add-on or...

Please see the picture to see what I'm talking about. I did the colors to show you how it goes. The first line is correct Persian script (non-cursive of course) and the second line is backward Persian braille.

Thanks a lot in advance and I hope we can do this and make a lot of books, publications and other stuff into braille in one second by just changing the font.

And at the mean time I'm working on a project to fundamentally change the whole braille concept by doing a new alphabet, inspired by the ELIA frames that a group of nice people did for English braille. I will probably write about that in a few days.

Thinking out loud:I suddenly remembered that I could make a Persian font LTR by disabling the Middle Eastern type engine in Adobe Photoshop. It is good, but yet it's just Adobe. Could we do that in MS Office too or other places as well? Or do it in the font?

Comments

I'm not sure I understand what you mean by the letters being RTL even though the script is LTR. Individual letters don't have a direction.

What you need isn't a special font for Persian Braille since the Unicode Braille Patterns range (u2800-u28FF) should cover all variants of Braille. What I think you're really looking for is a keyboard layout for Braille that mimics a standard Farsi keyboard layout.

SIL International has some utilities for designing keyboard layouts. You can find them here:

Thanks a lot in advance and I hope we can do this and make a lot of books, publications and other stuff into braille in one second by just changing the font.

If what you're intending is a font that maps braille patterns onto farsi unicode points so you can automagically convert Persian script into braille, I suspect that that probably wouldn't work (not to mention the fact that it would be an abuse of unicode).

I don't know about Persian, but in English Braille the mapping between Braille patterns and letters of the English alphabet is not one-to-one, and things get complicated once you start dealing with punctuation conventions etc.

This is really a task for a computer program that would translate text in Persian into text in Braille. I'd be surprised if there wasn't an institute for the blind in Iran that hadn't already done this since it wouldn't be very complicated.

I'm not sure I understand what you mean by the letters being RTL even though the script is LTR. Individual letters don't have a direction.

Thanks for the reply. It is a little hard to explain. What I meant was as you can see in the picture, the letter should be written with the order of black (embossed) dots that are designed from right to left. For example for ا you have a black dot on the far top left, but it is actually the second dot in the order of 6 dots. The first dot is the far top right blank dot! And when blind people are going to memorize them, they should be learnt from right to left.

What you need isn't a special font for Persian Braille since the Unicode Braille Patterns range (u2800-u28FF) should cover all variants of Braille. What I think you're really looking for is a keyboard layout for Braille that mimics a standard Farsi keyboard layout.

SIL International has some utilities for designing keyboard layouts. You can find them here:

The problem with the keyboard layout is we can not convert existing texts to braille with that. Everything should be written with that keyboard from scratch. And on top of that everybody needs to install that keyboard.

Thanks a lot in advance and I hope we can do this and make a lot of books, publications and other stuff into braille in one second by just changing the font.

If what you're intending is a font that maps braille patterns onto farsi unicode points so you can automagically convert Persian script into braille, I suspect that that probably wouldn't work (not to mention the fact that it would be an abuse of unicode).

I don't know about Persian, but in English Braille the mapping between Braille patterns and letters of the English alphabet is not one-to-one, and things get complicated once you start dealing with punctuation conventions etc.

This is really a task for a computer program that would translate text in Persian into text in Braille. I'd be surprised if there wasn't an institute for the blind in Iran that hadn't already done this since it wouldn't be very complicated.

André

No problem I just answered it. But it is a good point. Actually I didn't meant to use the Unicode braille patterns and since it is easy, I designed the glyphs. So it's like a normal Persian font but filled with Braille dots.

I saw the Persian and Arabic braille pages and I thought it was pretty one-to-one. And English I think is too. Although it gets complicated in some punctuations, mathematical symbols and ligatures,... but it all could be done I think.

There are a lot of English braille fonts out there. Are you saying they are not functional?

There is computer program, it is not done in Iran, but I saw some screenshots and it looks very old and I think hard to work with. I hope it could be much more easier that this.

Maybe You can make the Persian Braille Glyphs mirrored in the font.Digit all the the texts in LTR.Export as PDF.Mirror the PDF and all the glyphs and paragraphs will be right.This trick was very common in the 90's in adobe pagemaker.The font was mirrored and You mirrored the text frame in Pagemaker.Of course this is not an elegant solution but I hope It helps.

Maybe You can make the Persian Braille Glyphs mirrored in the font.Digit all the the texts in LTR.Export as PDF.Mirror the PDF and all the glyphs and paragraphs will be right.This trick was very common in the 90's in adobe pagemaker.The font was mirrored and You mirrored the text frame in Pagemaker.Of course this is not an elegant solution but I hope It helps.

Thanks for the comment Yes, I have done that too. But as you mentioned this is not quite good for example for a book that maybe someone wants to convert to braille. It needs an extra step which could be complicated some of the times.

I suddenly remembered that I could make a Persian font LTR by disabling the Middle Eastern type engine in Adobe Photoshop. It is good, but yet it's just Adobe. Could we do that in MS Office too or other places as well? Or do it in the font?

There are a lot of English braille fonts out there. Are you saying they are not functional?

If by “English Braille fonts” you mean fonts which have Braille characters encoded in the Basic Latin range, then I imagine there are lots of those in the same way that there are lots of non-roman fonts which map non-roman characters to the Basic Latin Range. Most of these are legacy fonts which predate unicode. Whether they are functional really depends on your definition of 'functional'. If you mean, “can they be used”, then I suppose so as long as you're not planning on exchanging any documents in a usable electronic form. But this is a poor solution for anything being designed in the 21st Century.

There are a lot of English braille fonts out there. Are you saying they are not functional?

If by “English Braille fonts” you mean fonts which have Braille characters encoded in the Basic Latin range, then I imagine there are lots of those in the same way that there are lots of non-roman fonts which map non-roman characters to the Basic Latin Range. Most of these are legacy fonts which predate unicode. Whether they are functional really depends on your definition of 'functional'. If you mean, “can they be used”, then I suppose so as long as you're not planning on exchanging any documents in a usable electronic form. But this is a poor solution for anything being designed in the 21st Century.

André

Sorry I'm not an expert in the braille printing and embossing. Are you saying that those devices only recognize Unicode braille patterns and not any other glyphs? If this is the case we should leave it to the software that comes along with the braille printer or embosser I'm affraid. A Persian font in this case could be used by braille printer for example.

Sorry I'm not an expert in the braille printing and embossing. Are you saying that those devices only recognize Unicode braille patterns and not any other glyphs? If this is the case we should leave it to the software that comes along with the braille printer or embosser I'm affraid. A Persian font in this case could be used by braille printer for example.

No, that wasn't my point. I'm not familiar with how braille printers work, but since such printers have been around longer than unicode, I assume they can accommodate a variety of encodings.

My point is that you will be adopting an encoding which isn't used by anyone but you, which means that people who aren't familiar with your encoding and who don't have your font won't be able to make use of any documents created this way. Of course, if you could get others to accept your ad hoc encoding you might be able to create some sort of pseudo-standard, but since there already is an existing standard (unicode), why would this be a worthwhile endeavour? (and note that while the mapping of printed farsi letters to braille letters might seem obvious, how to encode various braille-specific symbols and abbreviations isn't).

By using the existing unicode standard, documents created with one braille font could be displayed using any other braille font. Moreover, anyone receiving such a document could figure out that it contained braille even if they didn't have an installed font just by looking at the codepoints contained in the document.

Also, your proposal would require a separate set of braille fonts for each individual language, whereas unicode allows a single braille font to be used for all languages. I am not familiar with the braille used for Arabic or Farsi, but the brailles of most languages include a variety of language-specific abbreviations which don't correspond to print; these include single symbols for common letter sequences and common words*; they also include a number of punctuation symbols which don't occur as characters in print (e.g. emphasis symbols to mark what in print would be rendered in italics, symbols to disambiguate the use of a symbol as a number or a letter and so forth). Ergo simply switching from a latin font to an “English Braille” font wouldn't produce acceptable results for anyone actually interested in printing braille.

André

*these might be treated as ligatures using opentype features, but I believe that the use of some of these symbols is sensitive to word and morpheme boundaries, so this might prove difficult.

To my knowledge (I am somewhat well informed), Braille is written left to right in all languages. As Shahab’s concerns seem to flow from an insistence that Farsi Braille read right to left, there seems to be little room left for those concerns. Beating a dead horse is pointless in any direction.

Sorry I'm not an expert in the braille printing and embossing. Are you saying that those devices only recognize Unicode braille patterns and not any other glyphs? If this is the case we should leave it to the software that comes along with the braille printer or embosser I'm affraid. A Persian font in this case could be used by braille printer for example.

No, that wasn't my point. I'm not familiar with how braille printers work, but since such printers have been around longer than unicode, I assume they can accommodate a variety of encodings.

My point is that you will be adopting an encoding which isn't used by anyone but you, which means that people who aren't familiar with your encoding and who don't have your font won't be able to make use of any documents created this way. Of course, if you could get others to accept your ad hoc encoding you might be able to create some sort of pseudo-standard, but since there already is an existing standard (unicode), why would this be a worthwhile endeavour? (and note that while the mapping of printed farsi letters to braille letters might seem obvious, how to encode various braille-specific symbols and abbreviations isn't).

By using the existing unicode standard, documents created with one braille font could be displayed using any other braille font. Moreover, anyone receiving such a document could figure out that it contained braille even if they didn't have an installed font just by looking at the codepoints contained in the document.

Also, your proposal would require a separate set of braille fonts for each individual language, whereas unicode allows a single braille font to be used for all languages. I am not familiar with the braille used for Arabic or Farsi, but the brailles of most languages include a variety of language-specific abbreviations which don't correspond to print; these include single symbols for common letter sequences and common words*; they also include a number of punctuation symbols which don't occur as characters in print (e.g. emphasis symbols to mark what in print would be rendered in italics, symbols to disambiguate the use of a symbol as a number or a letter and so forth). Ergo simply switching from a latin font to an “English Braille” font wouldn't produce acceptable results for anyone actually interested in printing braille.

André

*these might be treated as ligatures using opentype features, but I believe that the use of some of these symbols is sensitive to word and morpheme boundaries, so this might prove difficult.

Thanks for the clarification. The encoding would be the same that has been used for any Persian/Arabic font. I understand that it is not a noble global solution. For example we can not translate a text written by the Persian braille font into a English or German braille script. I understand all of that. But you know the Persian braille experience is a disaster right now (I think) and if we could do a little to make it easier for everybody wouldn't it be nice? And then we can expand that to a more global idea I guess. Right now there are a lot of books or websites that we could translate to Persian braille. But at the moment they all need a software which usually comes with a printer.About the last part, I'm trying to reach to Persian braille professionals to see what should be done in order to create a maximum reliable braille font.Thanks again for the comments.

To my knowledge (I am somewhat well informed), Braille is written left to right in all languages. As Shahab’s concerns seem to flow from an insistence that Farsi Braille read right to left, there seems to be little room left for those concerns. Beating a dead horse is pointless in any direction.

On the contrary. I wrote that Persian braille is LTR and I'm not going to change that. I just want to make it easier for everybody to change the font of a standard Persian text to a Persian braille font. The problem is all Persian texts are RTL and we need something to do the flip. Thanks for the comment.

The other thing to consider is whether braille printers even use a font at all. A font which prints braille on paper using a LaserPrinter would be of little use to the blind, and I can't see postscript or truetype outlines being of much use to a dedicated braille printer.

That said, it seems to me that what you want to accomplish is simply outside of the control of a font, given the LTR vs RTL issue.

As I understand it, directionality is not a property of the font itself, nor really determined by the font directly. The directionality is a property of the Unicode codepoints and/or control codes that are introduced during input or processing.

Given this LTR vs RTL issue, I don’t see how an existing Persian text can be “presented” as Persian braille text just by changing the font specification. I think it would need to be actually translated, which would be some sort of a text-processing task, not a rendering task.

But even “lying” about its encoding wouldn’t allow the font to do what Shahab wants in this case, it seems. Because even if braille characters are put in non-braille Persian codepoints, the font can’t, by itself, resolve the directionality issue.

As Kent notes, directionality is a property of Unicode characters. All Arabic script letters have strong RTL directionality, which means that layout engines will arrange those characters from right-to-left, even if the string of Arabic letters is embedded in a larger left-to-right context. In order to force Arabic script characters to be laid out left-to-right, you need to use a Unicode directional override control character. That could be done to force Persian text into LTR direction; however....

Braille is a distinct script, not a cipher of Latin, Arabic, etc.. So the proper level at which to transliterate a text in the Arabic script orthography of Persian to the Braille script orthography is character conversion, not font selection. So rather than spending time trying to make a font display Arabic script characters as LTR Braille characters, it would be better to work on Arabic-to-Braille conversion macros for text editors and word processors. Such macros are relatively easy to make, and provide a much more robust method of encoding and hence displaying text in the Braille script.

That said, it seems to me that what you want to accomplish is simply outside of the control of a font, given the LTR vs RTL issue.

As I understand it, directionality is not a property of the font itself, nor really determined by the font directly. The directionality is a property of the Unicode codepoints and/or control codes that are introduced during input or processing.

Given this LTR vs RTL issue, I don’t see how an existing Persian text can be “presented” as Persian braille text just by changing the font specification. I think it would need to be actually translated, which would be some sort of a text-processing task, not a rendering task.

Thanks so much for the reply. So I am now sure that the font itself can't be doing that "flip". About the translation the more I search the more I get the answer that there is one braille block for each Latin (or Persian or Arabic) letter. For example A has a unique substitute and so has ب for example.

Although I'm aware of this too:

Although it is possible to transcribe print by simply substituting the equivalent braille character for its printed equivalent, in English such a character-by-character transcription (known as uncontracted braille) is only used by beginners.

The next level is apparently being called "Grade 2". But for start can't we agree on doing simple steps and then make ligatures and abbreviations and contractions? I mean I don't think it would be much harder than a Nastaliq font for example.

The system of contractions in English Braille begins with a set of 23 words which are contracted to single characters. Thus the word but is contracted to the single letter b,can to c, do to d, and so on

Grade 3 Braille[22] is a variety of non-standardized systems that include many additional shorthand-like contractions. They are not used for publication, but by individuals for their personal convenience.

As Kent notes, directionality is a property of Unicode characters. All Arabic script letters have strong RTL directionality, which means that layout engines will arrange those characters from right-to-left, even if the string of Arabic letters is embedded in a larger left-to-right context. In order to force Arabic script characters to be laid out left-to-right, you need to use a Unicode directional override control character. That could be done to force Persian text into LTR direction; however....

Really appreciated your reply. How could we override the Unicode directional if you please? And What I did in Adobe Photoshop (of course it is not a solution) can help us here? I disabled the Middle Eastern type engine and now it's LTR. A Persian font that goes LTR. Now for example I can translate all the texts in a PSD file into Persian braille with one click.

As I wrote in Kent's comment reply I absolutely know that this is not a professional translation, but as I said in braille (if we don't want to go to the Grade 2) every letter has a substitute and you can basically translate the text by font conversion. What I mean is it is not like translating Persian to English.

And in the next step we could add those ligatures and abbreviations they've created in Grade 2 and add them.

And the other thing is, Braille is so hard for blind people that statistics say only 1% of US blind people can use it! I think for the Persian the stats are close. So if we use letter-by-letter translation we actually help the people to read better. Maybe not as a global solution for braille standards, but for small texts, web pages,...

Really appreciated your reply. How could we override the Unicode directional if you please?

John Hudson is referring to the use of control codes to override directionality. These would have to be manually inserted into the text. See Chapter 2 of the Unicode Standard (available from www.unicode.org).

As I wrote in Kent's comment reply I absolutely know that this is not a professional translation, but as I said in braille (if we don't want to go to the Grade 2) every letter has a substitute and you can basically translate the text by font conversion.

But you can also do it with text search/replace macro, and that will be more robust than a font substitution, and will produce Unicode encoded Braille characters with correct directionality built in.