[Userscript] Vocab Reading Analyzer

Install Vocab Reading Analyzer
Open Framework installation
General script installation guide


Have you ever noticed that some vocabulary learning sessions are way harder than others? Sometimes you fly through the vocab and sometimes it’s a slog. I realized that (for me) it all depends on how many new or exceptional readings the items in the session have.

So this script analyzes the readings of new vocab on the lesson picker page and colors them according to different criteria, so that you can make better informed decisions on which vocab to learn in a particular session. Here’s what it looks like for me currently:


  • White: Kana-only vocab. You should know the reading!
  • Green: All kanji use the primary readings you encountered when learning the kanji. These should be really easy, you just need to remember the meaning.
  • Blue: At least one kanji uses a secondary reading, but you’ve seen that reading before. Probably still easy but different.
  • Yellow: A rendaku was found on a kanji (see notes below).
  • Red: This vocab has at least one new reading you haven’t seen before.

You can change these colors in the settings dialog.



It’s quite likely that I’m missing some rendaku rules. At the moment these rules are checked:

  • If the first “character” of the reading candidate is in the k, s, t or h row, try the rendaku’d version with dakuten or handakuten (for the h row)
  • If the last syllable of the reading candidate is a く or つ, try replacing it with っ.

This catches all the cases I can currently see in my lesson picker but there are probably more I need to add in the future. Please let me know if you find any!

Compound vocabulary with exceptional readings

This is best explained with an example: 絵文字 (= emoji) reads as えもじ. え matches 絵, じ matches 字, but も is not an accepted reading for 文. The closest matching reading would be もん. However, 文字 itself is a separate word with an exceptional reading. So in this case we’re simply combining two words (絵 and 文字) which in this case all have known readings. So this should be colored blue, but this case would be a lot of work to detect, so it’s colored red. (And the script doesn’t color based on vocabulary readings, but only based on kanji readings).

It’s better to expect a new reading and get a known one than the other way around though, and this case should also be quite rare.


I hope this is useful to you guys. Please let me know if you have any issues, feedback or feature requests in the comments.


1.2.3: Fix rendaku detection for single kana
1.2.2: Added ち suffix rendaku rule
1.2.1: Slightly tweaked default colors
1.2.0: Added settings dialog to change colors


This is a great idea!

The two things I would say could be improved is a) having a legend somewhere so you don’t have to come back to this page to remember what each color means (though it is intuitive to go from green to red), and b) making the colors and letters easier to read without having to select them. You can make the colors out but they’re faded, and blue and red on purple makes the words themselves hard to read… Is there a way to, say, add an unfaded border around the items and just have the purple saturate when clicked as it currently does. Maybe that’s actually really hard from a coding perspective, idk.

1 Like

Thanks for the feedback!

I first experimented with borders but I didn’t like the result, coloring the text looked much nicer.

But I think we can achieve both of your requests by adding a settings menu where you can choose your own colors. You can use that as a legend too then.

1 Like

1.2.0: Added settings dialog to change colors


I might tweak the default colors later but I currently don’t have examples of all types of vocab available, so I need to do that later.

1 Like

1.2.1: Slightly tweaked default colors

No functional changes

1 Like

1.2.2: Added ち suffix rendaku rule

1 Like

1.2.3: Fix rendaku detection for single kana