Ruby characters (ルビ) are small, annotative glosses that can be placed above or to the right of a Chinese character when writing languages with logographic characters such as Chinese or Japanese to show the pronunciation. Typically called just ruby or rubi, such annotations are used as pronunciation guides for characters that are likely to be unfamiliar to the reader.
Most furigana (Japanese ruby characters) are written with the hiragana syllabary, but katakana and romaji are also occasionally used. Alternatively, sometimes foreign words (usually English) are printed with furigana implying the meaning, and vice-versa. Textbooks usually write on-readings with katakana and kun-readings with hiragana.
Here is an example of the Chinese ruby characters for Beijing ("北京"):
In Taiwan, the syllabary used for Chinese ruby characters is Zhuyin fuhao (also known as Bopomofo); in mainland China pinyin is used. Typically, 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.
Books with phonetic guides are popular with children and foreigners learning Chinese (especially pinyin).
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 and/or meaning of a term;
- because the author is using a nonstandard pronunciation for a character or a term—for example, comic books often employ ruby to emphasize dajare puns, as in Hana Yori Dango (rather than standard "Danshi" reading), and show both of the pronunciation and meaning, as in "One Piece" in One Piece (displayed by ruby character "Wan Piisu" ("One Piece") as the pronunciation and main character "Hitotsunagi no Daihihou" ("The Great Treasure of One Piece") as meaning).
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 (促音 tsu , 小さいつ literally "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.
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. Where zhuyin is not used, other Chinese phonetic systems like pinyin are employed.
Ruby characters are not usually used for word-for-word translations between languages, because all natural languages include idioms (where combinations of words have a different meaning than the individual words), the relationship of non-adjacent words is often hard to capture, and usually there is no exact and unique translation for a given word. There are also challenges if the original and translated languages have a different direction (e.g., English reads left to right, but Hebrew reads right to left). However, word-for-word translations are sometimes given as an aid to learning or study of the other language. A common example of this use involves the Christian Bible, which was originally written in Koine Greek, Hebrew, and some Aramaic. Few people can read these original languages proficiently. Thus, many publications of the Christian Bible in its original languages incorporate ruby text with word-by-word translations to another language, such as English, as an aid. Such documents are often termed interlinear documents (where the emphasis is on providing translated text "between the lines"), and often they also include a separate full translation of the text, rather than only using ruby characters, but, again, there are exceptions.
Ruby annotation can also be used in handwriting.
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 romanization of the Japanese word ルビ). 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", at least before the 1950s:
agate: An old name for a size of type slightly smaller than five and one-half points, … . Called ruby in England.
— Marjorie E. Skillin, et al., Words into Type, 1948, p. 538
HTML markup 
In 2001, the W3C published the Ruby Annotation specification for supplementing XHTML with ruby markup. Ruby markup is not a standard part of HTML 4.01 or any of the XHTML 1.0 specifications (XHTML-1.0-Strict, XHTML-1.0-Transitional, and XHTML-1.0-Frameset), but was incorporated into the XHTML 1.1 specification, and is expected to be a core part of HTML5 once the specification becomes finalised by the W3C.
||This section's factual accuracy may be compromised due to out-of-date information. (April 2011)|
Support for ruby markup in web browsers is limited, as XHTML 1.1 is not yet widely implemented. Ruby markup is partially supported by Microsoft Internet Explorer (5.0+) for Windows and Macintosh, supported by Chrome, but is not supported by Mozilla, Firefox (though see below), Konqueror or Opera. The WebKit nightly builds added support for Ruby HTML markup in January 2010. Safari has included support in version 5.0.6.
Ruby markup support can also be added to some browsers that support custom extensions. For example, an extension allows Netscape 7, Mozilla, and Firefox to properly render ruby markup under certain circumstances. This extension is freely available for users of these browsers.
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.
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:
<ruby> <rb>東</rb><rp>(</rp><rt>とう</rt><rp>)</rp> <rb>京</rb><rp>(</rp><rt>きょう</rt><rp>)</rp> </ruby>
<ruby> <rb>北</rb><rp>(</rp><rt>ㄅㄟˇ</rt><rp>)</rp> <rb>京</rb><rp>(</rp><rt>ㄐㄧㄥ</rt><rp>)</rp> </ruby>
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.
It is not supported by most browsers, but there is an extension for Firefox that supports it.
- 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 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.
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 
- Wikipedia:Manual of Style/China-related articles#Ruby characters, and Furigana (Japanese)
- Harakat – vocalised Arabic script diacritical marks that provide phonetic assistance for reading texts in Arabic.
- Niqqud – vocalised Hebrew script vowel pointings that provide phonetic assistance for reading Hebrew. (The Hebrew abjad represents only the consonants.)
- 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.
- "HTML5". Retrieved 15 October 2012.
- "Web Specifications supported in Opera". Retrieved 2007-11-05. "Opera supports XHTML 1.1 with these exceptions: (…) Ruby annotations are not supported"
- Roland Steiner (2010-01-20). "Ruby Rendering in WebKit". Surfin’ Safari. WebKit project. Retrieved 2010-01-21.
- The ruby element - HTML5 Doctor
- CSS Ruby Support—Works in all modern browsers
- XHTML Ruby Support Firefox extension
- Michel Suignard, Marcin Sawicki (2003-05-14). "CSS3 Ruby Module". W3C Candidate Recommendation. World Wide Web Consortium. Retrieved 2007-11-05.
- Complex ruby markup
- Martin Dürst, Asmus Freytag (2007-05-16). "Unicode in XML and other Markup Languages". W3C and Unicode Consortium.