Bug: CJK composition broken in android firefox
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23.9k
- Forks
- 2.2k
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 61
Description
Lexical version: the version in lexical playground (the playground does not show what version it uses)
## Steps To Reproduce
1. install android firefox
2. go to https://playground.lexical.dev
3. with android's default keyboard, type CJK letters (korean) that is composable (e.g 안녕하세요)
Link to code example:
reproducible in https://playground.lexical.dev
https://github.com/facebook/lexical/assets/54838975/5a8e7ef5-f0d5-4599-aca3-f47239fe5b91
https://github.com/facebook/lexical/assets/54838975/cff843f0-3da6-47a2-b608-077ce5cce897
## The current behavior
composable words (e.g 안) are not correctly composed (e.g ㅇㅏㄴ).
## The expected behavior
they are composed correctly. on android chrome and mac firefox, lexical worked correctly.
## Impact of fix
- it is almost guaranteed to happen when typing fast.
- this prevents CJK users using android firefox from typing text in lexical.
- in rough estimation, around 6000000 users might be affected. ((china: 1.4 billion, japan: ~120 million, korea: ~51 million) * [android users (72%)](https://gs.statcounter.com/os-market-share/mobile/worldwide) * [firefox user (0.53%)](https://gs.statcounter.com/browser-market-share/mobile/worldwide) = 5994936)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue at playground.lexical.dev in Android Firefox with Android's default keyboard, typing fast Korean or other composable CJK text. Compare the behavior with Android Chrome and macOS Firefox. Done means composable text is produced correctly rather than separated characters such as ㅇㅏㄴ.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100