Case ce-0177-thai-ime-tone-mark-positioning-firefox · Scenario scenario-ime-combining-characters-composition

Thai IME tone mark and vowel positioning errors in Firefox

OS: Windows 11 Device: Desktop or Laptop Any Browser: Firefox 120.0 Keyboard: Thai (IME) Status: draft
ime composition thai combining-characters tone-marks firefox windows

Phenomenon

When composing Thai text with IME in a contenteditable element in Firefox on Windows, tone marks (ไม้เอก, ไม้โท, etc.) and vowel marks may not position correctly relative to base consonants. Combining characters may not render properly, resulting in Thai text that is difficult or impossible to read.

Reproduction example

  1. Create a contenteditable div.
  2. Switch to Thai IME.
  3. Type Thai text with tone marks and vowel marks (e.g., “สวัสดี”).
  4. Observe the positioning of tone marks and vowel marks.
  5. Check text rendering in different browsers.

Observed behavior

  • Tone marks may appear above or below the wrong character
  • Vowel marks may not combine correctly with consonants
  • Character ordering may be incorrect
  • Text may appear correct in DOM but render incorrectly visually
  • Backspace may not delete combining characters correctly

Expected behavior

  • Tone marks should position correctly relative to base consonants
  • Vowel marks should combine correctly with consonants
  • Character ordering should follow Thai writing rules
  • Visual rendering should match logical structure
  • Backspace should handle combining characters correctly

Impact

  • Thai text may be unreadable or difficult to read
  • Users cannot reliably input correct Thai text
  • Text may appear correct in one browser but wrong in another

Browser Comparison

  • Firefox: More issues with combining character positioning
  • Chrome: Generally better support for Thai composition
  • Safari: Rendering can be inconsistent

Notes and possible direction for workarounds

  • Validate Thai character composition after input
  • Check for proper combining character order
  • Monitor for visual rendering issues
  • Ensure proper font support for Thai characters
  • Consider text normalization (NFC) to fix combining character issues
Before
Hello สวัส
Thai composition in progress (สวัส)
After (Bug)
Hello สวัส
Tone mark position error or combining characters separated
vs
✅ Expected
Hello สวัสดี
Expected: Tone marks and vowel marks correctly combined

Browser compatibility matrix

This matrix shows which browser and OS combinations have documented cases for this scenario. The current case is highlighted. Click on a cell to view other cases.

Current case
Confirmed
Draft
No case documented

All variants (detailed table)

Complete list of all cases for this scenario with full environment details.

Case OS Device Browser Keyboard Status
ce-0177-thai-ime-tone-mark-positioning-firefox Windows 11 Desktop or Laptop Any Firefox 120.0 Thai (IME) draft
ce-0178-vietnamese-ime-diacritic-loss-chrome Windows 11 Desktop or Laptop Any Chrome 120.0 Vietnamese (IME) draft
ce-0180-hindi-ime-devanagari-conjuncts-chrome Windows 11 Desktop or Laptop Any Chrome 120.0 Hindi (IME - Devanagari) draft
ce-0206-russian-ime-cyrillic-composition-chrome Windows 11 Desktop or Laptop Any Chrome 120.0 Russian (IME - Cyrillic) draft

Playground for this case

Use the reported environment as a reference and record what happens in your environment while interacting with the editable area.

Reported environment
OS: Windows 11
Device: Desktop or Laptop Any
Browser: Firefox 120.0
Keyboard: Thai (IME)
Your environment
Sample HTML:
Event log
Use this log together with the case description when filing or updating an issue.
0 events
Interact with the editable area to see events here.

Comments & Discussion

Have questions, suggestions, or want to share your experience? Join the discussion below.