🔣 Symbol Reference

Braille Pattern Characters

Unicode's Braille Patterns block (U+2800–U+28FF) encodes all 256 possible combinations of the 8-dot braille cell, enabling braille text to be represented in digital form. This guide explains how Unicode Braille patterns work, how they map to braille cells, and their role in assistive technology.

·

The Unicode Braille Patterns block (U+2800--U+28FF) encodes all 256 possible combinations of the eight-dot braille cell, creating a complete digital representation of the braille writing system used by millions of visually impaired people worldwide. Unlike most Unicode blocks that encode specific characters with fixed meanings, the Braille Patterns block encodes the dot patterns themselves -- the meaning of each pattern depends on the braille code being used (English Braille, French Braille, Japanese Braille, etc.). This guide explains how Unicode braille works, how the encoding maps to physical dot positions, and how these characters serve accessibility and beyond.

How Braille Works

The Braille Cell

Braille is a tactile writing system invented by Louis Braille in 1824. Each braille character is a cell containing up to six or eight raised dots arranged in a grid:

6-dot cell:        8-dot cell:
 1 4                1 4
 2 5                2 5
 3 6                3 6
                    7 8

The six-dot cell (the original system) provides 64 possible combinations (2^6 = 64), including the empty cell. The eight-dot cell (used in computer braille and some modern systems) provides 256 combinations (2^8 = 256).

Dots are numbered by column, top to bottom: dots 1-2-3 form the left column, dots 4-5-6 form the right column, and dots 7-8 (in 8-dot braille) form the bottom row.

Braille Grades

English Braille has two main grades:

Grade Description Example
Grade 1 (Uncontracted) Letter-by-letter transcription "the" = ⠞⠓⠑ (t-h-e)
Grade 2 (Contracted) Abbreviations and contractions "the" = ⠮ (single cell)

Grade 2 is the standard for published braille in English-speaking countries. It uses approximately 180 contractions and short-form words to reduce the bulk of braille text, which is important because braille takes significantly more physical space than print.

Unicode Braille Encoding

The Block: U+2800--U+28FF

Unicode encodes braille as abstract dot patterns, not as letters or words. Each of the 256 code points represents one specific combination of raised dots in an 8-dot cell.

The encoding uses a binary mapping where each dot position corresponds to a bit:

Dot Position Bit Value Hex
Dot 1 Top-left 0x01 1
Dot 2 Middle-left 0x02 2
Dot 3 Bottom-left 0x04 4
Dot 4 Top-right 0x08 8
Dot 5 Middle-right 0x10 16
Dot 6 Bottom-right 0x20 32
Dot 7 Below-left 0x40 64
Dot 8 Below-right 0x80 128

The code point for any braille pattern is:

U+2800 + (sum of bit values for raised dots)

Examples

Pattern Raised Dots Calculation Code Point Character
Dot 1 only 1 0x2800 + 0x01 U+2801
Dots 1, 2 1, 2 0x2800 + 0x01 + 0x02 U+2803
Dots 1, 4 1, 4 0x2800 + 0x01 + 0x08 U+2809
Dots 1, 2, 3 1, 2, 3 0x2800 + 0x01 + 0x02 + 0x04 U+2807
All 6 dots 1--6 0x2800 + 0x3F U+283F
All 8 dots 1--8 0x2800 + 0xFF U+28FF
Empty cell none 0x2800 + 0x00 U+2800

The empty braille pattern U+2800 (BRAILLE PATTERN BLANK) is notable -- it represents a braille cell with no raised dots and functions as a braille space character.

English Braille Alphabet

The first ten letters of Grade 1 English Braille use dots 1-2-4-5 only (the top four positions):

Letter Dots Code Point Character
a 1 U+2801
b 1, 2 U+2803
c 1, 4 U+2809
d 1, 4, 5 U+2819
e 1, 5 U+2811
f 1, 2, 4 U+280B
g 1, 2, 4, 5 U+281B
h 1, 2, 5 U+2813
i 2, 4 U+280A
j 2, 4, 5 U+281A

Letters k--t add dot 3 to the a--j patterns. Letters u--z (except w) add dots 3 and 6. The letter w (⠺, dots 2-4-5-6) breaks the pattern because the original French alphabet did not include w -- Louis Braille was French, and w was added later.

Working with Braille in Code

Python: Text to Braille

# Grade 1 English Braille mapping (lowercase a-z)
BRAILLE_ALPHA = {
    "a": "\u2801", "b": "\u2803", "c": "\u2809", "d": "\u2819",
    "e": "\u2811", "f": "\u280B", "g": "\u281B", "h": "\u2813",
    "i": "\u280A", "j": "\u281A", "k": "\u2805", "l": "\u2807",
    "m": "\u280D", "n": "\u281D", "o": "\u2815", "p": "\u280F",
    "q": "\u281F", "r": "\u2817", "s": "\u280E", "t": "\u281E",
    "u": "\u2825", "v": "\u2827", "w": "\u283A", "x": "\u282D",
    "y": "\u283D", "z": "\u2835", " ": "\u2800",
}

def text_to_braille(text):
    return "".join(BRAILLE_ALPHA.get(c, c) for c in text.lower())

print(text_to_braille("hello world"))
# ⠓⠑⠇⠇⠕⠀⠺⠕⠗⠇⠙

Python: Dot Pattern Calculation

def dots_to_braille(*dots):
    # Convert dot numbers (1-8) to a braille character
    bit_map = {1: 0x01, 2: 0x02, 3: 0x04, 4: 0x08,
               5: 0x10, 6: 0x20, 7: 0x40, 8: 0x80}
    value = sum(bit_map[d] for d in dots)
    return chr(0x2800 + value)

def braille_to_dots(char):
    # Convert a braille character to its dot numbers
    offset = ord(char) - 0x2800
    bit_map = {0x01: 1, 0x02: 2, 0x04: 3, 0x08: 4,
               0x10: 5, 0x20: 6, 0x40: 7, 0x80: 8}
    return [dot for bit, dot in sorted(bit_map.items()) if offset & bit]

print(dots_to_braille(1, 2, 4))  # ⠋ (letter f)
print(braille_to_dots("⠋"))      # [1, 2, 4]

JavaScript: Braille Encoder

function dotsToBraille(...dots) {
    const bitMap = {1:0x01, 2:0x02, 3:0x04, 4:0x08,
                    5:0x10, 6:0x20, 7:0x40, 8:0x80};
    const value = dots.reduce((sum, d) => sum + bitMap[d], 0);
    return String.fromCodePoint(0x2800 + value);
}

console.log(dotsToBraille(1, 2, 4)); // ⠋

Braille Art

The 256 braille patterns have been repurposed as a pixel-art medium. Because each 8-dot braille cell can represent a 2x4 grid of on/off dots, braille characters can render low-resolution images in plain text terminals. Libraries like Python's drawille use this technique:

# Each braille character is a 2-wide x 4-tall pixel block
# Full block: dots 1-2-3-4-5-6-7-8 = U+28FF = ⣿
# This creates text-art with 2x4 subpixel resolution

# Example: a simple horizontal line
line = "\u28FF" * 20  # 20 full blocks = 40 pixels wide
print(line)
# ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿

This "braille art" technique is popular in terminal dashboards (like asciimatics and blessed) for rendering graphs, charts, and even images at higher resolution than traditional block characters allow.

Accessibility Considerations

Screen Readers and Braille Displays

Unicode braille characters interact with assistive technology in important ways:

  1. Refreshable braille displays can render Unicode braille patterns directly by raising the physical dots that correspond to each character's bit pattern.

  2. Screen readers may read Unicode braille characters as their dot numbers (e.g., "dots 1-2-4") rather than their Grade 2 English interpretation. This is because the Unicode characters represent patterns, not letters -- the mapping from pattern to letter depends on the braille code and context.

  3. Braille translation software (like JAWS, NVDA, or LibLouis) performs the actual translation between print text and braille. These tools work at a higher level than Unicode code points.

When to Use Unicode Braille

Use Case Recommendation
Representing braille visually (sighted audience) Unicode braille characters are appropriate
Providing braille content for blind readers Use braille translation software, not raw Unicode
Terminal art and data visualization Unicode braille characters work well
Educational content about braille Unicode characters are excellent for illustration
Accessibility compliance Follow WCAG guidelines; Unicode braille is not a substitute for proper alt text

Important Caveat

Unicode braille characters are visual representations of braille cells. They are not a replacement for proper braille translation. Converting English text to Unicode braille using a simple letter-by-letter lookup (as in the code example above) produces Grade 1 braille, which is not the standard for published material. Proper Grade 2 translation requires handling hundreds of contraction rules and is best done by dedicated braille translation libraries like LibLouis.

The Full 256-Pattern Grid

The complete set of 8-dot braille patterns forms a 16x16 grid when arranged by code point:

U+2800: ⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏
U+2810: ⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟
U+2820: ⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯
U+2830: ⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿
U+2840: ⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏
U+2850: ⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟
U+2860: ⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯
U+2870: ⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿
U+2880: ⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏
U+2890: ⢐⢑⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜⢝⢞⢟
U+28A0: ⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯
U+28B0: ⢰⢱⢲⢳⢴⢵⢶⢷⢸⢹⢺⢻⢼⢽⢾⢿
U+28C0: ⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏
U+28D0: ⣐⣑⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜⣝⣞⣟
U+28E0: ⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯
U+28F0: ⣰⣱⣲⣳⣴⣵⣶⣷⣸⣹⣺⣻⣼⣽⣾⣿

This grid demonstrates the binary encoding: the first 64 characters (U+2800--U+283F) cover all 6-dot patterns, and the remaining 192 add dots 7 and 8 in all combinations.

Unicode braille patterns serve as a bridge between the tactile world of braille literacy and the digital world of text processing. Whether used for accessibility, education, terminal art, or data visualization, these 256 characters encode a complete writing system in a mathematically elegant binary framework.

Lainnya di Symbol Reference

Complete Arrow Symbols List

Unicode contains hundreds of arrow symbols spanning simple directional arrows, double arrows, …

All Check Mark and Tick Symbols

Unicode provides multiple check mark and tick symbols ranging from the classic …

Star and Asterisk Symbols

Unicode includes a rich collection of star shapes — from the simple …

Heart Symbols Complete Guide

Unicode contains dozens of heart symbols including the classic ♥, black and …

Currency Symbols Around the World

Unicode's Currency Symbols block and surrounding areas contain dedicated characters for over …

Mathematical Symbols and Operators

Unicode has dedicated blocks for mathematical operators, arrows, letterlike symbols, and alphanumeric …

Bracket and Parenthesis Symbols

Beyond the ASCII parentheses and square brackets, Unicode includes angle brackets, curly …

Bullet Point Symbols

Unicode offers a wide variety of bullet point characters beyond the standard …

Line and Box Drawing Characters

Unicode's Box Drawing block contains 128 characters for drawing lines, corners, intersections, …

Musical Note Symbols

Unicode includes musical note symbols such as ♩♪♫♬ in the Miscellaneous Symbols …

Fraction Symbols Guide

Unicode includes precomposed fraction characters for common fractions like ½ ¼ ¾ …

Superscript and Subscript Characters

Unicode provides precomposed superscript and subscript digits and letters — such as …

Circle Symbols

Unicode contains dozens of circle symbols including filled circles, outlined circles, circles …

Square and Rectangle Symbols

Unicode includes filled squares, outlined squares, small squares, medium squares, dashed squares, …

Triangle Symbols

Unicode provides a comprehensive set of triangle symbols in all orientations — …

Diamond Symbols

Unicode includes filled and outline diamond shapes, lozenge characters, and playing card …

Cross and X Mark Symbols

Unicode provides various cross and X mark characters including the heavy ballot …

Dash and Hyphen Symbols Guide

The hyphen-minus on your keyboard is just one of Unicode's many dash …

Quotation Mark Symbols Complete Guide

Unicode defines typographic quotation marks — curly quotes — for dozens of …

Copyright, Trademark & Legal Symbols

Unicode includes dedicated characters for the copyright symbol ©, registered trademark ®, …

Degree and Temperature Symbols

The degree symbol ° (U+00B0) and dedicated Celsius ℃ and Fahrenheit ℉ …

Circled and Enclosed Number Symbols

Unicode's Enclosed Alphanumerics block provides circled numbers ①②③, parenthesized numbers ⑴⑵⑶, and …

Roman Numeral Symbols

Unicode includes a Number Forms block with precomposed Roman numeral characters such …

Greek Alphabet Symbols for Math and Science

Greek letters like α β γ δ π Σ Ω are widely …

Decorative Dingbats

The Unicode Dingbats block (U+2700–U+27BF) contains 192 decorative symbols originally from the …

Playing Card Symbols

Unicode includes a Playing Cards block with characters for all 52 standard …

Chess Piece Symbols

Unicode provides characters for all six chess piece types in both white …

Zodiac and Astrological Symbols

Unicode's Miscellaneous Symbols block includes the 12 zodiac signs ♈♉♊♋♌♍♎♏♐♑♒♓, planetary symbols, …

Geometric Shapes Complete Guide

Unicode's Geometric Shapes block contains 96 characters covering circles, squares, triangles, diamonds, …

Letterlike Symbols

The Unicode Letterlike Symbols block contains mathematical and technical symbols derived from …

Technical Symbols Guide

Unicode's Miscellaneous Technical block contains symbols from computing, electronics, and engineering, including …

Combining Characters and Diacritics Guide

Diacritics are accent marks and other marks that attach to letters to …

Whitespace and Invisible Characters Guide

Unicode defines dozens of invisible characters beyond the ordinary space, including zero-width …

Warning and Hazard Signs

Unicode includes warning and hazard symbols such as the universal caution ⚠ …

Weather Symbols Guide

Unicode's Miscellaneous Symbols block includes sun ☀, cloud ☁, rain ☂, snow …

Religious Symbols in Unicode

Unicode includes symbols for many of the world's major religions including the …

Gender and Identity Symbols

Unicode includes the traditional male ♂ and female ♀ symbols from astronomy, …

Keyboard Shortcut Symbols Guide

Apple's macOS uses Unicode characters for keyboard modifier keys such as ⌘ …

Symbols for Social Media Bios

Unicode symbols like ▶ ◀ ► ★ ✦ ⚡ ✈ and hundreds …