Skip to content

[Chrome, Android] The Hangul composition breaks on the first character when the placeholder is visible #5989

@mugglim

Description

@mugglim

Description

Hangul is the Korean alphabet.

When using a Korean IME with Chrome on Android, the first character does not compose correctly.
Instead of combining consonant and vowel inputs into a single syllable, they are inserted as separate characters.

Recording

example.mp4

Sandbox

Reproducible on the official Plain Text example: https://www.slatejs.org/examples/plaintext

Steps

  1. Clear all content from the editor.
  2. Using a Korean IME, enter the characters in the following order:
    • "ㅇ" → "ㅏ" → "ㅇ" → "ㅏ"
  3. Ensure that the first "ㅇ" and "ㅏ" do not composed into "아" and remain as separate characters.

Expectation

The characters “ㅇ” and “ㅏ” are composed into “아”

Environment

  • Slate Version: 0.120.0
  • Operating System: Android 15
  • Browser: Chrome

Context

This issue seems to be related to placeholder rendering with IME composition.

This issue no longer occurs when an empty placeholder renderer is passed to the Editable component.

const customRenderPlaceholder = () => {
   return <></>
}

<Editable renderPlaceholder ={customRenderPlaceholder} />

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions