monkeytypegame / monkeytypegame/monkeytype

Japanese input via IME produces 'errors' on every keystroke in test results

Open
#3,597 5 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
TypeScript
Stars
20.7k
Forks
3.3k
PR merge metrics
No merged PRs in 30d

Description

Did you clear cache before opening an issue?
  • I have cleared my cache
Is there an existing issue for this?
  • I have searched the existing issues
Does the issue happen when logged in?

Yes

Does the issue happen when logged out?

Yes

Does the issue happen in incognito mode when logged in?

Yes

Does the issue happen in incognito mode when logged out?

Yes

Account name

VanWeapon

Account config

No response

Current Behavior

After completing a test using Japanese Hiragana or Japanese Katakana as the language, and using an IME for the input method (I use google IME specifically) each keystroke seems to be counted as an error, even though it takes multiple keystrokes to produce a single non-vowel character when inputting via IME.

This results in a score which has a much poorer accuracy than expected, and makes it impractical to use the accuracy score measurement as a baseline to try and legitimately improve kana typing accuracy and wpm.

image

Expected Behavior

Errors should only be registered if the direct input characters do not match the conjoined character representation required to produce the kana output.

E.g. the hiragana character か "ka" requires 'k' and 'a' to be input before the IME transforms the character to か.
Vowels such as お "o" only require a single character, and seem to be marked as correct? unsure as it's hard to verify.

If the expected character is か then the system should not treat the corresponding direct input characters 'k' and 'a' as errors, and should instead treat other characters as errors.

This gets more complicated with characters like ぎょ "gyo" which can be legitimately typed as either "gyo" or "gixyo" where, using an IME, you can type the two characters separately, and "x" is used to denote that the next character should be the small version of the character you are about to type, in this case よ "yo".

However, since we are only talking about kana (hiragana and katakana) there is a fixed number of accepted inputs that are possible to produce a given kana character or group of characters, so these could be (theoretically) statically mapped, as opposed to kanji where you are essentially performing a fuzzy dictionary search each time you try to write a word.

Steps To Reproduce

Install and activate an IME, either microsoft IME or Google IME. Microsoft ime is probably easier to get up and running: How to install
Change test language to japanese hiragana or japanese katakana
Complete a time or word test
Review result and observe high number of errors in test results and low accuracy.

Environment
  • OS: Windows 10
  • Browser: Opera GX
  • Browser Version: 90.0.4480.117
Anything else?

I recognise this is probably not a high priority issue given low number of potential users, but wanted to raise it anyway for tracking.
If you want assistance building out a map of direct input > japanese characters I can help with that and provide you a mapping in whatever format you need.

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 with a Japanese Hiragana or Katakana test, an active Microsoft or Google IME, and the reported Windows environment. Trace the test input and result-counting entry points from the reproduction, then verify that valid IME composition keystrokes are not counted as errors while invalid input still is.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, internationalization
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.