Ruby characters or rubi characters (Japanese: ルビ; rōmaji: rubi; Korean: 루비; romaja: rubi) are small, annotative glosses that are usually placed above or to the right of logographic characters of languages in the East Asian cultural sphere, such as Chinese hanzi, Japanese kanji, and Korean hanja, to show the logographs' pronunciation; these were formerly also used for Vietnamese chữ Hán and chữ Nôm, and may still occasionally be seen in that context when reading archaic texts. Typically called just ruby or rubi, such annotations are most commonly used as pronunciation guides for characters that are likely to be unfamiliar to the reader.



Here is an example of Japanese ruby characters (called furigana) for Tokyo ("東京"):

Hiragana Katakana Romaji
(とう)(きょう) (トウ)(キョウ) ()(kyō)

Most furigana are written with the hiragana syllabary, but katakana and romaji are also occasionally used. Alternatively, sometimes foreign words (usually English) are printed with furigana to provide the meaning, and vice versa. Textbooks sometimes render on-readings with katakana and kun-readings with hiragana.

Here is an example of ruby characters for Beijing ("北京") in Zhuyin (a.k.a. Bopomofo), Xiao'erjing, and Pinyin.

Zhuyin Xiao'erjing Pinyin
(ㄅㄟˇ)(ㄐㄧㄥ) (ڭٍ)(بِی) (Běi)(jīng)

In Taiwan, the main syllabary used for Chinese ruby characters is Zhuyin fuhao (also known as Bopomofo); in mainland China pinyin is mainly used. Typically, unlike the example shown above, zhuyin is used with a vertical traditional writing and zhuyin is written on the right side of the characters. In mainland China, horizontal script is used and ruby characters (pinyin) are written above the Chinese characters.

Xiao'erjing is a Perso-Arabic alphabet, adopted by Hui Muslims and at times utilized as ruby characters in various manuscripts. This system does have its shortcomings, mainly that it has no way of indicating tones. With the spread of pinyin, the usage of this system has been in decline in the past decades. Most manuscripts that do mark the characters with Xiao'erjing, do so from right-to-left, which is quite unique, compared to other systems. This is because usually such manuscripts include Arabic texts such as the Quran, and the Chinese writing is the explanation or translation.

Books with phonetic guides (especially pinyin) are popular with children and foreigners learning Chinese.

Here is an example of the Korean ruby characters for Korea ("韓國"):

Hangul Romaja
()() (Han)(guk)

Romaja is normally used in foreign textbooks until Hangul is introduced. Ruby characters can be quite common on signs in certain parts of South Korea.

Here is an example of the Vietnamese ruby characters (Chữ Quốc Ngữ) for Hanoi ("河內"):

chữ Quốc ngữ
Chữ Hán characters are glossed with chữ Nôm and the Vietnamese alphabet.

Chinese characters and its derivations of it (chữ Hán and chữ Nôm) which was used by the Vietnamese have fallen out of use in favour of Latin-based script chữ Quốc ngữ during the French colonial period when it was made a part of compulsory education (1920s onwards). Currently still used by Gin people.[citation needed]



Ruby may be used for different reasons:

  • because the character is rare and the pronunciation unknown to many—personal name characters often fall into this category;
  • because the character has more than one pronunciation, and the context is insufficient to determine which to use;
  • because the intended readers of the text are still learning the language and are not expected to always know the pronunciation or meaning of a term;
  • because the author is using a nonstandard pronunciation for a character or a term

Also, ruby may be used to show the meaning, rather than pronunciation, of a possibly-unfamiliar (usually foreign) or slang word. This is generally used with spoken dialogue and applies only to Japanese publications. The most common form of ruby is called furigana or yomigana and is found in Japanese instructional books, newspapers, comics and books for children.

In Japanese, certain characters, such as the sokuon (促音) (little tsu, ) that indicates a pause before the consonant it precedes, are normally written at about half the size of normal characters. When written as ruby, such characters are usually the same size as other ruby characters. Advancements in technology now allow certain characters to render accurately.[clarification needed][1]

In Chinese, the practice of providing phonetic cues via ruby is rare, but does occur systematically in grade-school level text books or dictionaries. The Chinese have no special name for this practice, as it is not as widespread as in Japan. In Taiwan, it is known as "zhuyin", from the name of the phonetic system employed for this purpose there. It is virtually always used vertically, because publications are normally in a vertical format, and zhuyin is not as easy to read when presented horizontally.[citation needed] Where zhuyin is not used, other Chinese phonetic systems like pinyin are employed.

In academic settings, Vietnamese text written in chữ Hán or chữ Nôm may be glossed with chữ quốc ngữ ruby for modern readers.[2]

Sometimes interlinear glosses are visually similar to ruby, appearing above or below the main text in smaller type. However, this is a distinct practice used for helping students of a foreign language by giving glosses for the words in a text, as opposed to the pronunciation of lesser-known characters.

Ruby annotation can also be used in handwriting.


The Hunmin Jeongeum Eonhae uses hanja and small hangul for ruby to the lower-right of the hanja characters.

In British typography, ruby was originally the name for type with a height of 5.5 points, which printers used for interlinear annotations in printed documents. In Japanese, rather than referring to a font size, the word became the name for typeset furigana. When transliterated back into English, some texts rendered the word as rubi, (a typical romanisation of the Japanese word ルビ, instead of ルビー (rubī), the expected transliteration of ruby). However, the spelling "ruby" has become more common since the W3C published a recommendation for ruby markup. In the US, the font size had been called "agate", a term in use since 1831 according to the Oxford English Dictionary.

HTML markup


In 2001, the W3C published the Ruby Annotation specification[1] for supplementing XHTML with ruby markup. Ruby markup is incorporated into the XHTML 1.1 specification and in HTML5.[3]

For browsers that do not support Ruby natively, Ruby support is most easily added by using CSS rules that are available on the web.[4]

Ruby markup is structured such that a fallback rendering, consisting of the ruby characters in parentheses immediately after the main text, appears if the browser does not support ruby.

The W3C is also working on a specific ruby module for CSS level 2, which additionally allows the grouping of ruby and automatic omission of furigana matching their annotated part.[5]

Markup examples


Below are a few examples of ruby markup. The markup is shown first, and the rendered markup is shown next, followed by the unmarked version. Web browsers either render it with the correct size and positioning as shown in the table-based examples above, or use the fallback rendering with the ruby characters in parentheses:

XHTML CSS level 2[5]
東京 <rp>(</rp> <rt>とうきょう</rt><rp>)</rp>

東京( とうきょう)

(ㄅㄟˇ) (ㄐㄧㄥ)

By default, the code above will come to the effect below. To achieve this effect, you may need further CSS styling.

Unmarked 東京(とうきょう) 北(ㄅㄟˇ)京(ㄐㄧㄥ) 振り仮名(ふりがな)

Note that Chinese ruby text would normally be displayed in vertical columns to the right of each character. This approach is not typically supported in browsers at present.

This is a table-based example of vertical columns:


Complex ruby markup


Complex ruby markup makes it possible to associate more than one ruby text with a base text, or parts of ruby text with parts of base text.[6]



Unicode and its companion standard, the Universal Character Set, support ruby via these interlinear annotation characters:[7]

  • Code point FFF9 (hex)—Interlinear annotation anchor—marks start of annotated text
  • Code point FFFA (hex)—Interlinear annotation separator—marks start of annotating character(s)
  • Code point FFFB (hex)—Interlinear annotation terminator—marks end of annotated text

Few applications implement these characters. Unicode Technical Report #20[8] clarifies that these characters are not intended to be exposed to users of markup languages and software applications. It suggests that ruby markup be used instead, where appropriate.

The interlinear annotation characters are part of the "Specials" Unicode block:

Official Unicode Consortium code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
1.^ As of Unicode version 15.1
2.^ Grey areas indicate non-assigned code points
3.^ Black areas indicate noncharacters (code points that are guaranteed never to be assigned as encoded characters in the Unicode Standard)



ISO/IEC 6429 (also known as ECMA-48) which defines the ANSI escape codes also provided a mechanism for ruby text for use by text terminals, although few terminals and terminal emulators implement it. The PARALLEL TEXTS (PTX) escape code accepted six parameter values giving the following escape sequences for marking ruby text:

  • CSI 0 \ (or simply CSI \ since 0 is used as the default value for this control) – end of parallel texts
  • CSI 1 \ – beginning of a string of principal parallel text
  • CSI 2 \ – beginning of a string of supplementary parallel text
  • CSI 3 \ – beginning of a string of supplementary Japanese phonetic annotation
  • CSI 4 \ – beginning of a string of supplementary Chinese phonetic annotation
  • CSI 5 \ – end of a string of supplementary phonetic annotations

See also



  1. ^ a b Marcin Sawicki; Michel Suignard; Masayasu Ishikawa; Martin Dürst; Tex Texin (2001-05-31). "Ruby Annotation". W3C Recommendation. World Wide Web Consortium. Retrieved 2007-02-14.
  2. ^ Lunde 2009, p. 529.
  3. ^ "W3C Ruby Markup Reference".
  4. ^ CSS Ruby Support Archived 2007-02-28 at the Wayback Machine—Works in all modern browsers
  5. ^ a b "CSS Ruby Annotation Layout Module Level 1". Retrieved 2021-03-03.
  6. ^ Complex ruby markup
  7. ^ "23.8 Specials: Annotation Characters". The Unicode Standard, Version 15.0 (PDF). Mountain View, CA: Unicode, Inc. September 2022.
  8. ^ Martin Dürst; Asmus Freytag (2007-05-16). "Unicode in XML and other Markup Languages". W3C and Unicode Consortium. Archived from the original on 2005-02-19. Retrieved 2018-03-23.

Further reading