A Ruby is part of an annotation pair - a piece of
text ("Ruby Text") that is associated with another piece of text known as
a "Ruby Base". A common need for such a structure arises in some asian
writing systems where a ruby association is used to present helper readings
for uncommonly used writing characters.
With a character set as complex as Chinese or Japanese, some characters are used
rarely and are thus not as easily recognizable by younger children or possibly
many adults. In Japanese writing, for example, the phonetic Hiragana alphabet
is used to pair phonetic 'helper' readings (called Furigana or Yomigana in
Japanese) with the Chinese character counterpart.
A Ruby text will usually be rendered next to the Base text such that the
association between each Base text and Ruby text is clear (often directly
above the Base text.) Ruby text is usually also rendered in a smaller font
than the Base text to help visually clarify which part is which in the
association relationship.
The RP element is a fall-back mechanism for browsers that do not understand
the Simple Ruby syntax. It should not be used in Complex Ruby markup. The
element semantically denotes content that will be used to clarify the
association between a simple RB/RT relationship. Content within the RP
element is hidden from browsers that support RUBY, for the express purpose
of allowing the insertion of delimiters surrounding RT content to make
the RB/RT relationship clear in non-supporting browsers. Although RP
stands for Ruby Parenthesis, any characters could be used as RP
content, as long as they assist in making this relationship clear.
Simple Rubies
Simple Rubies will often be the only type of annotation mechanism that most
authors need. In this type of ruby markup, two main elements exist nested
in the RUBY element - the Base text (the RB element),
followed by the Ruby text (the RT element.)
For browsers that do not understand the RUBY markup, they will display the
content of the RT element directly following the contents of the RB content.
Since this sort of fallback may not be enough to distinguish the association
relationship between the two content pieces, one final, optional fallback
element is provided to make the association clear in non-supporting browser
scenarios: the RP element. An RP element containing
a single character (usually an open or close parenthesis, depending on
the context - RP DOES stand for Ruby Parenthesis...) should
be put on either side of the RT element. Ruby-supporting browsers should
ignore the RP element completely and not render it in any way; in
non-supporting browsers however, the contents of the RP element will surround
the RT content to tie the content with the previous RB content.
The RP element was not designed to be used in Complex Ruby authoring situations.
The RP element was meant to be a simple fallback mechanism, and it is not suited
to the complexity of the Complex Ruby usage scenario.
[Test]
The functionality of the RP element can also be achieved with the :before and
:after CSS2 pseudo-elements in conjunction with the CSS 'content' property.
If a ruby fallback mechanism is not necessary or not a concern for a given
authoring situation, using the RP element is optional.
An RP element should occur twice in Simple Ruby markup - right before the RT
element and right after it.
Browser Peculiarities
This element is not documented by Microsoft anywhere that I could find,
but its behavior works as expected in IE5+ (eg: content inside is not displayed.)
I decided not to list IE support for the common attributes (except ID in Core)
since the purpose of this element in supporting browsers is to be ignored.