Global Developer Blog
Yomigana is a reading aid used in the Japanese language; it consists of smaller-sized syllabic characters (Kana or Romaji) printed beside an ideographic character (Kanji) to indicate its pronunciation.
There are conventions to positioning this reading aid beside the main text; in horizontal text, they are placed above the text, while in vertical text, they are placed to the right of the text, as illustrated below
Yomigana fonts are generally sized so that 2 Kana characters fit naturally over 1 Kanji. If more Kana are required; it is resolved by either adjusting the Yomigana by narrowing the Kana, or adjusting the Kanji by adding spaces around the Kanji.
Yomigana are most commonly used in text in children’s reading materials or for people who are learning to read Japanese, who may not the reading skills to recognize the Kanji, but can understand text written (phonetically in) Hiragana. In text aimed at proficient Japanese speakers, Yomigana may be used on a word written in uncommon Kanji. In Japan, by law, newspapers using uncommon Kanji must annotate them with Yomigana.
Microsoft Visual Studio International Feature Pack 2.0 contains a couple of East Asian language related controls, including Yomigana Framework; it is a Class Library that allows the string class to be annotated. It also contains generic versions of the annotation classes so that any object with IEnumerable can be annotated by instances of the string class or a generic type. In order to simplify the complex comparison with the annotated string, it also includes Comparer classes with various Japanese comparison options. It parses and outputs using the Interlinear Annotation characters from the Unicode standard (and the JIS X 4052 format). Microsoft Visual Studio International Feature Pack 2.0 is free of cost and available here.
Actually, there are similar reading aid systems in Chinese and Korean (although the usage of Hanja is limited in Korea nowadays). In Taiwan, the reading aid used is known as BoPoMoFo (Chinese phonetic symbol); while in mainland China Pinyin (Romanized symbol) is used.