Braille Translator
Instantly translate English to Braille and Braille to English, with intelligent support for Grade 1 and Grade 2 braille.
How this braille translator works
Client side translation, your text never leaves your browser
Every translation runs in JavaScript, on your device, so it works as a private braille transcriber for anything from a single word to full documents. There is no server call for the core engine, so nothing you type is transmitted, logged, or stored anywhere. This is also why the tool feels instant: there is no round trip to wait on. The one exception is voice input, covered below, since browser speech recognition works differently.
In the tool above
Grade 1 vs Grade 2, which one you’re getting and why it matters
Grade 1 braille is uncontracted: every letter, number, and punctuation mark is written out in full, one braille cell per character. Grade 2 adds a layer of contractions on top of the same alphabet, using single cells or short cell sequences to stand in for common letter groups and whole words. Most printed braille you’ll encounter, books, signage, menus, is Grade 2. Grade 1 is used where contraction would introduce ambiguity: technical text, spelling instruction, and early literacy. Read the full breakdown in our Grade 1 vs Grade 2 guide if you’re deciding which one your braille translation project needs.
Braille to English, too
Most online translators only go one direction. This one reads braille back into English as well, whether you paste Unicode braille characters or type numeric dot notation. The reverse engine has to resolve genuine ambiguity that a forward-only tool never has to face. A single cell with only dot 2 raised, for example, is both a comma and the “ea” groupsign in Grade 2. There’s no way to tell which one it is by looking at the cell alone. The decoder resolves this by position: a mid-word occurrence reads as “ea” (as in “learn”), while the same cell at the end of a word, following a letter sequence that would otherwise leave a stray consonant, reads as a comma (as in “much,”). This positional logic runs through the entire decode engine, not just this one case.
In the tool above
Ready to see it for yourself?
Scroll back up, paste a line of text or a line of braille, and switch the direction whenever you need to.
Try it with your own textInside the six dot braille cell
Dot numbering and cell structure
Every braille character is built from a cell of up to six raised dots, arranged in two columns of three. Dots are numbered 1, 2, 3 down the left column and 4, 5, 6 down the right. A capital “A” is a single raised dot in position 1. Add dot 2 and it becomes “B.” The full alphabet, numbers, and punctuation are built from combinations of these six positions, which is also why the layout maps directly onto a 6 key input device. See how to read braille dots for the complete dot-to-letter reference.
-
Wordsigns
A single cell stands for an entire common word on its own. The letter “b” cell, standing alone, means “but.”
-
Groupsigns
A cell represents a letter group inside a longer word. The “st” groupsign appears inside “stand” without spelling out s-t.
-
Short form words
A shortened cell sequence replaces a longer word entirely, more than one cell, distinct from a wordsign. “Ab” stands for “about.”
How contractions are formed from the same six dots
Grade 2 doesn’t introduce new symbols. It reassigns meaning to cells and cell sequences based on where they appear. Three contraction types do most of the work, shown alongside.
Position determines which rule applies, and the engine enforces the same positional constraints a trained transcriber would: a groupsign valid mid-word isn’t automatically valid at a word’s start or end.
Grade 1 and Grade 2, what changes in your output
When to use Grade 1
Grade 1 is the right choice whenever contraction would create ambiguity or when the reader needs to see every letter explicitly: spelling practice, names, technical strings, passwords, and any text where contracted shorthand would obscure the exact characters involved.
When to use Grade 2
Grade 2 is the standard for most published braille and is faster to read for fluent braille users, since contractions reduce the number of cells per word. Use it for body text, books, and anything meant to be read at length.
Edge cases this translator handles correctly
Grade 2 contraction rules are context dependent, and getting the context wrong produces output that misrepresents the source text. Three cases the engine is specifically built and regression tested to get right:
A sequence like “9am” needs its number indicator and letter sign placed correctly so the digit and the letter aren’t merged into an invalid cell run. The engine disambiguates this rather than treating it as one continuous token.
Contracting inside an email address or URL would corrupt it. The engine detects these patterns and forces Grade 1, uncontracted output for that specific string, even while the surrounding text stays in Grade 2.
A sequence like “A, B, C” needs correct capitalization handling per cell, not literal letter by letter treatment. The engine applies UEB capitalization rules across the sequence rather than defaulting to a naive per-character read.
Some letter pairs that would normally trigger a contraction are blocked when they cross a real word part boundary. “Rawhide” is raw plus hide, so the “wh” contraction is blocked even though the letters sit adjacent. Getting this wrong is a common failure point in simpler translators, since a naive pattern match sees “wh” and contracts it regardless of what the word actually is.
Getting your translation out
Copy as Unicode braille or plain text
Copy the raw Unicode braille characters for use anywhere that renders them, or copy the plain English text back out if you’re working in reverse.
Export as a plain .txt file
A straightforward text file export, readable output rather than embosser formatting. Use this when you need the translation in a document, an archive, or anywhere a plain file is more useful than a formatted one.
Export to .brf for braille embossers and note takers
BRF is the standard file format braille embossers and refreshable braille displays expect. It isn’t a general purpose file type, it’s formatted specifically for that hardware. If you’re not sure what a .brf file actually contains or when you need one instead of a .txt file, this breakdown covers it.
Print directly from your browser
Print your translation straight from the page using your browser’s print function, no separate export step required.
Beyond typing: voice input and image scanning
Voice input
Speak your text instead of typing it. This feature uses your browser’s built in speech recognition service to convert speech to text, which means it’s the one part of this tool that isn’t fully client side the way the translation engine itself is. Accuracy and availability depend on which browser you’re using.
Scan text from an image (OCR)
Upload or capture a photo containing printed text and the tool will extract it for translation. This runs entirely in your browser using a self hosted copy of the OCR engine, so the image itself is never uploaded to a third party server. It’s built for printed and typed text. Handwriting recognition isn’t reliable and shouldn’t be relied on for accuracy sensitive use.
Adjustable display size
Switch the rendered braille cells between small, medium, and large. This is a genuine accessibility control for anyone with low vision reading the dot pattern on screen, not a cosmetic preference toggle.
Composing braille directly with the Perkins style keypad
How the six keys map to the cell
The on-screen keypad mirrors the layout of a physical Perkins brailler: F, D, S on the left map to dots 1, 2, 3, and J, K, L on the right map to dots 4, 5, 6. If you already know the dot-to-letter structure covered above, this layout will be immediately familiar.
Staging a cell before inserting it
Press the keys for the dots you want and they toggle in a staging cell, shown before you commit it. Once the cell reflects what you intend, insert it into your output. This lets you compose braille dot by dot without needing a physical brailler, useful for practicing cell composition or entering characters that are awkward to reach by typing English.
Built on Unified English Braille standards
This translator’s contraction rules follow the Unified English Braille standard maintained by the Braille Authority of North America (BANA). Every wordsign, groupsign, short form word, and positional rule implemented here is checked against BANA’s published UEB rulebook, and the contraction engine runs against a regression suite of confirmed test cases, including the morpheme boundary exceptions and digit, email, and capitalization edge cases described above, so changes to the engine can’t silently break previously correct output.
Read more about our UEB methodology. Every contraction rule is checked by our lead transcription reviewer before it ships.
UEB rules checked against BANA’s published rulebook
- Wordsigns
- Groupsigns
- Short form words
- Positional rules
Frequently asked questions
Yes. There’s no signup and no cost to use the translator, in either direction.
Grade 1 spells every character out with no contractions. Grade 2 adds wordsigns, groupsigns, and short form words on top of the same alphabet, reducing the number of cells needed for common words and letter patterns. See our full Grade 1 vs Grade 2 guide for details.
Yes. Paste Unicode braille characters or type numeric dot notation and the tool decodes it back into English, including resolving contractions that are genuinely ambiguous out of context.
BRF is the format braille embossers and refreshable braille displays expect. Export to .brf when your output needs to go to that kind of hardware rather than a general document.
The translation engine itself runs entirely in your browser once the page has loaded, so the core translation doesn’t depend on an active connection. Voice input and OCR do require the page’s scripts to load initially. There’s also a 5,000 character limit per translation to keep in mind for longer documents.
Yes, 5,000 characters per translation. For longer text, split it into sections.
Yes. The decode field accepts numeric dot notation directly, for example 1-2-3 or 123-134, alongside standard Unicode braille. The tool detects which format you’ve entered automatically, no mode switch needed.
