Movatterモバイル変換


[0]ホーム

URL:


W3C

Ruby Annotation

W3C Recommendation31 May 2001 (Markup errors corrected 25 June 2008)

This version:
http://www.w3.org/TR/2001/REC-ruby-20010531
(ZIP archive)
Latest version:
http://www.w3.org/TR/ruby
Previous version:
http://www.w3.org/TR/2001/PR-ruby-20010406
Editors:
MarcinSawicki (until 10 October, 1999)
MichelSuignard, Microsoft
MasayasuIshikawa (石川 雅康),W3C
MartinDürst,W3C
TexTexin, Progress Software Corp.
(SeeAcknowledgements for additional contributors)

Copyright©1998-2001W3C® (MIT,INRIA,Keio), All Rights Reserved.W3Cliability,trademark,documentuse andsoftwarelicensing rules apply.


Abstract

"Ruby" are short runs of text alongside the base text, typically used inEast Asian documents to indicate pronunciation or to provide a shortannotation. This specification defines markup for ruby, in the form of anXHTML module [XHTMLMOD].

Status of This Document

This section describes the status of this document at the time of itspublication. Other documents may supersede this document. Thelatest status of this series ofdocuments is maintained at the W3C.

This document has been reviewed by W3C Members and other interestedparties and has been endorsed by the Director as a W3C Recommendation. It isa stable document and may be used as reference material or cited as anormative reference from another document. W3C's role in making theRecommendation is to draw attention to the specification and to promote itswidespread deployment. This enhances the functionality and interoperabilityof the Web.

This document has been produced as part of the W3CInternationalizationActivity by theInternationalization WorkingGroup (I18N WG,members only) withthe help of the Internationalization Interest Group (I18N IG). Commentsshould be sent to thepubliclyarchived mailing listwww-i18n-comments@w3.org. Commentsin languages other than English, in particular Japanese, are also welcome.Public discussion of this document takes place on thewww-international@w3.org mailinglist (seearchive).

Due to its subject matter, and to make the examples more realistic, thisdocument includes examples using a wide range of characters. Not all useragents may be able to display all characters. Depending on the user agent,changing the configuration can improve the situation. Also, great care hasbeen taken to serve this document invarious characterencodings to cover a wide range of user agents and configurations.

Information related to this document can be found on thepublic ruby page(http://www.w3.org/International/O-HTML-ruby). This includestranslationsof this specification as well as potentialerrata. A listof currentW3C Recommendations and othertechnical documents can be found at http://www.w3.org/TR.

There have been no declarations regarding patents related to thisspecification within the Internationalization Working Group.


Contents


1.  Introduction

This section isinformative.

This document presents an overview of ruby annotation and defines themarkup for it. Several examples are provided. However, this document does notspecify any mechanisms for presentation or styling of ruby annotation; thisis part of the respective style sheet languages.

This document is organized as follows:

Section 1.1 gives an overview of ruby annotation.

Section 1.2 gives an overview of themarkup for ruby annotation.

Section 2 provides the normative definition ofruby markup.

Section 3 discusses typical rendering andstyling of ruby text.

Section 4 provides conformance criteria.

1.1 What is ruby?

Ruby is the term used for a run of text that is associated withanother run of text, referred to as thebase text. Ruby text is usedto provide a short annotation of the associated base text. It is most oftenused to provide areading (pronunciation guide). Ruby annotationsare used frequently in Japan in many kinds of publications, including booksand magazines. Ruby is also used in China, especially in schoolbooks.

Ruby text is usually presented alongside the base text, using a smallertypeface. The name "ruby" in fact originated from the name of the 5.5pt font size in British printing, which is about halfthe 10pt font size commonly used for normal text.Figure 1.1 shows an example, with three ideographs(kanji) as base text, and six hiragana giving the reading (shinkansen -Japanese bullet train).

At the bottom left, three Japanese ideographs from left to right. On top of them, six hiragana characters at half size. To the right, arrows and text saying 'ruby base' (bottom) and 'ruby text' (top).

Figure 1.1: Ruby text giving the reading of eachcharacter of the base text.

East Asian typography has developed various features that do not appear inwestern typography. Most of these can be addressed appropriately with stylesheet languages such asCSSorXSL. However,additional markup is required to define the association between base text andruby text.

This specification defines such markup, designed to be usable withXHTML, sothat ruby text is available on the Web without using special workarounds orgraphics. Although this specification gives examples of actual rendering tomake it easier for most readers to understand the markup, all such examplesare informational only. This document does not specify any mechanisms forpresentation or styling; this is part of the respective style sheetlanguages.

Sometimes more than one ruby text is associated with the same base text. Atypical example is to indicate both meaning as well as reading for the samebase text. In such cases, ruby texts may appear on both sides of the basetext. Ruby text before the base text is often used to indicate reading; rubytext after the base text is often used to indicate meaning.Figure 1.2 shows an example of base text with two rubytexts, giving reading using hiragana and Latin letters.

At the left, three Japanese ideographs from left to right. On top of them, six hiragana characters at half size. Below the ideographs, the text 'shinkansen'. To the right, arrows and text saying 'ruby base' (middle), 'ruby text' (top), and 'ruby text 2' (bottom).

Figure 1.2: Two ruby texts applied to the same basetext.

In addition, each ruby text may be associated with different, butoverlapping, parts of the base text, such asinthe following example:

MonthDayYear
10312002
Expiration Date

Figure 1.3: Base text with two ruby texts using differentassociations

In this example, the base text is the date "10 31 2002". One ruby text isthe phrase "Expiration Date". This ruby text is associated with the entirebase text. The other ruby text has 3 parts: "Month", "Day" and "Year". Eachpart is associated with a different part of the base text. "Month" isassociated with "10", "Day" is associated with "31", and "Year" is associatedwith "2002".

1.2 Ruby markupoverview

The markup defined in this specification is designed to cover all theabove cases, namely markup for one or two ruby texts associated with the samebase text and markup for associations of substrings of the ruby text(s) withcomponents of the base text.

There are two variants of ruby markup, calledsimple ruby markupandcomplex ruby markup. Simple ruby markup associates a single rubytext with a run of base text. Simple ruby markup can also specify a fallbackmechanism to allow display of ruby text by (older) browsers that do not knowabout ruby markup. Complex ruby markup can associate two ruby texts with onebase text, and can define a more fine-grained association between componentsof the ruby text and the base text. However, complex ruby markup does notprovide a fallback mechanism for browsers that do not understand rubymarkup.

This section gives an overview of the markup for ruby defined in thisspecification. A full formal definition can be found inSection 2.

1.2.1 Simple ruby markup

In the simplest case, ruby markup defines aruby elementwhich contains onerb element for the base text and onert element for the ruby text. Thisruby elementtherefore creates an association between the base text and the ruby text, andis sufficient for most cases. Here is an exampleof simple ruby markup:

<ruby>  <rb>WWW</rb>  <rt>World Wide Web</rt></ruby>

Figure 1.4: Example of simple ruby markup

This may be rendered as follows:

At the bottom left, three large letters reading 'WWW'. On top of them, in smaller letters, the text 'World Wide Web'. To the right, arrows and text saying 'ruby base' (bottom) and 'ruby text' (top).

Figure 1.5: Example of rendering for simple ruby markupinFigure 1.4

Note: The name of this enclosing element,"<ruby>", should be interpreted to mean that its contentsareassociating ruby text with base text. It must not bemisunderstood to mean that everything inside, including the base text,is ruby. The name of the enclosing element was chosen to compactlyand clearly identify the function of the markup construct; the names for theother elements were chosen to keep the overall length short.

1.2.2 Simple rubymarkup with parentheses

Some user agents might not understand ruby markup, or may not be able torender ruby text appropriately. In either situation, it is generallypreferable to render ruby text, so that information is not lost. A generallyacceptable fallback is to place the ruby text immediately after the basetext, and to enclose the ruby text in parentheses. The parentheses reduce thepotential for confusing the ruby text with other text. (It should be notedthat text in parentheses in Japanese typography is never called "ruby".)

For compatibility with older user agents that do not understand rubymarkup and simply render the content of elements they do not understand,rp elements can be added to simple ruby markup to distinguishruby text.

The element namerp stands for "ruby parenthesis". Therp elements and the parentheses (or other characters) insidethem are provided as a fallback mechanism only. User agents that ignoreunknown elements, but render their contents, will display the contents ofeachrp element. Therefore therp element can beused to denote both the beginning and end of ruby text.

User agents that do know about ruby markup will recognize therp element, and intentionally not display its contents. Instead,they will render the simple ruby markup in a more appropriate way.

The following example demonstrates the use oftherp element:

<ruby>  <rb>WWW</rb>  <rp>(</rp><rt>World Wide Web</rt><rp>)</rp></ruby>

Figure 1.6: Example of simple ruby markup includingrp elements for fallback

User agents that either:

  • do not know about ruby markup but render the contents of unknown elements, or
  • cannot render the ruby text alongside the base text,

will render the above markup as:

WWW (World Wide Web)

Figure 1.7: Rendering of simple ruby markup usingfallback parentheses

User agents that do know about ruby markup, and that have moresophisticated presentation styles for ruby text, will choose to not renderthe parentheses. For example, the markup offigure 1.6can be rendered as shown in the next figure.

EAt the bottom left, three large letters reading 'WWW'. On top of them, in smaller letters, the text 'World Wide Web'. To the right, arrows and text saying 'ruby base' (bottom) and 'ruby text' (top).

Figure 1.8:rp element ignored in favor ofmore sophisticated rendering

1.2.3 Complex ruby markup

Complex ruby markup is used to associate more than one ruby text with abase text, or to associate parts of ruby text with parts of base text.

Complex ruby markup provides for multiplerb andrt elements. This specification defines container elements thatmake the association between the individual elements clear. The ruby basecontainer element,rbc, enclosesrb elements. Therecan be one or two ruby text container elements,rtc, thatenclosert elements. This allows association of two ruby textcontainers with the same base text. With complex ruby markup it is alsopossible to associate parts of the base text with parts of a ruby text byusing a number ofrb elements, and a corresponding number ofrt elements. In addition, thert element may usetherbspan attribute to indicate that a singlertelement spans (is associated with) multiplerb elements. This issimilar to thecolspanattribute of theth andtd elements in tables ([HTML4], section 11.2.6).

Where and how each part of complex ruby markup is rendered is defined aspart of the respective style sheet languages; see also section 3 for furtherinformation.

The following example shows all thesefeatures.

<ruby>  <rbc>    <rb>10</rb>    <rb>31</rb>    <rb>2002</rb>  </rbc>  <rtc>    <rt>Month</rt>    <rt>Day</rt>    <rt>Year</rt>  </rtc>  <rtc>    <rt rbspan="3">Expiration Date</rt>  </rtc></ruby>

Figure 1.9: Complex ruby markup to associate two rubytexts with different parts of the same base text.

In this example, the first ruby text container encloses 3 components("Month", "Day", "Year"). Each of these components is associated with acorresponding component in the base text ("10", "31", "2002"). The secondruby text container ("Expiration Date") consists of a single ruby text, andis associated with the entire base text ("10 31 2002").It may be rendered as shown in figure 1.10.

MonthDayYear
10312002
Expiration Date

Figure 1.10: Rendering of the complex ruby markup infigure 1.9

The example shows that the association of ruby text with base text can bemore or less granular as needed. For example, the ruby text can be associatedwith the entire base text in cases where:

  • a more detailed relationship is unknown, or
  • when the reading or annotation only applies to the whole unit and cannot be split into pieces.

More fine-grained associations can also be made when the relationships areknown. For these situations, an improved rendering can therefore be provided.For example, a person's name can be decomposed into family name and givenname, or akanji compound or phrase can be decomposedinto semantic subparts or individual characters. With either fine or coursegranularity, the spans of the ruby text can be set with the correspondingspacing in the base text, and better readability and a more balanced layoutmay be achieved.

Therp element is not available in the case of complex rubymarkup. There are two reasons for this. First, therp element isonly a fallback mechanism, and it was considered that this is much moreimportant for the more frequent simple case. Second, for the more complexcases, it is difficult to come up with a reasonable fallback display, andconstructing markup for such cases can be even more difficult if notimpossible.

1.2.4 Summary

In summary, theruby element serves as a container for one ofthe following:

  • a combination ofrb,rt and possiblyrp elements (simple ruby markup) for:
    • Association of a single ruby text with a single base text
    • Fallback in case the ruby markup is not understood.
  • a combination of a singlerbc and one or twortc container elements (complex ruby markup) for:
    • Associating two ruby texts with the same base text
    • Defining more fine-grained associations between parts of a ruby text and parts of the base text.

2.  Formal definition of rubymarkup

This section isnormative.

This section contains the formal syntax definition and the specificationof the functionality of the ruby markup. Some familiarity with theXHTML Modularizationframework, in particular the "Modularization ofXHTML" [XHTMLMOD] specification, is assumed.

2.1  Abstract definition ofruby markup

The following is the abstract definition of the elements for ruby markup,which is consistent with theXHTML Modularizationframework [XHTMLMOD]. Further definitions ofXHTML abstract modulescan be found in [XHTMLMOD].

ElementsAttributesMinimal Content Model
rubyCommon(rb, (rt | (rp, rt, rp)))
rbcCommonrb+
rtcCommonrt+
rbCommon(PCDATA | Inline - ruby)*
rtCommon, rbspan (CDATA)(PCDATA | Inline - ruby)*
rpCommonPCDATA*

The maximal content model for theruby element is asfollows:

((rb, (rt | (rp, rt, rp))) | (rbc, rtc, rtc?))

The minimal content model for theruby element corresponds tosimple ruby markup. The(rbc, rtc, rtc?) alternative of themaximal content model for theruby element corresponds tocomplex ruby markup.

An implementation of this abstract definition as anXHTMLDTD module can be found inAppendix A. AnXML Schema [XMLSchema] implementation is being worked on (see [ModSchema]).

2.2  Theruby element

Theruby element is an inline (or text-level) element thatserves as an overall container. It contains either therb,rt andoptionalrp elements (simple ruby markup) ortherbc andrtc elements (complex ruby markup).

In the case of simple ruby markup, theruby element containseither anrb element followed by anrt element, or a sequence of anrb element, anrpelement, anrt element and anotherrp element. The content of thert element is taken as ruby text and associatedwith the content of therbelement as the base text. The content of therp elements, if present, is ignored.

In the case of complex ruby markup, theruby element containsanrbc element followed by one or twortc elements. The content of the subelements ofeachrtc element is taken as ruby text andassociated with the content of the subelements of therbc element as the base text.

Theruby element has common attributes only. Examples ofcommon attributes include:id,class orxml:lang. Common attributes depend on the markup language withwhich ruby markup is used. In the case of [XHTML 1.1],these are defined inXHTMLModularization, Section 5.1 [XHTMLMOD].

2.3  Therbc element

Therbc (ruby base container) element serves as the containerforrb elements in the case of complex rubymarkup. Only onerbc element may appear inside aruby element.

Therbc element has common attributes only.

2.4  Thertc element

Thertc (ruby text container) element serves as the containerforrt elements in the case of complex rubymarkup. One or twortc elements may appear inside aruby element to associate ruby texts with asingle base text, represented by anrbcelement. More than twortc elements MUST NOT appear inside aruby element.

Thertc element has common attributes only.

2.5  Therb element

Therb (ruby base) element serves to markup the base text.For simple ruby markup, only onerb element may appear. Forcomplex ruby markup, multiplerb elements may appear inside anrbc element. Eachrb element isassociated with a correspondingrt element,for fine-grained control of ruby presentation.

Therb element may contain inline elements or character dataas its content, but theruby element is notallowed as its descendant element.

Therb element has common attributes only.

2.6  Thert element

Thert element is the markup for ruby text. For simple rubymarkup, only onert element may appear. For complex ruby markup,multiplert elements may appear inside anrtc element, and eachrt elementcontains the ruby text for the relevant base text, represented by thecorrespondingrb element.

Thert element may contain inline elements or character dataas its content, but theruby element is notallowed as its descendant element.

Thert element has common attributes and therbspan attribute. In complex ruby markup, therbspan attribute allows anrt element to spanmultiplerb elements. The value shall be aninteger value greater than zero ("0"). The default value of this attribute isone ("1"). Therbspan attribute should not be used in simpleruby markup, and user agents should ignore therbspan attributewhen it appears in simple ruby markup.

2.7  Therp element

Therp element can be used in the case of simple ruby markupto specify characters that can denote the beginning and end of ruby text whenuser agents do not have other ways to present ruby text distinctively fromthe base text. Parentheses (or similar characters) can provide an acceptablefallback. In this situation, ruby text will only degrade to be renderedinline and enclosed in the fallback parentheses. This is the leastinappropriate rendering under the condition that only inline rendering isavailable. Therp element cannot be used with complex rubymarkup.

Therp element has common attributes only.

Using parentheses for the fallback may lead to confusion between runs oftext intended to be ruby text and other runs that happen to be enclosedwithin parentheses. The document or style sheet author should be aware of thepotential for that confusion and is advised to choose an unambiguousdelimiter for the fallback.

3. Rendering and stylingconsiderations

This section isinformative.

This section discusses various aspects of rendering and styling in thecontext of ruby markup as defined in this document. However, this documentdoes not specify any mechanisms for presentation/styling; this is left to therespective style sheet languages. Formatting properties for styling ruby areunder development forCSSandXSL. See for example"CSS3 module: Ruby" [CSS3-RUBY](work in progress) for more details.

Details of ruby formatting in a Japanese print context can be found inJIS-X-4051 [JIS4051].

3.1 Ruby on the Web vs. traditional typographicusage

The term "ruby" in Japanese is only used for text visually renderedalongside the base text. Considerations for such cases are given insection 3.2 (font size),section3.3 (positioning), andsection 3.4(presentation of ruby markup). This kind of presentation should be usedwherever possible. However, introducing ruby to the Web may lead to somephenomena and problems that are not present in traditional typography.Structural markup for ruby, as defined in this specification, cannotguarantee that ruby text will always be rendered alongside the base text.There are a very wide variety of current and future output devices fordocuments marked up withXHTML. The followingare possible scenarios and reasons for different rendering:

3.2 Font size of ruby text

In typical usage, the font size of ruby text is normally about half thefont size of the base text. In fact, the name "ruby" originated from the nameof the 5.5pt font size in British printing, whichis about half the 10pt font size commonly usedfor normal text.

3.3 Positioning of rubytext

There are several positions where the ruby text can appear relative to itsbase text. Because East Asian text may be rendered vertically as well ashorizontally, the terms "before" and "after" are used here rather than"above" and "below" or "right side" and "left side". The words "before" and"after" should be understood as "before"/"after" the line containing the basetext. The correspondence is shown in the following table:

terminologyHorizontal Layout
(left-to-right, top-to-bottom)
Vertical Layout
(top-to-bottom, right-to-left)
beforeaboveright-side
afterbelowleft-side

Ruby texts are most frequently placed before the base text (seefigure 1.1 andfigure 3.2).Sometimes, especially in horizontal educational documents, ruby text mayappear after the base text, i.e. below (seefigure3.1). In Chinese, it is rather common thatPinyinruby text appears after the base text. Ruby text may also appear after thebase text in vertical layout (seefigure 3.3). In allthese cases, the writing direction of the ruby text is the same as that ofits base text, that is vertical if the base text is vertical, and horizontalif the base text is horizontal.

At the top left, three Japanese ideographs from left to right. Below them, the text 'shinkansen'. To the right, arrows and text saying 'ruby base' (top) and 'ruby text' (bottom).

Figure 3.1: Ruby text (Latin letters) after/below thebase text (Japanese ideographs)

At the top left, three Japanese ideographs from top to bottom. To their right, six hiragana characters at half size. At the bottom, arrows and text saying 'ruby base' (left) and 'ruby text' (right).

Figure 3.2: Ruby text in vertical writing (before/to theright)

Example showing ruby on the left side of vertical Japanese text

Figure 3.3: Ruby text in vertical writing (after/to theleft).

In traditional Chinese texts, "Bopomofo" ruby textcan appear along the right side of the base text even in horizontallayout.

From the right, a large Chinese ideograph, three smaller bopomofo letters from top to bottom (in blue), a bopomofo accent mark (in red), another large Chinese ideograph, two smaller bopomofo letters from top to bottom (in blue) and another bopomofo accent mark (in red).

Figure 3.4: "Bopomofo" ruby textin traditional Chinese (ruby text shown in blue/red for clarity) inhorizontal layout

Note thatBopomofo tone marks (in the above exampleshown in red for clarity) seem to appear in a separate column (along theright side of theBopomofo ruby text) and thereforemight be seen as "ruby on ruby". However, they are simply encoded as part ofthe ruby text. The details of this encoding are not addressed in thisdocument.

3.4 Presentation of rubymarkup

This specification does not prescribe how ruby markup will be displayed.Style sheets, in general, will be used to specify the exact behavior of rubymarkup.

Note. Although the rendering of the ruby texts should becontrolled by style sheets, in case no style information is provided by theauthor or the user, it is recommended that visual user agents place the rubytext before the base text when only one ruby text is used. This is also thecase for simple ruby. When there are two ruby texts, the first ruby textshould be placed before the base text, and the second ruby text should beplaced after the base text. A sample user agent default style sheet whichdescribes this formatting will be provided by [CSS3-RUBY] or its successor document.

For non-visual rendering, in the absence of style sheet information, it isrecommended that both the base text and the ruby text(s) should be rendered,with an indication (e.g. different voice, different pitch, ...) of the statusof each.

In order for style sheets to be able to applystyling, or for other mechanisms to render ruby text appropriately, it isvery important to provide enough information on the function of eachcomponent. The following example illustrates the use of the class attributeto allow style sheets to define the exact presentation of the ruby text. Theclass "reading" is used for a ruby text that indicates reading.The class "annotation" is used to indicate ruby text that isused for annotation. Thexml:lang attribute indicates thelanguage of the text.

<ruby xml:lang="ja">  <rbc>    <rb>斎</rb>    <rb>藤</rb>    <rb>信</rb>    <rb>男</rb>  </rbc>  <rtc>    <rt>さい</rt>    <rt>とう</rt>    <rt>のぶ</rt>    <rt>お</rt>  </rtc>  <rtc>    <rt rbspan="4" xml:lang="en">W3C Associate Chairman</rt>  </rtc></ruby>

Figure 3.5: Ruby markup withclass andxml:lang attributes.

Using a style sheet specifying horizontal text, rendering of the readingbefore the base text, and rendering of the annotation after the base text,the markup above could be rendered like this:

In the middle, four Japanese ideographs from left to right. On top of that, hiragana letters in smaller size (two hiragana for each of the three first ideographs, one hiragana for the latest ideograph). At the bottom, the text 'W3C Associate Chairman'.

Figure 3.6: Horizontal rendering of two ruby textsassociated with a single base text.

3.5 Considerations for non-visualrendering

Documents containing ruby markup may in some cases need to be rendered bynon-visual user agents such as voice browsers and braille user agents. Forsuch rendering scenarios, it is important to understand that:

Depending on a user's needs, the way a text should be read may vary fromvery quick and 'cursory' reading to very careful and detailed reading. Thismay lead to different ways of treating ruby text in non-visual rendering,from skipping ruby text in fast reading to detailed exploration of the rubystructure and the actual characters used in careful reading.

In the frequent case that ruby texts represent reading, rendering both thebase text and the ruby text may produce annoying duplications. A speechsynthesizer may be able to correctly pronounce the base text based on a largedictionary, or it may in other cases be able to select the rightpronunciation based on the reading given by the ruby text.

Not all ruby texts represent pronunciations. Authors should distinguishruby texts used for different purposes by using theclassattribute. This is demonstrated above by usingclass="reading"for ruby text used to indicate reading.

Ruby text indicating reading may not produce the correct pronunciationeven in cases where the script used at first glance seems perfectly phonetic.For example,Bopomofo is associated independently foreach character of the base text; context-dependent sound or tone changes arenot reflected. Similarly, in Japanese, spelling irregularities can occur,such as using "" (hiragana ha) for the topic suffix pronounced "" (wa),or using vowels for indicating lengthening. For such cases, authors may wantto supply the actual pronunciation with special markup designed for thatpurpose, or may rely on the aural rendering system being able to handle suchcases correctly.

3.6 Alternatives to therp element

If the author is not concerned about fallbacks for user agents thatneither know about ruby markup nor supportCSS2 [CSS2] orXSL [XSL]style sheets, then therp elements are not needed.

Nevertheless, it is possible to parenthesize ruby text as a fallback iffor example the device resolution is not appropriate for traditional rubyrendering. Using [CSS2], the parentheses can be generatedusing the'content'property ([CSS2], section 12.2) with the:beforeand :after pseudo-elements ([CSS2], section 12.1),as for example in the following stylefragment:

rt:before { content: "(" }rt:after { content: ")" }

Figure 3.8:CSS2 style fragment togenerate parentheses around anrt element

In the above example, parentheses will be automatically generated aroundthert element. It is assumed that the above style rules areused together with style rules that position the ruby text inline. Generationof parentheses is straightforward withXSLT [XSLT].

4. Conformance Criteria

This section isnormative.

Within the context of this specification, conformance can be claimed formarkup, document types, module implementations, documents, generators, andinterpreters. In most of these cases, two levels of conformance areavailable: simple conformance and full conformance. Simple conformance meansthat the conforming object supports the minimal content model of the rubyelement insection2.1, i.e. only simple ruby markup. Full conformance means that theconforming object supports the maximal content model of the ruby element insection 2.1,i.e. that both simple and complex ruby markup are supported.

Markup isconforming simple ruby markup if it contains one ormoreruby elements and the content of all those elements(including their children) conforms to the minimal content model insection 2.1 (i.e.only simple ruby markup is allowed). Markup isconforming full rubymarkup if it contains one or moreruby elements and thecontent of all those elements (including their children) conforms to themaximal content model insection 2.1 (i.e.both simple and complex ruby markup is allowed).

A document type is aconforming simple ruby markup document typeif it integrates conforming simple ruby markup by adding theruby element to the appropriate elements (such as inlineelements) and by defining the necessary elements and attributes. A documenttype is aconforming full ruby markup document type if it integratesconforming full ruby markup by adding theruby element to theappropriate elements (such as inline elements) and by defining the necessaryelements and attributes.

A module implementation (e.g. with DTD or XML Schema technology) is aconforming simple ruby module implementation if it is designed tointegrate simple ruby markup with other modules into document types asdescribed above. A module implementation is aconforming complex rubymodule implementation if it is designed to integrate full ruby markupwith other modules into document types as described above. A moduleimplementation is aconforming full ruby module implementation if itis designed to integrate either simple or full ruby markup with other modulesinto document types as described above (e.g. by providing a switch, or byproviding two separate module implementations).

A document is aconforming simple ruby markup document if itcontains conforming simple ruby markup and does not contain complex rubymarkup or non-conforming ruby markup. A document is aconforming fullruby markup document if it contains conforming full ruby markup and doesnot contain non-conforming ruby markup.

A generator is aconforming simple ruby markup generator if itgenerates conforming simple ruby markup and does not generate complex rubymarkup or non-conforming ruby markup. A generator is aconforming fullruby markup generator if it generates conforming full ruby markup anddoes not generate non-conforming ruby markup.

An interpreter is aconforming simple ruby markup interpreter ifit rejects nonconforming simple ruby markup, accepts conforming simple rubymarkup, and, where it interprets ruby markup, does so in accordance with thisspecification. An interpreter is aconforming full ruby markupinterpreter if it rejects nonconforming ruby markup, accepts conformingfull ruby markup, and, where it interprets ruby markup, does so in accordancewith this specification. Examples of interpreters are server-side analysis ortransformation tools and renderers.

For XHTML Modularization conformance, please see section 3 of [XHTMLMOD].


Appendices

A.  Ruby module forXHTML

This appendix isinformative.

The following is a link to the RubyDTD module that is used inXHTML 1.1 [XHTML11].

B. Notes on design decisions

This appendix isinformative. This appendix contains some noteson design decisions, based on questions and comments received during the LastCall review.

There were proposals to change e.g. <rbc><rb>...</rbc>to <rb><rbc>...</rb> (and similar for rt/rtc). This looksin some way more natural. However, in XML, the content of an element iseither mixed content (both character data and elements, without sequence oroccurrence restrictions) or element content (only elements, withrestrictions). This means that it is impossible to say that <rb>contains either only <rbc> elements or only character data and inlineelements.

There were various proposals for removing therp element from the minimal content model. They wereconsidered, but rejected for the following reasons:

It was suggested to change the names of the elements, in particular tochange <ruby> to <gloss>. However, while ruby markup is indeedin some way similar to the markup that would be needed for glosses, it is notdesigned for that purpose.

C.  Notes on backwardscompatibility

This appendix isinformative.

For historical reasons, some authoring tools might generate ruby markupwithout the start and end tags of therb element, like:

<ruby>  A  <rp>(</rp><rt>aaa</rt><rp>)</rp></ruby>

rather than the following:

<ruby>  <rb>A</rb>  <rp>(</rp><rt>aaa</rt><rp>)</rp></ruby>

The former markup is not conforming to this specification, but user agentsthat care about compatibility with documents generated by such authoringtools may treat the former markup as if it were written like the latter.

D.  Glossary

This appendix isinformative.

Base text
Run of text that has aruby text associated with it.
Bopomofo
37 characters and 4 tone marks used as phonetics in Chinese, especially standard Mandarin.
Complex ruby markup
In this specification: Ruby markup that allows association of tworuby texts with a singlebase text as well as fine-grained associations between parts of theruby texts and thebase text.
Group ruby
In Japanese typography: Ruby text associated with more than one character of the base text.
Hiragana
Japanese syllabic script, or character of that script. Rounded and cursive in appearance. Subset of the Japanese writing system, used together with kanji and katakana. In recent times, mostly used to write Japanese words when kanji are not available or appropriate, and word endings and particles.
Ideograph
A character that is used to represent an idea, word, or word component, in contrast to a character from an alphabetic or syllabic script. The most well-known ideographic script is used (with some variation) in East Asia (China, Japan, Korea,...).
Kana
Collective term for hiragana and katakana.
Katakana
Japanese syllabic script, or character of that script. Angular in appearance. Subset of the Japanese writing system, used together with kanji and hiragana. In recent times, mainly used to write foreign words.
Kanji
Japanese term for ideographs; ideographs used in Japanese. Subset of the Japanese writing system, used together with hiragana and katakana.
Monoruby
In Japanese typography: Ruby associated with a single character of the base text.
Reading
For ideographs: Technical term; indication of possible pronunciation. Different from pronunciation in various respects: script used may not be fully phonetic; actual pronunciation is speaker-dependent; pronunciation may not be realized when reading a text silently. In Chinese or Korean, some ideographs have several readings. In Japanese, most ideographs have at least two readings, and some have a lot more. Readings also may depend on context.
Ruby text
Run of text that appears in the immediate vicinity of another run of text (called"ruby base") and serves as an annotation or a pronunciation guide associated with the base.
Simple ruby markup
In this specification: Ruby markup that associates a singleruby text with a singleruby base, optionally providing some delimiters such as parentheses for fallback.

E.  Changes from ProposedRecommendation

This appendix isinformative.

Changes from theProposedRecommendation (http://www.w3.org/TR/2001/PR-ruby-20010406):

Acknowledgements

This section isinformative.

TakaoSuzuki (鈴木 孝雄) and ChrisWilson have contributed to previous drafts aseditors.

This specification would not have been possible without the help from themembers of the W3C I18N WG, in particular MarkDavis and HidekiHiura (樋浦 秀樹), andthe members of the W3C I18N IG.

Additional contributors include MurrayAltheim, Laurie AnnaEdlund, AryeGittelma, KojiIshii, RickJelliffe, EricLeVine, ChrisLilley, CharlesMcCathieNevile, ShigekiMoro (師 茂樹), ChrisPratley, NobuoSaito (斎藤 信男), RahulSonnad, ChrisThrasher.

The markup defined in this specification was coordinated with the rubymarkup in [JIS4052], developed by WG 2 (Typesetting) ofthe Electronic Document Processing System Standardization Investigation andResearch Committee of the Japanese Standards Association. We would like tothank the members of WG 2, in particular KohjiShibano (芝野 耕司,chair), and MasafumiYabe (家辺 勝文, liaison), for their collaboration.Technically, the markup for ruby in [JIS4052] differsfrom the markup in this specification in two points: First, there is analternative form of markup not compatible with XML, based on special symbols,and second, therp element is notpermitted.

Valuable Last Call comments were also received from: The HTML WG, the CSSWG, the XSL WG, the WAI P&F WG, StevenPemberton, TrevorHill, SusanLesch,and Frank Yung-FongTang. AkiraUchida (内田 明) provided feedback from atranslator's viewpoint.

An earlier proposal for markup for ruby, using attributes, is described in[DUR97].

References

Normative References

[XHTML11]
"XHTML 1.1 - Module-basedXHTML",W3C Recommendation
M. Altheim, S. McCarron,eds., 31 May 2001
Available at: http://www.w3.org/TR/2001/REC-xhtml11-20010531
The latest version is available at:
http://www.w3.org/TR/xhtml11
[XHTMLMOD]
"Modularization ofXHTML",W3C Recommendation
M. Altheimet al.,eds., 10 April 2001
Available at: http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410
The latest version is available at:
http://www.w3.org/TR/xhtml-modularization
[XML]
"Extensible Markup Language (XML) 1.0 (Second Edition)",W3C Recommendation
T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler,eds., 6 October 2000
Available at: http://www.w3.org/TR/2000/REC-xml-20001006
The latest version is available at:
http://www.w3.org/TR/REC-xml

Informative References

[CSS2]
"Cascading Style Sheets, level 2 (CSS2) Specification",W3C Recommendation
B. Bos, H. W. Lie, C. Lilley and I. Jacobs,eds., 12 May 1998
Available at: http://www.w3.org/TR/1998/REC-CSS2-19980512
The latest version is available at:
http://www.w3.org/TR/REC-CSS2
[CSS3-RUBY]
"CSS3 module: Ruby",W3C Working Draft
M. Suignard,ed., 16 February 2001
Available at: http://www.w3.org/TR/2001/WD-css3-ruby-20010216/
The latest version is available at:
http://www.w3.org/TR/css3-ruby
[DUR97]
"Ruby in the Hypertext Markup Language", Internet Draft
Martin Dürst, 28 February 1997,expired
Available at: http://www.w3.org/International/draft-duerst-ruby-01
[HTML4]
"HTML 4.01 Specification",W3C Recommendation
D. Raggett, A. Le Hors, I. Jacobs,eds., 24 December 1999
Available at: http://www.w3.org/TR/1999/REC-html401-19991224
The latest version is available at:
http://www.w3.org/TR/html4
[JIS4051]
"Line composition rules for Japanese documents" (日本語文書の行組版方法)
JIS X 4051-1995, Japanese Standards Association, 1995 (in Japanese)
[JIS4052]
"Exchange format for Japanese documents with composition markup" (日本語文書の組版指定交換形式)
JIS X 4052:2000, Japanese Standards Association, 2000 (in Japanese)
[ModSchema]
"Modularization of XHTML™ in XML Schema",W3C Working Draft
Daniel Austin and Shane McCarron,eds., 22 March 2001
Available at: http://www.w3.org/TR/2001/WD-xhtml-m12n-schema-20010322
The latest version is available at:
http://www.w3.org/TR/xhtml-m12n-schema
[XMLSchema]
"XML Schema Part 1: Structures",W3C Recommendation
H. S. Thompson, D. Beech, M. Maloney, N. Mendelsohn,eds., 2 May 2001
Available at: http://www.w3.org/TR/2001/REC-xmlschema-1-20010502
The latest version is available at:
http://www.w3.org/TR/xmlschema-1
See also "XML Schema Part 2: Datatypes", available at:http://www.w3.org/TR/xmlschema-2
[XSL]
"Extensible Style Language (XSL)",W3C Candidate Recommendation
S. Adleret al.,eds., 21 November 2000
Available at: http://www.w3.org/TR/2000/CR-xsl-20001121
The latest version is available at:
http://www.w3.org/TR/xsl
[XSLT]
"XSL Transformations (XSLT) Version 1.0",W3C Recommendation
J. Clark,ed., 16 November 1999
Available at: http://www.w3.org/TR/1999/REC-xslt-19991116
The latest version is available at:
http://www.w3.org/TR/xslt

[8]ページ先頭

©2009-2025 Movatter.jp