์ผ€์ด์Šค ce-0005 ยท ์‹œ๋‚˜๋ฆฌ์˜ค scenario-caret-movement-with-emoji

Arrow keys skip over emoji in contenteditable

OS: macOS 14.0 ๊ธฐ๊ธฐ: Laptop MacBook Pro ๋ธŒ๋ผ์šฐ์ €: Chrome 120.0 ํ‚ค๋ณด๋“œ: US ์ดˆ์•ˆ
caretemojinavigation

์ด ํŽ˜์ด์ง€๋Š” ์•„์ง ๋ฒˆ์—ญ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค

ํ˜„์žฌ ์˜์–ด ์›๋ฌธ์„ ํ‘œ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒˆ์—ญ์— ๊ธฐ์—ฌํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Phenomenon

When using the left and right arrow keys in a contenteditable element that contains emoji, the caret sometimes jumps over entire emoji clusters instead of moving by a single visual position.

Reproduction example

  1. Focus the editable area.
  2. Type a short ASCII word.
  3. Insert one or more emoji characters (for example, from the macOS emoji picker).
  4. Use the left and right arrow keys to move the caret across the text and emoji.

Observed behavior

  • The caret jumps over emoji, landing either before or after the entire emoji cluster.
  • Intermediate caret positions inside the cluster are not reachable with arrow keys.

Expected behavior

  • The caret moves consistently across visual positions, or at least behaves in the same way as a native <textarea> in the same environment.

Notes

  • This behavior can affect selection granularity, especially when users try to select text around emoji.
  • Investigate how the browser defines caret positions for grapheme clusters in contenteditable compared to other editable controls.

์ด ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ๋ณ€ํ˜•

์ผ€์ด์Šค OS ๋ธŒ๋ผ์šฐ์ € ์ƒํƒœ
ce-0005 macOS 14.0 Chrome 120.0 ์ดˆ์•ˆ
ce-0025 Windows 11 Edge 120.0 ์ดˆ์•ˆ

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: macOS 14.0
Device: Laptop MacBook Pro
Browser: Chrome 120.0
Keyboard: US
Your environment

Use this editable area to reproduce the described case.

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.