Skip to content

East Asian Ambiguous Width

Category: unicode · Baseline: unicode · Tags: Unicode · Specification ↗

Characters with East_Asian_Width=Ambiguous (e.g., Greek letters, mathematical symbols, box-drawing characters) have context-dependent width. In CJK contexts they're typically rendered as wide (2 cells), in Western contexts as narrow (1 cell). Terminal width calculation must match the terminal's rendering.
How this is testedautomated
Write an Ambiguous-width character (e.g., U+00A7 Section Sign), measure cursor displacement.

The same probe runs against headless backends (via Termless) and real terminal apps (via a daemon launched in each terminal). This lets us distinguish parser correctness from rendering correctness.

Analysis2026-04-06

Supported by all 12 tested terminals — universal adoption. Part of the Unicode baseline.

Supported by 13 of 14 backends (93%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yeswidth=1 (ambiguous chars vary by terminal/locale)
Ghostty1.3.1✓ yeswidth=1 (ambiguous chars vary by terminal/locale)
VS Code✓ yes
Warp✓ yes
Cursor✓ yes
Terminal.app✓ yes

Headless Backends

Parser correctness only — a means the parser accepts the sequence.

BackendVersionSupportNotes
Alacritty0.26.0✓ yes
Kitty0.40.0✓ yes
vt100.js0.2.1✓ yes
vterm0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes