Overview
BWTA uses two systems to control how your document is translated and formatted into braille: tags and control codes.
- Tags define the structure of your document — headings, paragraphs, lists, emphasis, math, and blockquotes. They look like HTML:
<h1>Title</h1>. Tags determine which BANA formatting rules are applied automatically (indentation, spacing, centering). - Control codes give you fine-grained control over translation and layout. They use the syntax
@{code}. Use them to force page breaks, change braille grade mid-document, insert transcriber notes, center text, adjust indentation, and more.
When you upload a document, BWTA automatically detects structure and inserts the appropriate tags. You can edit, add, or remove tags at any time in the Format pane (left side of the editor).
How to Insert Tags
There are three ways to insert tags:
- Keyboard shortcuts — The fastest method. Select text (or place your cursor) and press the shortcut. If text is selected, it will be wrapped in the tag. If no text is selected, the cursor's current word will be wrapped, or empty tags will be inserted at the cursor position.
- Toolbar buttons — Click the tag buttons above the editor (e.g.,
<h1>,<p>,<strong>). Active tags at the cursor position are highlighted in blue. - Type directly — Type the opening and closing tags manually. Tags are case-insensitive.
Toggling: If the cursor is already inside a tag of the same type, using the shortcut or toolbar button will remove the tag instead of adding a duplicate.
Removing tags: Right-click in the editor and choose Remove Tag to strip the nearest enclosing tag pair without deleting the content inside.
Keyboard Shortcuts
| Shortcut | Tag | Description |
|---|---|---|
| Ctrl+1 | <h1> | Heading level 1 |
| Ctrl+2 | <h2> | Heading level 2 |
| Ctrl+3 | <h3> | Heading level 3 |
| Ctrl+4 | <h4> | Heading level 4 |
| Ctrl+5 | <h5> | Heading level 5 |
| Ctrl+6 | <h6> | Heading level 6 |
| Ctrl+P | <p> | Paragraph |
| Ctrl+L | <li> | List item |
| Ctrl+B | <strong> | Bold |
| Ctrl+I | <em> | Italic/emphasis |
| Ctrl+M | <math> | Inline math |
| Ctrl+Z | — | Undo |
| Ctrl+Shift+Z | — | Redo |
Block Tags (Document Structure)
Block tags define the structural elements of your document. Each block tag occupies its own line(s) and determines how the braille output is indented and spaced according to BANA (Braille Authority of North America) formatting rules.
Headings
Headings create the hierarchical structure of your document. BANA rules dictate specific indentation and centering for each heading level.
<h1>...</h1>Ctrl+1Heading Level 1 — Major section heading.
BANA: Centered on the page with a minimum margin of 3 cells on each side. 1 blank line before and after. If the heading is too long to center, it wraps starting at cell 1. Used for book titles, chapter titles, and major divisions.
<h1>Chapter One</h1>
<h2>...</h2>Ctrl+2Heading Level 2 — Subsection heading.
BANA: Cell-5 heading. First line and runover lines both begin at cell 5. 1 blank line before, no blank line after. The text that follows starts on the next line.
<h2>Section Title</h2>
<h3>...</h3> through <h6>...</h6>Ctrl+3-6Heading Levels 3–6 — Sub-subsection headings.
BANA: Cell-7 heading. First line and runover lines both begin at cell 7. 1 blank line before, no blank line after. All four levels share the same formatting. Use deeper levels to preserve the document's outline hierarchy even though they look the same in braille.
<h3>Subsection</h3>
Paragraphs
<p>...</p>Ctrl+PParagraph — Standard body text.
BANA: 3-1 indented format. The first line of each paragraph begins at cell 3. Runover (continuation) lines begin at cell 1. No blank lines between paragraphs — the indentation change from cell 1 to cell 3 signals the start of a new paragraph to the braille reader.
<p>This is the first paragraph.</p> <p>This is the second paragraph.</p>
Each <p> must be on its own line, with a closing </p> at the end.
Lists
<li>...</li>Ctrl+LList Item — A single item in a list.
BANA: 1-3 format. The first line begins at cell 1. Runover lines begin at cell 3. This is the inverse of paragraph indentation. 1 blank line before the first item in a list, 1 blank line after the last item, and no blank lines between items.
<li>First item in the list</li> <li>Second item in the list</li>
<ul>...</ul> and <ol>...</ol>List Containers — Unordered and ordered lists.
Wrap <li> items in <ul> (unordered/bullet) or <ol> (ordered/numbered) to group them. Nesting lists inside other lists adds 2 cells of indentation per nesting level. For example, a nested list item uses 3-5 format (first line cell 3, runover cell 5) instead of 1-3.
<ul> <li>Apples</li> <li>Oranges</li> </ul>
Blockquote
<aside>...</aside>Blockquote / Aside — Quoted or offset material.
BANA: Displayed material at cell 3. Both the first line and runover lines begin at cell 3. 1 blank line before and after. Used for quoted passages, excerpts, and material that should be visually set apart from the main text.
<aside>To be, or not to be, that is the question.</aside>
Math Block
<mathblock>...</mathblock>Display Math — A standalone math expression on its own line.
Content is preserved verbatim with no line wrapping. Internal newlines within the block are maintained. The math expression is translated using the selected math notation (Nemeth Code or UEB Math). Use this for equations, formulas, or any mathematical expression that should appear on its own line.
<mathblock>x = (-b ± √(b² - 4ac)) / 2a</mathblock>
Inline Tags (Within Text)
Inline tags modify text within a paragraph or other block element. They do not create new lines or affect indentation. In braille, they insert the appropriate indicators (e.g., bold typeform indicators for <strong>).
<strong>...</strong>Ctrl+BBold — Strongly emphasized text.
In braille, bold text is indicated with typeform indicators. In UEB, this uses the bold word indicator (dots 45-456) before the word and the bold terminator after. For passages of bold text, a bold passage indicator is used at the start and a terminator at the end.
<p>This is <strong>important</strong> text.</p>
<em>...</em>Ctrl+IItalic / Emphasis — Emphasized text.
In braille, italics are indicated with typeform indicators. In UEB, this uses the italic word indicator (dots 46-456) before the word. For passages of italic text, an italic passage indicator is used. Italics are commonly used for book titles, foreign words, and emphasis.
<p>She read <em>To Kill a Mockingbird</em> last summer.</p>
<math>...</math>Ctrl+MInline Math — A math expression within running text.
The expression is translated using the selected math notation (Nemeth Code or UEB Math). In Nemeth, math is surrounded by Nemeth opening and closing indicators. In UEB Math, the expression uses UEB's technical symbols. Use this for variables, short equations, or any mathematical content that appears within a sentence.
<p>The formula <math>a² + b² = c²</math> is the Pythagorean theorem.</p>
BANA Formatting Rules Summary
BANA (Braille Authority of North America) rules determine how each element is positioned on the braille page. BWTA applies these rules automatically based on your tags. The key concept is cell position: cell 1 is the leftmost position on the line, cell 2 is one space in, and so on.
| Element | First Line | Runover | Blank Before | Blank After | Notes |
|---|---|---|---|---|---|
| Heading 1 | Centered | Cell 1 | 1 | 1 | Min 3-cell margin each side |
| Heading 2 | Cell 5 | Cell 5 | 1 | 0 | |
| Headings 3–6 | Cell 7 | Cell 7 | 1 | 0 | All share same format |
| Paragraph | Cell 3 | Cell 1 | 0 | 0 | 3-1 indented format |
| List item | Cell 1 | Cell 3 | 0 | 0 | 1-3 format; +2 per nesting level |
| Blockquote | Cell 3 | Cell 3 | 1 | 1 | Displayed material |
| Math block | Cell 1 | No wrap | 0 | 0 | Verbatim, no line wrapping |
“First Line” is where the first line of the element starts. “Runover” is where continuation lines start when the content wraps to the next line. “Blank Before/After” is the number of blank lines inserted around the element.
Control Codes
Control codes give you precise control over translation and layout beyond what tags provide. They use the syntax @{code}. Some codes are standalone (single code), and some are block codes that require an opening and closing pair.
Syntax:
- Standalone:
@{code}— e.g.,@{pg}for a page break - With arguments:
@{code:arg}— colon separates numbered arguments, e.g.,@{sk:2}to skip 2 lines - With text argument:
@{code~text}— tilde introduces text, e.g.,@{db~HELLO}for direct braille - Block pair:
@{code}...@{/code}— e.g.,@{g1}text@{/g1}for a Grade 1 passage - Escape:
@@{— produces a literal@{in the output
How to insert: Click the Braille codes button in the toolbar to open the code menu, or right-click and choose Insert Code to search all available codes. You can also type codes directly.
Translation Control Codes
Translation codes affect how text is converted to braille. They control contraction grade, capitalization, and allow you to insert braille directly.
Grade Control
Override the document's default braille grade for specific passages. Useful when part of a Grade 2 document needs to be spelled out letter-by-letter.
@{g1}...@{/g1}Grade 1 Passage — Translate the enclosed text in Grade 1 (uncontracted). Each letter is represented individually with no contractions. Use this for spelling words out, abbreviations, or technical text that should not be contracted.
<p>The acronym @{g1}NASA@{/g1} stands for...</p>@{g2}...@{/g2}Grade 2 Passage — Translate the enclosed text in Grade 2 (contracted). Use this to insert contracted passages within a Grade 1 document.
Contraction Control
@{nc}No Contract — Prevent contraction at this specific point. Inserted before a word or between characters where a contraction would normally occur but is incorrect. This is a point-of-use override, unlike Grade 1 passages which affect entire blocks of text.
<p>The prefix @{nc}dis appears in many words.</p>Transcriber Notes
@{tn}...@{/tn}Transcriber Note — Add a note from the transcriber that is not part of the original text. In braille, transcriber notes are enclosed in transcriber-note indicators so the reader knows the content was added by the transcriber. Use this to describe images, explain formatting that doesn't translate to braille, or add clarifying context.
<p>@{tn}The following diagram shows a bar chart.@{/tn}</p>Direct Braille
@{db~braille}Direct Braille — Insert braille characters directly without translation. The text after the tilde is placed into the output as-is, bypassing the translation engine entirely. Use this when you need to insert specific braille dot patterns that the translator cannot produce, or to override the translation for a specific word or phrase.
@{db~⠓⠑⠇⠇⠕}Layout Control Codes
Layout codes affect how the braille is arranged on the page — line breaks, page breaks, indentation, centering, and alignment.
Page & Line Breaks
@{pg}Page Break — Force the content that follows to begin on a new braille page. Use this at the start of new chapters, major sections, or anywhere a page break is required. The page break appears in the BRF output as a form feed character.
@{nl}New Line — Force a hard line break at this point. Unlike normal line wrapping (which BWTA handles automatically based on page width), this creates an explicit break. Use sparingly — in most cases, structural tags handle line breaks correctly.
@{sk:N}Skip Lines — Insert N blank lines at this point. For example, @{sk:2} inserts 2 blank lines. Use this to add extra vertical space between sections when the automatic BANA spacing is not sufficient.
Indentation
@{ind:P}Indent to Cell — Override the indentation for the following segment. P is the cell position (1-based). For example, @{ind:5} starts the text at cell 5. This overrides the default BANA indentation for that element.
@{ind:P:R}Indent with Runover — Set both the first-line cell position (P) and the runover cell position (R). For example, @{ind:5:3} starts the first line at cell 5 and continuation lines at cell 3. This is how you create custom indentation patterns beyond the standard BANA formats.
Centering & Alignment
@{ctr}...@{/ctr}Center Text — Center the enclosed text on the braille line. The text is horizontally centered with equal space on both sides, with a minimum margin of 3 cells. If the text is too long to center, it wraps starting at cell 1. Heading 1 is centered by default; use this code to center other elements like title pages or dedication text.
@{ctr}
<p>Dedicated to my family</p>
@{/ctr}@{fr}Flush Right — Align the following text to the right margin of the braille line. Used for dates, page references, or any content that should appear at the far right of the line.
Syntax Highlighting in the Editor
The Format pane uses color-coded syntax highlighting to help you identify tags and codes:
- Blue — Structure tags (
<h1>,<p>,<strong>,<em>,<li>, etc.) - Purple — Math tags (
<math>,<mathblock>) - Amber — Control codes (
@{pg},@{g1},@{nl}, etc.)
The toolbar buttons also highlight in blue when the cursor is inside an active tag, making it easy to see which formatting is applied at the current position.
Complete Example
Here is a complete example showing a variety of tags and codes in a single document:
<h1>The Solar System</h1>
<h2>Introduction</h2>
<p>The solar system consists of the Sun and everything that orbits it, including <strong>eight planets</strong>, their moons, and smaller objects.</p>
<p>The planets, in order from the Sun, are:</p>
<ul>
<li>Mercury</li>
<li>Venus</li>
<li>Earth</li>
<li>Mars</li>
<li>Jupiter</li>
<li>Saturn</li>
<li>Uranus</li>
<li>Neptune</li>
</ul>
<h2>Earth</h2>
<p>Earth is the third planet from the Sun and the only known planet to support life. Its distance from the Sun is approximately <math>1.496 × 10^8</math> km.</p>
<aside>Earth is sometimes called the "Blue Marble" because of how it looks from space.</aside>
<p>@{tn}The following section includes a diagram not shown in braille.@{/tn}</p>
@{pg}
<h1>Chapter Two</h1>
<p>The force of gravity is described by the equation:</p>
<mathblock>F = G(m₁m₂) / r²</mathblock>This example demonstrates headings (h1, h2), paragraphs, bold text, an unordered list, inline math, a blockquote, a transcriber note, a forced page break, and a display math block.
Quick Reference
All Tags
| Tag | Shortcut | Type | Purpose |
|---|---|---|---|
| <h1> | Ctrl+1 | Block | Level 1 heading (centered) |
| <h2> | Ctrl+2 | Block | Level 2 heading (cell 5) |
| <h3>–<h6> | Ctrl+3–6 | Block | Level 3–6 heading (cell 7) |
| <p> | Ctrl+P | Block | Paragraph (3-1 format) |
| <li> | Ctrl+L | Block | List item (1-3 format) |
| <ul> / <ol> | — | Block | List container (unordered / ordered) |
| <aside> | — | Block | Blockquote (cell 3, displayed material) |
| <mathblock> | — | Block | Display math (verbatim, no wrap) |
| <strong> | Ctrl+B | Inline | Bold text |
| <em> | Ctrl+I | Inline | Italic / emphasis |
| <math> | Ctrl+M | Inline | Inline math expression |
Common Control Codes
| Code | Type | Purpose |
|---|---|---|
| @{pg} | Layout | Force page break |
| @{nl} | Layout | Force new line |
| @{sk:N} | Layout | Skip N blank lines |
| @{ind:P} | Layout | Indent to cell P |
| @{ind:P:R} | Layout | Indent first line to P, runover to R |
| @{ctr}...@{/ctr} | Layout | Center text |
| @{fr} | Layout | Flush right alignment |
| @{g1}...@{/g1} | Translation | Grade 1 (uncontracted) passage |
| @{g2}...@{/g2} | Translation | Grade 2 (contracted) passage |
| @{nc} | Translation | Prevent contraction at this point |
| @{tn}...@{/tn} | Translation | Transcriber note |
| @{db~text} | Translation | Direct braille (no translation) |