facebook / facebook/lexical

Bug: CJK composition broken in android firefox

Open
#6,377 0 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

composition
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.