Add furigana above Japanese kanji
Learners and editors often need hiragana readings above kanji. This annotator wraps your text in standard HTML ruby markup, placing furigana above each recognized kanji or compound so the preview reads like a graded reader.
How it works
The text is scanned for the longest dictionary match first, then single kanji:
日本語 → <ruby>日本<rt>にほん</rt></ruby><ruby>語<rt>ご</rt></ruby>
- Multi-kanji compound words in the table are matched before single kanji, so common words get their correct combined reading.
- Recognized kanji are wrapped in a
rubyelement with anrtreading. - Hiragana, katakana, punctuation, and unknown kanji pass through unchanged.
Notes and limitations
Japanese kanji are highly polyphonic — 生 alone has many readings (せい, しょう, い, う, なま, き) chosen by the surrounding word — so a lookup table cannot be perfect. The annotator prefers compound-word matches to reduce errors and shows the most common reading otherwise. Treat the output as a strong draft and proofread anything important. All processing happens in your browser.
Why furigana and ruby markup matter
Furigana serve several practical purposes beyond learner support:
- Accessibility — screen readers can surface the pronunciation rather than guessing, which is especially helpful for less common kanji.
- Publishing and print — children’s books, news sources aimed at general readers (such as NHK Web Easy), and manga routinely use furigana so that unfamiliar characters do not interrupt reading flow.
- Web and e-learning — blog authors, Japanese-language apps, and digital textbooks use the HTML
rubyelement so the annotation renders correctly in all modern browsers without a plugin.
The HTML ruby element is supported in all modern browsers. The markup this tool produces looks like:
<ruby>日本<rt>にほん</rt></ruby><ruby>語<rt>ご</rt></ruby>
Browsers render the rt text in a smaller font directly above the base kanji. If you need it to degrade gracefully in very old environments, you can add an rp fallback (parentheses around the reading), though modern browsers make this unnecessary.
Practical usage tips
For learners writing study materials: paste an entire sentence — the tool handles mixed text (kanji alongside hiragana, katakana, and punctuation) and only annotates the kanji portions, leaving the rest untouched.
For content editors: after generating the ruby markup, paste it into your HTML or CMS. Most rich-text editors that allow raw HTML will render the annotations in preview.
Checking the output: the most common error source is context-dependent readings. For example, 日 reads にち in 日曜日 (Sunday) but にほん in 日本 (Japan). The tool handles common compounds, but if a compound is absent from the built-in table, it falls back to the most frequent single-character reading — which may differ from the correct contextual one. A quick read-through catches the vast majority of these cases.
What to do with unannotated kanji: rare or specialist characters that are not in the table pass through unchanged. You can annotate these manually using the same ruby syntax — for example <ruby>麒麟<rt>きりん</rt></ruby> — and paste the result back into your document.