Table of Contents



Introducing the Braille keyboard

Before you can start typing, you have to first set the buttons for each braille dot.

You decide how to place the dots. You need to enter each dot position in order from one to six. After that swipe down for a newline.

MBraille remembers the position of each dot, but you can always reprogram the dots if you have forgotten. Reinitialize the layout with a four finger swipe right.

Note that in the layout the dot positions are not entirely fixed but allow for your hand positions to drift while still keeping the input accurate.

Using the keyboard

The braille key input begins when one finger goes down and ends when all fingers are lifted. You can tap all the dots simultaneously or in sequence as long as at least one finger remains on the screen.

By default, contracted Braille is not used, but if available, it can be turned on from settings. To quickly turn contractions on and off while entering text, hold down dot 6 with one finger and flick up or down with another finger.

Swipe gestures

MBraille swipe gestures work best when they are short and fast.

Swipe directions

When referring to swipe direction confusion can arise depending on how you hold your phone or tablet.

So the directions are taken from the Braille characters themselves and the following convention is used:

Right: Direction from dot 1 to dot 4 Left: Direction from dot 4 to dot 1 Up/Down: You choose this when you initialize the keyboard.

One-finger swipes

Swipe right to enter a space. Swipe down to enter a newline. Both space and newline trigger the expansion of contractions in the preceding word. Swipe left to delete the previous character. Swipe up to hear what you have written.

Two-finger swipes

Two finger swipe left to delete last word.

Two finger swipe right for newline. This is the same a swipe down in MBraille, but provided for compatibility with iOS and Android braille input.

Two finger swipe up to repeat last thing spoken.

Three-finger swipes

Three-Finger Swipe Left: Undo Reverses recent actions, including text edits (cuts, deletions, clearing), and closes read-only files.

Three-Finger Swipe Down: Erase/Close Erases all current writing. Alternatively, shake the device to erase. For read-only files, this closes the file and restores the previous content.

Three-Finger Swipe Up: Command Mode Opens the command interface for advanced actions, such as sending text messages, and managing files (open, save). See "Commands" below for details.

Four-finger swipes

Four finger swipe up closes the keyboard and takes you to previous screen. Four finger swipe right resets the keyboard layout. Four finger swipe down gives a short context sensitive help.

Alternatively, you can access context-sensitive help by holding dot 1 and swiping up with two fingers.

Scrub gesture

MBraille supports a two-finger scrub gesture (swipe left-right-left quickly with two fingers) to go back or close files, similar to iOS conventions. This is an alternative to the four-finger swipe up gesture.

Clipboard

If you switch to another application from MBraille, the current text is automatically copied to the clipboard. You can then paste the text in the other application. Then just open the app switcher and select MBraille to get back.

To copy just a given block of text from MBraille to another application, mark and copy your block as described in the next topic and and invoke the app switcher.

Editing text

You can do simple editing with MBraille, preview what you have written, and move text around by selecting, cutting, and pasting. You can even paste text from other applications into MBraille for editing.

All editing gestures work on the same principle: use one hand to press and hold one or more braille dots to select the gesture, then swipe up, down, left, or right with your other hand to activate the selected gesture.

When editing existing words or entering punctuation, it is often more convenient to use uncontracted Braille. To quickly toggle contractions on and off while entering text, hold down dot 6 with one finger and flick up or down with another finger.

Previewing text and moving the insertion point

Hold down braille dot 3 with one finger. Use another finger to flick left or right to have your text read word by word. Flick up or down to change the granularity of movement. You can move in the text by character, by word, by sentence, by line or by paragraph.

To quickly read to the end of text from the cursor, flick right with two fingers while holding dot 3. Flick left with two fingers to read from beginning to cursor. The cursor position is not changed when you do this.

Flick up while holding dot 3 to hear number of characters and words in the text.

You can move to the beginning of text by holding dots 1 and 3 and flicking left. You can move to the end of text by holding dots 1 and 3 and flicking right.

Bookmarks

You can save bookmarks at any position in your saved files and navigate between them using gestures:

- Save a bookmark: Hold dots 1 and 3 and swipe down with two fingers - Next bookmark: Hold dots 1 and 3 and swipe right with two fingers - Previous bookmark: Hold dots 1 and 3 and swipe left with two fingers

These next and previous bookmark gestures cycle through all the bookmarks in the current file. If you reach the end, they wrap around to the beginning (and vice versa). You must save your file before adding bookmarks.

For named bookmarks and how to delete bookmarks, see the "Named Bookmarks" section in the commands documentation.

Selecting, cutting, copying and pasting text

Navigate in the text using the preview function. Once you have found your spot, press down dot 2 while still holding dot 3. With dots 2 and 3 held, moving around with flicks selects the text that is passed over. VoiceOver announces the selected text as you move. To hear the full selection, swipe up with two fingers while still holding dots 2 and 3.

To copy the selected text, swipe up with dots 2 and 3 still held down. To cut the selected text, swipe down.

To paste text at the insertion point, hold down dot 2 and flick down with another finger. Hold down dot 2 and flick up to hear what currently is in the clipboard. You can paste text you copied with MBraille copy or cut function, or text that you copied from another application.

To quickly extend the selection to beginning or end of text, hold down dots 1,2,3 and swipe left or right.

Searching

Hold dots 4,5,6 and swipe up or down to enter search mode.

The swipe direction determines the search direction: down for forward, up for backwards.

Type your search string and swipe down for newline, at which point the string you entered is searched from current point to direction chosen. If found, the cursor is placed at beginning of match and line number and sentence it is in is announced.

Swipe down again to find the next match. The search automatically wraps around at end or beginning. If it wraps you will hear an announcement.

To get out of search mode hold dots 4,5,6 again and swipe up or down again. The input cursor is left at the position of last match.

Spelling

You can configure spelling aids in the MBraille settings.

You have 3 options for spelling in settings:

1. Check spelling after each word, beeps on misspelled word. This is the master switch, if it is not on, you will not get spelling.

2. Only check spelling during preview by word. This modifies the spelling behavior so that you will not be interrupted by beeps when writing.

3. Spell out the suggested word. This affects how the proposed corrections are announced.

So the first switch in settings is the master switch for enabling / disabling spelling.

Correcting spelling mistakes

When MBraille detects a spelling mistake, it can also suggests a list of possible corrections.

You can select a suggestion with a gesture:

When you hear a beep for a mistake while typing or previewing, you can immediately pick a suggestion from a list by holding down dot 1 and swiping up or down. The first choice in the list is the mistyped word, in case you wish to keep it. As soon as you lift your fingers, the correction is done and you can resume typing.

If in the settings you have selected to automatically spell out the suggestions, you'll hear each suggestion similar to hello below.

"hello, h,e,l,l,o"

Regardless of the setting, you can force spelling out a suggestion by holding dot 1 and swiping right. That will also report the number of suggestions, like

hello, h,e,l,l,o, 4 of 14

User spelling dictionary

You can add the word you wrote to spelling dictionary by holding dot 1 for the first suggestion, which is the word that caused the beep, and swiping left. You will be asked for a confirmation to add the word to the spelling dictionary.

dict command will list the words in your user dictionary, allowing you to remove words.

Commands from the keyboard

You can at any time execute commands from the braille keyboard. Swipe up with 3 fingers to enter the command mode and type your command followed by possible arguments, followed by a newline to run the command.

In command mode you can type and edit your command as usual with braille, but the command buffer is kept completely separate from your regular text. So if you go to beginning of text or end of text in command mode, you will get to beginning or end of your command.

Note that when in the command mode, you can use the preview gestures move by line to go back or forward through the command history. A shortcut is holding dot 4 and swiping up to got to previous command in history, or swiping down to go forward. Even if you are not in command mode, holding dot 4 and swiping up will directly get you to the last command you ran.

Command Usage

Some commands target the text you have written. For example, to send a text message, you first type your message. Then you can send it away using the commands mail or sms.

The commands you enter in MBraille are saved, so you can browse and re-execute old commands. For example, if you keep texting the same handful of persons, it is convenient not having to type the command again.

At the beginning of line, hold dot 4 and swipe up to go back in history, down to go forward. When you lift your finger from dot 4, it is as if you had typed again the old command. Just swipe down for newline to play it again.

Sending mail

You first type your mail message, then add the command.

Usage:

mail "Hello there" Jack

Follow this with a newline and the send mail form is brought up with the Subject set to "Hello there" and To: pre-filled with the email address for Jack. Subject needs to be quoted if it contains spaces. Recipient emails are looked up from contacts by their first or last name. You can add multiple recipients.

mail "Hello there" Jack Jill

will send the mail to both Jack and Jill.

For the recipient you don't need to write out the full name, a prefix is enough. You just need to use enough letters to tell the names apart. For example, to send an email to Jill when you have both Jane and Jill in your address book, you would need to type just ji. The name lookup is not case sensitive and you can add as many recipients as you wish. If you have not typed enough letters to tell multiple recipients apart, you will be warned.

To use both first name and last name to specify the recipient, you must separate the names with a period. So if you have in your contacts Jill Jones, and Jill Smith, you need to use the last name to tell the two Jill's apart. You can address an email to Jill Jones by abbreviating her name to jill.j or even just to j.j, if you have no other people in contacts whose first and last name both start with j. Note that if you are using contracted English Braille, to type the period between the first and last name you escape it with dot 4 before it. So a.b would be dots 1 4 256 12. An alternative is to toggle to uncontracted Braille on the fly to enter the arguments.

You can also give an explicit email address instead of a contact name. To type @ sign, switch to uncontracted braille by holding dot 6 and flicking up or down.

SMS text messages

sms

On a line by itself will launch the SMS send screen with the current text pre-pasted.

You can also pre-fill the recipient numbers in the same way as for the mail command. Just give the first few letters of the recipient name as parameter. For example

sms Joh

Would pre-fill the number for John. You can also give the full telephone number as an argument.

If your recipient has multiple telephones, you will be asked which one to use in a selection list. To directly pick the first mobile or iPhone number from the list, you can prefix your recipient name with "m:" as follows:

sms m:john

Dialing a number or contact

dial name or number

Calls given contact or number. The contact can be abbreviated as for sms or mail commands. The call is opened as soon as you swipe down for a new line.

Adding Calendar entries

You can create a new Calendar item from MBraille with the cal command. The current text is added to the calendar entry as notes. The arguments to specify the time follow the cal command.

Usage:

cal title starts [ends] [alert [time]] [location: place]

Examples:

cal Meeting 17:30

Schedules an event with title Meeting for 17:30. If now is before 17:30, the meeting is for today, if it is already past 17:30, the date it is automatically set for tomorrow.

cal Pickup laundry 2017-06-07-13:00 alert 30 min

Would add a calendar entry for June 7, 2017 at 1 PM, with title Pickup laundry, and add an alert to the event 30 minutes before.

cal Paris 2017-08-08

Since there is no time, this is automatically an all day event.

cal Piano lesson 2017-07-07-14:00 2017-07-07-15:00 alert 1 hour

Adds an event with starting and ending time, with an alert 1 hour before the event.

cal Meeting 5pm location: lobby

Schedules a meeting for 5 pm, location being lobby.

Different formats for specifying date are supported. In the USA MM.DD.YY format is understood, outside USA the order is day, month year; DD.MM.YY. For time, 24 hour clock is always supported, but so is 1:00 PM format.

cal Coffee 2017-05-16-16:00

cal Coffee 21/3/14-10am

You can also leave out the year, in which case the current year is used, or the following year if the date has passed.

Natural language dates

In addition to the formats above, you can also use natural language to specify dates and times. This is useful when you want to quickly create an event without remembering the exact date format. Examples:

cal Meeting next Tuesday at 3pm

cal Birthday Sep 12

cal Standup tomorrow

cal Team sync friday 3pm to 5pm

When a time range is given (like "3pm to 5pm"), both start and end times are set automatically.

Desktop support

On desktop platforms (Windows, macOS, Linux), the cal command creates and opens an .ics calendar file. The file is opened with your default calendar application, allowing you to review and save the event.

Typing Speed Test

To practice your typing speed, you can use the speedtest command.

Usage:

speedtest seconds

or

speedtest phrase

When you start a test, you'll hear a tone. When you stop a test, you'll hear the same tone as in the start. If you make a mistake when testing with a sample sentence, you'll hear a different tone after a word to signal a typo.

Examples:

speedtest 10

swipe down, you'll hear the starting tone. Type for 10 seconds and you'll hear the same tone to signal 10 seconds have elapsed. Hold dot 3, swipe up to preview by sentence and swipe left to hear your results.

speedtest sample text to type

swipe down, you'll hear the starting tone. Type "sample text to type" and end with space or newline. If you make a typo, you'll hear a different tone and need to correct your mistake. Once you have entered the text again without mistakes, you'll hear a tone to signal you are finished. Hold dot 3, swipe up to preview by sentence and swipe left to hear your results.

speedtest wr

is a shorthand for typing:

speedtest The razor-toothed piranhas of the genera Serrasalmus and Pygocentrus are the most ferocious freshwater fish in the world. In reality they seldom attack a human. This is the official phrase used in the Guinness World Records texting attempt, see [Records_and_competition][1] for more information.

[1]: http://en.m.wikipedia.org/wiki/Text_messaging#Records_and_competition "Records_and_competition"

Using Web Search Engines

You can at any time do Google, DuckDuckGo, StartPage or Yandex searches. The search will open your default browser to display the search results.

Google

Usage:

google word1 word2

You can abbreviate the command to goo

Example:

goo "Albert Einstein"

Note that you can quote search terms, as you can with a regular Google search. If you don't give any parameters, all of your current text is used as search keywords.

DuckDuckGo

Usage:

ddgo word1 word2

Example:

ddgo "Michael Jordan"

Note that you can quote search terms, as you can with a regular DuckDuckGo search. If you don't give any parameters, all of your current text is used as search keywords.

StartPage

You can do a StartPage search at any time with dot spage.

Usage:

spage word1 word2

Example:

spage "Pablo Picasso"

Note that you can quote search terms, as you can with a regular StartPage search. If you don't give any parameters, all of your current text is used as search keywords.

Yandex

You can do a Yandex search at any time with yandex command.

Usage:

yandex word1 word2

Example:

yandex "Leo Tolstoy"

If you don't give any parameters, all of your current text is used as search keywords.

Opening the web browser

You can open an arbitrary url in your default browser with web command.

Usage:

web url

Example:

web dr-carter.com

You don't need to add the http:// in the beginning, but you can, for instance if you are pasting a link. If the url does not seem to make sense, it is passed to Google to ponder upon.

Multimedia

Spotify

You can search on Spotify or open the app.

Usage:

spotify search terms

Example:

spotify Beethoven

If you don't give any parameters, Spotify is opened.

YouTube

You can search on YouTube or open the app.

Usage:

youtube search terms

Example:

youtube "funny cats"

If you don't give any parameters, YouTube is opened.

Getting help

To consult help directly from the Braille keyboard, you can give the help command.

Usage:

help

File Management

Commmands:

open filename

Opens filename.txt from MBraille folder. If you use another suffix than .txt, you need to specify it.

open

Without filename will let you browse the files in /MBraille folder. If you don't remember the filename, but remember it at the letter A in it, you can do ".open A" and you'll get a list of all files with letter A in the name.

Swipe left/right or up/down to go through the list, double tap when you have the file you wish to open. At bottom of screen there is a cancel button if you wish to cancel the action.

save

Saves the current buffer with the name it was opened with. If a new buffer, the default name is notes.txt

save filename

Saves the current buffer as filename.txt. It is saved under /MBraille folder which you can see with a file explorer, or when you connect to your PC.

delete filename

Deletes the file, asking for a confirmation. If you leave the filename out, or give partial filename, you will be presented a list of matching filenames.

Named Bookmarks

In addition to the quick bookmark gestures (holding dots 1 and 3 and swiping with two fingers), MBraille has named bookmarks. All bookmarks are saved across sessions and can be shared between files.

Commands:

bookmark [name]

Adds a bookmark at the current cursor position. If a name is provided, the bookmark can be referenced by that name later. If no name is given, an bookmark with filename and order number is created. You must save your file before adding bookmarks.

Examples:

bookmark Chapter 1

Creates a named bookmark called "Chapter 1" at the current position.

bookmark

Creates an unnamed bookmark at the current position.

jump name

Jumps to a previously saved bookmark by name. If the bookmark is in a different file, that file will be opened automatically.

Example:

jump Chapter 1

Moves the cursor to the "Chapter 1" bookmark.

rmbookmark name

Removes a named bookmark from the current file.

Example:

rmbookmark Chapter 1

Deletes the "Chapter 1" bookmark.

list bookmarks

Shows a list of all bookmarks sorted by file and position. Use left/right swipes to navigate the list, press newline to jump to a bookmark, or swipe left with two fingers to delete a bookmark from the list.

The bookmark list shows entries in the format: - Named bookmarks: "bookmark name, filename: number" - Unnamed bookmarks: "filename: number"

Bookmarks from the current file are listed first, followed by bookmarks from other files.

Note: Bookmarks are automatically cleaned up when files are deleted.

Aliases

With aliases you can create shorthand forms for arbitrary text. The alias is expanded when you swipe for space or newline. One possible use for aliases are emojis.

There is a sample alias.mb file distributed with MBraille with some predefined aliases.

Try for example typing RH in capitals an see what you get!

You can open the alias file in MBraille with "open" command and edit it to your heart's content.

Aliases defined in this file. To change aliases, just edit the alias.mb file and save it. All aliases are re-read from the file when it is saved or when MBraille starts. Note that when alias.mb is the file being edited, all aliases are disabled.

Note that if you are using cloud file sync, your aliases are automatically synced between devices. As alias.mb is a simple text file, you can just open alias.mb in any editor to make modifications, or send a useful alias.mb file to your friends. The file can be transferred from-to MBraille either through Dropbox, Google Drive or Onedrive

You can of course edit alias.mb in MBraille itself, using "open alias.mb" and save commands. During the editing of alias.mb, the aliases are disabled.

The file format is:

myalias1: definition myalias2: another alias definition

Empty lines are ignored, as well as lines starting with #

Instead of colon, you can also use '=' sign to denote the start of definition. The leftmost sign matters. (Not all braille tables have '=', so I chose ':' as the default.)

Multiple lines in aliases

Aliases can expand to multiple lines. To define a multiline alias:

1. Start the alias with NAME: followed by nothing on the same line. 2. Write each line of the alias content on its own line. 3. End the alias with :end on its own line.

For example, the following would expand to 5 lines:

MYSIG: Charlie Brown Lucky Street 8, 00100 Happytown Finland tel. +358 9 1234 5678 :end

Command Aliases

These are aliases that only work when they are the first word in the command buffer. Perhaps an example is the best way to explain them.

If you put the following line in alias.mb: command ml: mail mbraille-test@lists.mpaja.com

That will create a command alias called ml. Now, when you swipe up with 3 fingers, type ml, and swipe down, it will launch the mail app, using the current buffer as the mail body and the "To" address pointing to the testers' mailing list.

I chose ml as shorthand for "Mailing List," but feel free to choose your own aliases. Other examples:

text
  command fr: lang fr
  command en: lang en
  command w: whatsapp family
  

Now the new commands would be fr, en, and w. These would change the language to French, change the language to English, and open WhatsApp to send a message to your family (assuming you have a group called "family" in WhatsApp).

Alias Gesture Binding

There are 4 gestures you can bind to an alias. The gestures are: Hold dot 5 and swipe Up, Down, Left, or Right.

The syntax for these is:

bind-5u: existing-alias-name bind-5d: existing-alias-name bind-5l: existing-alias-name bind-5r: existing-alias-name

Again, some examples. Let's assume your alias.mb has the lines:

gbyf: So Long, and Thanks for All the Fish. bind-5u: gbyf

Now, when you are writing in MBraille, if you hold dot 5 and swipe up, the phrase "So Long, and Thanks for All the Fish." is inserted at the cursor!

You can also bind the gestures to command aliases. So, to switch the braille table to French with a gesture, you could do:

command fr: lang fr bind-5r: fr

Notes

Alias expansion happens before any contracted braille expansion. If you include an alias in an alias definition, the alias included will not be expanded.

Working with third party applications

Whatsapp message

If you have Whatsapp installed, you can send a message to a Whatsapp contact.

Usage:

whatsapp contact

Opens Whatsapp and automatically fills the receiver and message text from MBraille.

If you want to select the contact in Whatsapp itself, but still pass the message text from MBraille, you can launch Whatsapp without the contact argument.

Cloud sync for MBraille files

MBraille currently supports Dropbox, Google Drive and Onedrive (Microsoft)

These can be turned on from Settings. You need to authenticate with the corresponding service.

The files are synchronized when ever you cold-start MBraille.

MBraille also syncs documents to the cloud during the following operations, if cloud sync is enabled and connected:

- On save: After successfully saving a file locally, it uploads the file to the cloud. - On delete: After deleting a file locally, it removes the file from the cloud. - On open: It checks for and downloads a newer cloud version if available before opening the file.

Syncing is not automatic at set intervals or on app close; it occurs reactively based on these file operations.

Odds and Ends

Additional Symbols

MBraille supports the following multi cell symbols. If you are using the setting where all characters are announced, the voice feedback is a little confusing, as separate cells are announced in braille ASCII until the word is complete.

UEB symbols supported by MBraille

Symbol Dots
" 6-2356
# 456-1456
$ 4-234
% 46-356
& 4-12346
( 5-126
) 5-345
* 5-35
+ 5-235
- 5-36
... 256-256-256
/ 456-34
< 4-126
= 5-2356
> 4-345
@ 4-1
[ 46-126
\ 456-16
] 46-345
^ 4-26
_ 46-36
{ 456-126
} 456-345
~ 4-35
¢ 4-14
£ 4-123
¥ 4-13456
§ 45-234
© 45-14
« 456-236
® 45-1235
° 45-245
45-1234
» 456-356
× 5-236
è 46-16-15
é 45-34-15
÷ 5-34
α 46-1
β 46-12
γ 46-1245
δ 46-145
ε 46-15
ζ 46-1356
η 46-156
θ 46-1456
ι 46-24
κ 46-13
λ 46-123
μ 46-134
ν 46-1345
ξ 46-1346
ο 46-135
π 46-1234
ρ 46-1235
σ 46-234
τ 46-2345
υ 46-136
φ 46-124
χ 46-12346
ψ 46-13456
ω 46-2456
6-36
—— 5-6-36
6-236
6-356
45-236
45-356
4-6-1456
4-6-12456
456-256
4-124
4-1345
4-15
45-2345
1256-246
1256-346
1256-135
1256-146
45-1346
45-13456
3456-126
3456-16
3456-146
5-2

For older English Braille MBraille supports

Symbol Dots
# 456-1456
% 4-25-1234
& 4-12346
' 6-236
' 356-3
* 5-35
* 35-35
+ 5-235
- 5-36
. 3-3-3
/ 456-34
: 4-156
= 5-2356
@ 4-1
[ 6-2356
] 2356-3
¢ 4-14
£ 4-123
$ 4-234
¥ 4-13456
© 45-14
® 45-1235
× 5-236
÷ 5-34
36-36
36-36-36-36
4-35
4-15
45-2345

Self Voicing

You can use the Braille keyboard without VoiceOver turned on. MBraille will detect that VoiceOver is not running and automatically use self voicing.

Giving feedback

To send mail to MBraille developers, you can give the feedback command.

Usage:

feedback [subject]

Examples:

feedback Thanks for a job well done!

Without any arguments feedback uses the default Subject: "MBraille feedback"

It will add the device information and MBraille version info to the message, which it takes from you MBraille text buffer. The feedback is sent as email from your devices's standard email app.

Change Braille table language

If your phone language does not match the Braille table you would like to use, or if you know Braille in multiple languages, you can change the Braille table on the fly with the lang command.

Usage:

lang [language code]

Examples:

lang da

Would change the braille table to Danish for the current session.

Design and coding

+ Harri Pasanen

Copyright 2013-2026 MPaja.com

Software used

Hunspell https://hunspell.github.io/ Liblouis https://github.com/liblouis/liblouis