Error found while checking this document as HTML 4.01 Strict!

Result: 1 Error
:
: utf-8
: HTML 4.01 Strict
Root Element: html
Options

Help on the options is available.

↑ Top

Validation Output: 1 Error

  1. Error Line 1578, Column 53: required attribute "TYPE" not specified
    <script src="https://www.w3.org/scripts/TR/fixup.js"></script></body>

    The attribute given above is required for an element that you've used, but you have omitted it. For instance, in most HTML and XHTML document types the "type" attribute is required on the "script" element and the "alt" attribute is required for the "img" element.

    Typical values for type are type="text/css" for <style> and type="text/javascript" for <script>.

↑ Top

Source Listing

Below is the source input I used for this validation:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
  2. "http://www.w3.org/TR/html4/strict.dtd">
  3. <html lang="en-us">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <title>Ruby Annotation</title>
  7. <link rel="stylesheet" type="text/css" href="style.css">
  8. <link rel="stylesheet" type="text/css"
  9. href="http://www.w3.org/StyleSheets/TR/W3C-REC">
  10. <link rel="Appendix" title="Available Character Encodings" href="encodings">
  11. </head>
  12. <body>
  13. <div class="head">
  14. <p><a href="http://www.w3.org/"><img alt="W3C"
  15. src="http://www.w3.org/Icons/w3c_home" width="72" height="48"></a></p>
  16. <h1>Ruby Annotation</h1>
  17. <h2><acronym title="World Wide Web Consortium">W3C</acronym> Recommendation
  18. 31 May 2001 (Markup errors corrected 25 June 2008)</h2>
  19. <dl>
  20. <dt>This version:</dt>
  21. <dd><a
  22. href="http://www.w3.org/TR/2001/REC-ruby-20010531/">http://www.w3.org/TR/2001/REC-ruby-20010531</a>
  23. <br>
  24. (<a href="ruby.zip">ZIP archive</a>)</dd>
  25. <dt>Latest version:</dt>
  26. <dd><a href="http://www.w3.org/TR/ruby/">http://www.w3.org/TR/ruby</a><br>
  27. </dd>
  28. <dt>Previous version:</dt>
  29. <dd><a
  30. href="http://www.w3.org/TR/2001/PR-ruby-20010406/">http://www.w3.org/TR/2001/PR-ruby-20010406</a></dd>
  31. <dt>Editors:</dt>
  32. <dd>Marcin <span class="familyname">Sawicki</span> (until 10 October,
  33. 1999)</dd>
  34. <dd><a href="mailto:michelsu@microsoft.com">Michel <span
  35. class="familyname">Suignard</span></a>, Microsoft</dd>
  36. <dd><a href="mailto:mimasa@w3.org">Masayasu <span
  37. class="familyname">Ishikawa</span></a>
  38. (<span lang="ja">石川 雅康</span>), <acronym
  39. title="World Wide Web Consortium">W3C</acronym></dd>
  40. <dd><a href="mailto:duerst@w3.org">Martin <span
  41. class="familyname">Dürst</span></a>, <acronym
  42. title="World Wide Web Consortium">W3C</acronym></dd>
  43. <dd><a href="mailto:texin@progress.com">Tex <span
  44. class="familyname">Texin</span></a>, Progress Software Corp.</dd>
  45. <dd>(See <a href="#ack">Acknowledgements</a> for additional
  46. contributors)</dd>
  47. </dl>
  48. <p class="copyright"><a
  49. href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#Copyright">Copyright</a>
  50. ©1998-2001 <a href="http://www.w3.org/"><acronym
  51. title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a
  52. href="http://www.lcs.mit.edu/"><acronym
  53. title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
  54. href="http://www.inria.fr/"><acronym lang="fr"
  55. title="Institut National de Recherche en Informatique et Automatique">INRIA</acronym></a>,
  56. <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. <acronym
  57. title="World Wide Web Consortium">W3C</acronym> <a
  58. href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#Legal_Disclaimer">liability</a>,
  59. <a
  60. href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#W3C_Trademarks">trademark</a>,
  61. <a
  62. href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document
  63. use</a> and <a
  64. href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software
  65. licensing</a> rules apply.</p>
  66. <hr>
  67. </div>
  68. <div>
  69. <h2><a id="Abstract" name="Abstract">Abstract</a></h2>
  70. <p>"Ruby" are short runs of text alongside the base text, typically used in
  71. East Asian documents to indicate pronunciation or to provide a short
  72. annotation. This specification defines markup for ruby, in the form of an
  73. XHTML module [<a href="#xhtmlmod">XHTMLMOD</a>].</p>
  74. </div>
  75. <div>
  76. <h2><a id="Status" name="Status">Status of This Document</a></h2>
  77. <p><em>This section describes the status of this document at the time of its
  78. publication. Other documents may supersede this document. The <a
  79. href="http://www.w3.org/TR/ruby/#Status">latest status</a> of this series of
  80. documents is maintained at the W3C.</em></p>
  81. <p>This document has been reviewed by W3C Members and other interested
  82. parties and has been endorsed by the Director as a W3C Recommendation. It is
  83. a stable document and may be used as reference material or cited as a
  84. normative reference from another document. W3C's role in making the
  85. Recommendation is to draw attention to the specification and to promote its
  86. widespread deployment. This enhances the functionality and interoperability
  87. of the Web.</p>
  88. <p>This document has been produced as part of the W3C <a
  89. href="http://www.w3.org/International/Activity">Internationalization
  90. Activity</a> by the <a
  91. href="http://www.w3.org/International/Group/">Internationalization Working
  92. Group</a> (I18N WG, <a
  93. href="http://cgi.w3.org/MemberAccess/AccessRequest">members only</a>) with
  94. the help of the Internationalization Interest Group (I18N IG). Comments
  95. should be sent to the <a
  96. href="http://lists.w3.org/Archives/Public/www-i18n-comments/">publicly
  97. archived</a> mailing list <a
  98. href="mailto:www-i18n-comments@w3.org">www-i18n-comments@w3.org</a>. Comments
  99. in languages other than English, in particular Japanese, are also welcome.
  100. Public discussion of this document takes place on the <a
  101. href="mailto:www-international@w3.org">www-international@w3.org</a> mailing
  102. list (see <a
  103. href="http://lists.w3.org/Archives/Public/www-international/">archive</a>).</p>
  104. <p>Due to its subject matter, and to make the examples more realistic, this
  105. document includes examples using a wide range of characters. Not all user
  106. agents may be able to display all characters. Depending on the user agent,
  107. changing the configuration can improve the situation. Also, great care has
  108. been taken to serve this document in <a href="encodings">various character
  109. encodings</a> to cover a wide range of user agents and configurations.</p>
  110. <p>Information related to this document can be found on the <a
  111. href="http://www.w3.org/International/O-HTML-ruby">public ruby page</a>
  112. (http://www.w3.org/International/O-HTML-ruby). This includes <a
  113. href="http://www.w3.org/International/O-HTML-ruby#Translations">translations</a>
  114. of this specification as well as potential <a
  115. href="http://www.w3.org/2001/05/ruby-errata">errata</a>. A list
  116. of current <a href="http://www.w3.org/TR/">W3C Recommendations and other
  117. technical documents</a> can be found at http://www.w3.org/TR.</p>
  118. <p>There have been no declarations regarding patents related to this
  119. specification within the Internationalization Working Group.</p>
  120. <hr>
  121. </div>
  122. <h2><a id="Contents" name="Contents">Contents</a></h2>
  123. <div class="toc">
  124. <ul>
  125. <li class="informative">1.  <a href="#intro">Introduction</a>
  126. <ul>
  127. <li>1.1  <a href="#what">What is ruby?</a></li>
  128. <li>1.2  <a href="#markup-overview">Ruby markup overview</a>
  129. <ul>
  130. <li>1.2.1  <a href="#simple-ruby1">Simple ruby markup</a></li>
  131. <li>1.2.2  <a href="#simple-parenthesis">Simple ruby markup with
  132. parentheses</a></li>
  133. <li>1.2.3  <a href="#complex">Complex ruby markup</a></li>
  134. <li>1.2.4  <a href="#summary">Summary</a></li>
  135. </ul>
  136. </li>
  137. </ul>
  138. </li>
  139. <li class="normative">2.  <a href="#definition">Formal definition of ruby
  140. markup</a>
  141. <ul>
  142. <li>2.1  <a href="#abstract-def">Abstract definition of ruby
  143. markup</a></li>
  144. <li>2.2  <a href="#ruby">The <code>ruby</code> element</a></li>
  145. <li>2.3  <a href="#rbc">The <code>rbc</code> element</a></li>
  146. <li>2.4  <a href="#rtc">The <code>rtc</code> element</a></li>
  147. <li>2.5  <a href="#rb">The <code>rb</code> element</a></li>
  148. <li>2.6  <a href="#rt">The <code>rt</code> element</a></li>
  149. <li>2.7  <a href="#rp">The <code>rp</code> element</a></li>
  150. </ul>
  151. </li>
  152. <li>3. <a href="#rendering">Rendering and Styling Considerations</a>
  153. <ul>
  154. <li>3.1  <a href="#web">Ruby on the Web vs. traditional typographic
  155. usage</a></li>
  156. <li>3.2  <a href="#font">Font size of ruby text</a></li>
  157. <li>3.3  <a href="#positioning">Positioning of ruby text</a></li>
  158. <li>3.4  <a href="#presentation">Presentation of ruby markup</a></li>
  159. <li>3.5  <a href="#non-visual">Considerations for non-visual
  160. rendering</a></li>
  161. <li>3.6  <a href="#rp-alternatives">Alternatives to the
  162. <code>rp</code> element</a></li>
  163. </ul>
  164. </li>
  165. <li>4. <a href="#conformance">Conformance Criteria</a></li>
  166. <li><a href="#appendix">Appendices</a>
  167. <ul>
  168. <li class="normative">A.  <a href="#module">Ruby module for <acronym
  169. title="Extensible HyperText Markup Language">XHTML</acronym></a></li>
  170. <li class="informative">B. <a href="#design">Notes on design
  171. decisions</a></li>
  172. <li class="informative">C.  <a href="#compatibility">Notes on
  173. backwards compatibility</a></li>
  174. <li class="informative">D.  <a href="#glossary">Glossary</a></li>
  175. <li class="informative">E.  <a href="#changes">Changes from Proposed
  176. Recommendation</a></li>
  177. </ul>
  178. </li>
  179. <li class="informative"><a href="#ack">Acknowledgements</a></li>
  180. <li class="informative ref"><a href="#ref">References</a></li>
  181. </ul>
  182. </div>
  183. <hr>
  184. <div class="informative">
  185. <h2><a id="intro" name="intro">1.  Introduction</a></h2>
  186. <p>This section is <em>informative</em>.</p>
  187. <p>This document presents an overview of ruby annotation and defines the
  188. markup for it. Several examples are provided. However, this document does not
  189. specify any mechanisms for presentation or styling of ruby annotation; this
  190. is part of the respective style sheet languages.</p>
  191. <p>This document is organized as follows:</p>
  192. <p><a href="#what">Section 1.1</a> gives an overview of ruby annotation.</p>
  193. <p><a href="#markup-overview">Section 1.2</a> gives an overview of the
  194. markup for ruby annotation.</p>
  195. <p><a href="#definition">Section 2</a> provides the normative definition of
  196. ruby markup.</p>
  197. <p><a href="#rendering">Section 3</a> discusses typical rendering and
  198. styling of ruby text.</p>
  199. <p><a href="#conformance">Section 4</a> provides conformance criteria.</p>
  200. <div>
  201. <h3><a id="what" name="what">1.1 What is ruby?</a></h3>
  202. <p><em>Ruby</em> is the term used for a run of text that is associated with
  203. another run of text, referred to as the <em>base text</em>. Ruby text is used
  204. to provide a short annotation of the associated base text. It is most often
  205. used to provide a <em>reading</em> (pronunciation guide). Ruby annotations
  206. are used frequently in Japan in many kinds of publications, including books
  207. and magazines. Ruby is also used in China, especially in schoolbooks.</p>
  208. <p>Ruby text is usually presented alongside the base text, using a smaller
  209. typeface. The name "ruby" in fact originated from the name of the 5.5<abbr
  210. title="points">pt</abbr> font size in British printing, which is about half
  211. the 10<abbr title="points">pt</abbr> font size commonly used for normal text.
  212. <a href="#fig1.1">Figure 1.1</a> shows an example, with three ideographs
  213. (kanji) as base text, and six hiragana giving the reading (shinkansen -
  214. Japanese bullet train).</p>
  215. <div class="figure">
  216. <p><a id="fig1.1" name="fig1.1"><img
  217. alt="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)."
  218. class="example" height="33" width="140" src="shinkansen-top.gif"></a></p>
  219. <p><strong>Figure 1.1</strong>: Ruby text giving the reading of each
  220. character of the base text.</p>
  221. </div>
  222. <p>East Asian typography has developed various features that do not appear in
  223. western typography. Most of these can be addressed appropriately with style
  224. sheet languages such as <acronym title="Cascading Style Sheets">CSS</acronym>
  225. or <acronym title="Extensible Style Language">XSL</acronym>. However,
  226. additional markup is required to define the association between base text and
  227. ruby text.</p>
  228. <p>This specification defines such markup, designed to be usable with
  229. <acronym title="Extensible HyperText Markup Language">XHTML</acronym>, so
  230. that ruby text is available on the Web without using special workarounds or
  231. graphics. Although this specification gives examples of actual rendering to
  232. make it easier for most readers to understand the markup, all such examples
  233. are informational only. This document does not specify any mechanisms for
  234. presentation or styling; this is part of the respective style sheet
  235. languages.</p>
  236. <p>Sometimes more than one ruby text is associated with the same base text. A
  237. typical example is to indicate both meaning as well as reading for the same
  238. base text. In such cases, ruby texts may appear on both sides of the base
  239. text. Ruby text before the base text is often used to indicate reading; ruby
  240. text after the base text is often used to indicate meaning. <a
  241. href="#fig1.2">Figure 1.2</a> shows an example of base text with two ruby
  242. texts, giving reading using hiragana and Latin letters.</p>
  243. <div class="figure">
  244. <p><a id="fig1.2" name="fig1.2"><img
  245. alt="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)."
  246. class="example" height="49" width="149"
  247. src="shinkansen-top-bottom.gif"></a></p>
  248. <p><strong>Figure 1.2</strong>: Two ruby texts applied to the same base
  249. text.</p>
  250. </div>
  251. <p>In addition, each ruby text may be associated with different, but
  252. overlapping, parts of the base text, such as <a id="fig1.3" name="fig1.3">in
  253. the following example:</a></p>
  254. <div class="figure">
  255. <table>
  256. <tbody>
  257. <tr class="rt" style="text-align: center">
  258. <td>Month</td>
  259. <td>Day</td>
  260. <td>Year</td>
  261. </tr>
  262. <tr class="rb" style="text-align: center">
  263. <td><strong>10</strong></td>
  264. <td><strong>31</strong></td>
  265. <td><strong>2002</strong></td>
  266. </tr>
  267. <tr class="rt" style="text-align: center">
  268. <td colspan="3">Expiration Date</td>
  269. </tr>
  270. </tbody>
  271. </table>
  272. <p><strong>Figure 1.3</strong>: Base text with two ruby texts using different
  273. associations</p>
  274. </div>
  275. <p>In this example, the base text is the date "10 31 2002". One ruby text is
  276. the phrase "Expiration Date". This ruby text is associated with the entire
  277. base text. The other ruby text has 3 parts: "Month", "Day" and "Year". Each
  278. part is associated with a different part of the base text. "Month" is
  279. associated with "10", "Day" is associated with "31", and "Year" is associated
  280. with "2002".</p>
  281. </div>
  282. <div>
  283. <h3><a id="markup-overview" name="markup-overview">1.2 Ruby markup
  284. overview</a></h3>
  285. <p>The markup defined in this specification is designed to cover all the
  286. above cases, namely markup for one or two ruby texts associated with the same
  287. base text and markup for associations of substrings of the ruby text(s) with
  288. components of the base text.</p>
  289. <p>There are two variants of ruby markup, called <em>simple ruby markup</em>
  290. and <em>complex ruby markup</em>. Simple ruby markup associates a single ruby
  291. text with a run of base text. Simple ruby markup can also specify a fallback
  292. mechanism to allow display of ruby text by (older) browsers that do not know
  293. about ruby markup. Complex ruby markup can associate two ruby texts with one
  294. base text, and can define a more fine-grained association between components
  295. of the ruby text and the base text. However, complex ruby markup does not
  296. provide a fallback mechanism for browsers that do not understand ruby
  297. markup.</p>
  298. <p>This section gives an overview of the markup for ruby defined in this
  299. specification. A full formal definition can be found in <a
  300. href="#definition">Section 2</a>.</p>
  301. <div>
  302. <h4><a id="simple-ruby1" name="simple-ruby1">1.2.1 Simple ruby markup</a></h4>
  303. <p>In the simplest case, ruby markup defines a <code>ruby</code> element
  304. which contains one <code>rb</code> element for the base text and one
  305. <code>rt</code> element for the ruby text. This <code>ruby</code> element
  306. therefore creates an association between the base text and the ruby text, and
  307. is sufficient for most cases.<a id="fig1.4" name="fig1.4"> Here is an example
  308. of simple ruby markup:</a></p>
  309. <div class="figure">
  310. <pre class="xml">&lt;ruby&gt;
  311. &lt;rb&gt;WWW&lt;/rb&gt;
  312. &lt;rt&gt;World Wide Web&lt;/rt&gt;
  313. &lt;/ruby&gt;</pre>
  314. <p><strong>Figure 1.4</strong>: Example of simple ruby markup</p>
  315. </div>
  316. <p><a id="fig1.5" name="fig1.5">This may be rendered as follows:</a></p>
  317. <div class="figure">
  318. <p><img
  319. alt="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)."
  320. class="example" height="30" width="145" src="ruby-en-ex.gif"></p>
  321. <p><strong>Figure 1.5</strong>: Example of rendering for simple ruby markup
  322. in <a href="#fig1.4">Figure 1.4</a></p>
  323. </div>
  324. <p class="note"><strong>Note</strong>: The name of this enclosing element,
  325. "&lt;<code>ruby</code>&gt;", should be interpreted to mean that its contents
  326. are <em>associating</em> ruby text with base text. It must not be
  327. misunderstood to mean that everything inside, including the base text,
  328. <em>is</em> ruby. The name of the enclosing element was chosen to compactly
  329. and clearly identify the function of the markup construct; the names for the
  330. other elements were chosen to keep the overall length short.</p>
  331. </div>
  332. <div>
  333. <h4><a id="simple-parenthesis" name="simple-parenthesis">1.2.2 Simple ruby
  334. markup with parentheses</a></h4>
  335. <p>Some user agents might not understand ruby markup, or may not be able to
  336. render ruby text appropriately. In either situation, it is generally
  337. preferable to render ruby text, so that information is not lost. A generally
  338. acceptable fallback is to place the ruby text immediately after the base
  339. text, and to enclose the ruby text in parentheses. The parentheses reduce the
  340. potential for confusing the ruby text with other text. (It should be noted
  341. that text in parentheses in Japanese typography is never called "ruby".)</p>
  342. <p>For compatibility with older user agents that do not understand ruby
  343. markup and simply render the content of elements they do not understand,
  344. <code>rp</code> elements can be added to simple ruby markup to distinguish
  345. ruby text.</p>
  346. <p>The element name <code>rp</code> stands for "ruby parenthesis". The
  347. <code>rp</code> elements and the parentheses (or other characters) inside
  348. them are provided as a fallback mechanism only. User agents that ignore
  349. unknown elements, but render their contents, will display the contents of
  350. each <code>rp</code> element. Therefore the <code>rp</code> element can be
  351. used to denote both the beginning and end of ruby text.</p>
  352. <p>User agents that do know about ruby markup will recognize the
  353. <code>rp</code> element, and intentionally not display its contents. Instead,
  354. they will render the simple ruby markup in a more appropriate way.</p>
  355. <p><a id="fig1.6" name="fig1.6">The following example demonstrates the use of
  356. the <code>rp</code> element:</a></p>
  357. <div class="figure">
  358. <pre class="xml">&lt;ruby&gt;
  359. &lt;rb&gt;WWW&lt;/rb&gt;
  360. &lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;World Wide Web&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;
  361. &lt;/ruby&gt;</pre>
  362. <p><strong>Figure 1.6</strong>: Example of simple ruby markup including
  363. <code>rp</code> elements for fallback</p>
  364. </div>
  365. <p>User agents that either:</p>
  366. <ul>
  367. <li>do not know about ruby markup but render the contents of unknown
  368. elements, or</li>
  369. <li>cannot render the ruby text alongside the base text,</li>
  370. </ul>
  371. <p><a id="fig1.7" name="fig1.7">will render the above markup as:</a></p>
  372. <div class="figure">
  373. <p><strong>WWW (World Wide Web)</strong></p>
  374. <p><strong>Figure 1.7</strong>: Rendering of simple ruby markup using
  375. fallback parentheses</p>
  376. </div>
  377. <p>User agents that do know about ruby markup, and that have more
  378. sophisticated presentation styles for ruby text, will choose to not render
  379. the parentheses. For example, the markup of <a href="#fig1.6">figure 1.6</a>
  380. can be rendered as shown in the next figure.</p>
  381. <div class="figure">
  382. <p><a id="fig1.8" name="fig1.8"><img
  383. alt="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)."
  384. class="example" height="30" width="145" src="ruby-en-ex.gif"></a></p>
  385. <p><strong>Figure 1.8</strong>: <code>rp</code> element ignored in favor of
  386. more sophisticated rendering</p>
  387. </div>
  388. </div>
  389. <div>
  390. <h4><a id="complex" name="complex">1.2.3 Complex ruby markup</a></h4>
  391. <p>Complex ruby markup is used to associate more than one ruby text with a
  392. base text, or to associate parts of ruby text with parts of base text.</p>
  393. <p>Complex ruby markup provides for multiple <code>rb</code> and
  394. <code>rt</code> elements. This specification defines container elements that
  395. make the association between the individual elements clear. The ruby base
  396. container element, <code>rbc</code>, encloses <code>rb</code> elements. There
  397. can be one or two ruby text container elements, <code>rtc</code>, that
  398. enclose <code>rt</code> elements. This allows association of two ruby text
  399. containers with the same base text. With complex ruby markup it is also
  400. possible to associate parts of the base text with parts of a ruby text by
  401. using a number of <code>rb</code> elements, and a corresponding number of
  402. <code>rt</code> elements. In addition, the <code>rt</code> element may use
  403. the <code>rbspan</code> attribute to indicate that a single <code>rt</code>
  404. element spans (is associated with) multiple <code>rb</code> elements. This is
  405. similar to the <a
  406. href="http://www.w3.org/TR/html4/struct/tables.html#adef-colspan"><code>colspan</code></a>
  407. attribute of the <code>th</code> and <code>td</code> elements in tables ([<a
  408. href="#html4">HTML4</a>], section 11.2.6).</p>
  409. <p>Where and how each part of complex ruby markup is rendered is defined as
  410. part of the respective style sheet languages; see also section 3 for further
  411. information.</p>
  412. <p><a id="fig1.9" name="fig1.9">The following example shows all these
  413. features.</a></p>
  414. <div class="figure">
  415. <pre class="xml">&lt;ruby&gt;
  416. &lt;rbc&gt;
  417. &lt;rb&gt;10&lt;/rb&gt;
  418. &lt;rb&gt;31&lt;/rb&gt;
  419. &lt;rb&gt;2002&lt;/rb&gt;
  420. &lt;/rbc&gt;
  421. &lt;rtc&gt;
  422. &lt;rt&gt;Month&lt;/rt&gt;
  423. &lt;rt&gt;Day&lt;/rt&gt;
  424. &lt;rt&gt;Year&lt;/rt&gt;
  425. &lt;/rtc&gt;
  426. &lt;rtc&gt;
  427. &lt;rt rbspan="3"&gt;Expiration Date&lt;/rt&gt;
  428. &lt;/rtc&gt;
  429. &lt;/ruby&gt;</pre>
  430. <p><strong>Figure 1.9</strong>: Complex ruby markup to associate two ruby
  431. texts with different parts of the same base text.</p>
  432. </div>
  433. <p>In this example, the first ruby text container encloses 3 components
  434. ("Month", "Day", "Year"). Each of these components is associated with a
  435. corresponding component in the base text ("10", "31", "2002"). The second
  436. ruby text container ("Expiration Date") consists of a single ruby text, and
  437. is associated with the entire base text ("10 31 2002"). <a id="fig1.10"
  438. name="fig1.10">It may be rendered as shown in figure 1.10.</a></p>
  439. <div class="figure">
  440. <table>
  441. <tbody>
  442. <tr class="rt" style="text-align: center">
  443. <td>Month</td>
  444. <td>Day</td>
  445. <td>Year</td>
  446. </tr>
  447. <tr class="rb" style="text-align: center">
  448. <td><strong>10</strong></td>
  449. <td><strong>31</strong></td>
  450. <td><strong>2002</strong></td>
  451. </tr>
  452. <tr class="rt" style="text-align: center">
  453. <td colspan="3">Expiration Date</td>
  454. </tr>
  455. </tbody>
  456. </table>
  457. <p><strong>Figure 1.10</strong>: Rendering of the complex ruby markup in <a
  458. href="#fig1.9">figure 1.9</a></p>
  459. </div>
  460. <p>The example shows that the association of ruby text with base text can be
  461. more or less granular as needed. For example, the ruby text can be associated
  462. with the entire base text in cases where:</p>
  463. <ul>
  464. <li>a more detailed relationship is unknown, or</li>
  465. <li>when the reading or annotation only applies to the whole unit and
  466. cannot be split into pieces.</li>
  467. </ul>
  468. <p>More fine-grained associations can also be made when the relationships are
  469. known. For these situations, an improved rendering can therefore be provided.
  470. For example, a person's name can be decomposed into family name and given
  471. name, or a <span lang="ja">kanji</span> compound or phrase can be decomposed
  472. into semantic subparts or individual characters. With either fine or course
  473. granularity, the spans of the ruby text can be set with the corresponding
  474. spacing in the base text, and better readability and a more balanced layout
  475. may be achieved.</p>
  476. <p>The <code>rp</code> element is not available in the case of complex ruby
  477. markup. There are two reasons for this. First, the <code>rp</code> element is
  478. only a fallback mechanism, and it was considered that this is much more
  479. important for the more frequent simple case. Second, for the more complex
  480. cases, it is difficult to come up with a reasonable fallback display, and
  481. constructing markup for such cases can be even more difficult if not
  482. impossible.</p>
  483. </div>
  484. <div>
  485. <h4><a id="summary" name="summary">1.2.4 Summary</a></h4>
  486. <p>In summary, the <code>ruby</code> element serves as a container for one of
  487. the following:</p>
  488. <ul>
  489. <li>a combination of <code>rb</code>, <code>rt</code> and possibly
  490. <code>rp</code> elements (<strong>simple ruby markup</strong>) for:
  491. <ul>
  492. <li>Association of a single ruby text with a single base text</li>
  493. <li>Fallback in case the ruby markup is not understood.</li>
  494. </ul>
  495. </li>
  496. <li>a combination of a single <code>rbc</code> and one or two
  497. <code>rtc</code> container elements (<strong>complex ruby
  498. markup</strong>) for:
  499. <ul>
  500. <li>Associating two ruby texts with the same base text</li>
  501. <li>Defining more fine-grained associations between parts of a ruby
  502. text and parts of the base text.</li>
  503. </ul>
  504. </li>
  505. </ul>
  506. </div>
  507. </div>
  508. </div>
  509. <div class="normative">
  510. <h2><a id="definition" name="definition">2.  Formal definition of ruby
  511. markup</a></h2>
  512. <p>This section is <em>normative</em>.</p>
  513. <p>This section contains the formal syntax definition and the specification
  514. of the functionality of the ruby markup. Some familiarity with the <acronym
  515. title="Extensible HyperText Markup Language">XHTML</acronym> Modularization
  516. framework, in particular the "<cite>Modularization of <acronym
  517. title="Extensible HyperText Markup Language">XHTML</acronym></cite>" [<a
  518. href="#xhtmlmod">XHTMLMOD</a>] specification, is assumed.</p>
  519. <div>
  520. <h3><a id="abstract-def" name="abstract-def">2.1  Abstract definition of
  521. ruby markup</a></h3>
  522. <p>The following is the abstract definition of the elements for ruby markup,
  523. which is consistent with the <acronym
  524. title="Extensible HyperText Markup Language">XHTML</acronym> Modularization
  525. framework [<a href="#xhtmlmod">XHTMLMOD</a>]. Further definitions of <acronym
  526. title="Extensible HyperText Markup Language">XHTML</acronym> abstract modules
  527. can be found in [<a href="#xhtmlmod">XHTMLMOD</a>].</p>
  528. <table border="1" summary="Elements and Attributes for Ruby Module">
  529. <thead>
  530. <tr>
  531. <th scope="col">Elements</th>
  532. <th scope="col">Attributes</th>
  533. <th scope="col">Minimal Content Model</th>
  534. </tr>
  535. </thead>
  536. <tbody>
  537. <tr>
  538. <td abbr="element"><a id="ruby-abstract" name="ruby-abstract"
  539. href="#ruby">ruby</a></td>
  540. <td abbr="attribute">Common</td>
  541. <td abbr="content" class="content">(rb, (rt | (rp, rt, rp)))</td>
  542. </tr>
  543. <tr>
  544. <td abbr="element"><a id="rbc-abstract" name="rbc-abstract"
  545. href="#rbc">rbc</a></td>
  546. <td abbr="attribute">Common</td>
  547. <td abbr="content" class="content">rb+</td>
  548. </tr>
  549. <tr>
  550. <td abbr="element"><a id="rtc-abstract" name="rtc-abstract"
  551. href="#rtc">rtc</a></td>
  552. <td abbr="attribute">Common</td>
  553. <td abbr="content" class="content">rt+</td>
  554. </tr>
  555. <tr>
  556. <td abbr="element"><a id="rb-abstract" name="rb-abstract"
  557. href="#rb">rb</a></td>
  558. <td abbr="attribute">Common</td>
  559. <td abbr="content" class="content">(PCDATA | Inline - ruby)*</td>
  560. </tr>
  561. <tr>
  562. <td abbr="element"><a id="rt-abstract" name="rt-abstract"
  563. href="#rt">rt</a></td>
  564. <td abbr="attribute">Common, rbspan (CDATA)</td>
  565. <td abbr="content" class="content">(PCDATA | Inline - ruby)*</td>
  566. </tr>
  567. <tr>
  568. <td abbr="element"><a id="rp-abstract" name="rp-abstract"
  569. href="#rp">rp</a></td>
  570. <td abbr="attribute">Common</td>
  571. <td abbr="content" class="content">PCDATA*</td>
  572. </tr>
  573. </tbody>
  574. </table>
  575. <p>The maximal content model for the <code>ruby</code> element is as
  576. follows:</p>
  577. <pre class="content">((rb, (rt | (rp, rt, rp))) | (rbc, rtc, rtc?))</pre>
  578. <p>The minimal content model for the <code>ruby</code> element corresponds to
  579. simple ruby markup. The <code>(rbc, rtc, rtc?)</code> alternative of the
  580. maximal content model for the <code>ruby</code> element corresponds to
  581. complex ruby markup.</p>
  582. <p>An implementation of this abstract definition as an <acronym
  583. title="Extensible HyperText Markup Language">XHTML</acronym> <acronym
  584. title="Document Type Definition">DTD</acronym> module can be found in <a
  585. href="#module">Appendix A</a>. An <abbr
  586. title="Extensible Markup Language">XML</abbr> Schema [<a
  587. href="#xmlschema">XMLSchema</a>] implementation is being worked on (see [<a
  588. href="#ModSchema">ModSchema</a>]).</p>
  589. </div>
  590. <div>
  591. <h3><a id="ruby" name="ruby">2.2  The <code>ruby</code> element</a></h3>
  592. <p>The <code>ruby</code> element is an inline (or text-level) element that
  593. serves as an overall container. It contains either the <a
  594. href="#rb"><code>rb</code></a>, <a href="#rt"><code>rt</code></a> and
  595. optional <a href="#rp"><code>rp</code></a> elements (simple ruby markup) or
  596. the <a href="#rbc"><code>rbc</code></a> and <a
  597. href="#rtc"><code>rtc</code></a> elements (complex ruby markup).</p>
  598. <p>In the case of simple ruby markup, the <code>ruby</code> element contains
  599. either an <a href="#rb"><code>rb</code></a> element followed by an <a
  600. href="#rt"><code>rt</code></a> element, or a sequence of an <a
  601. href="#rb"><code>rb</code></a> element, an <a href="#rp"><code>rp</code></a>
  602. element, an <a href="#rt"><code>rt</code></a> element and another <a
  603. href="#rp"><code>rp</code></a> element. The content of the <a
  604. href="#rt"><code>rt</code></a> element is taken as ruby text and associated
  605. with the content of the <code><a href="#rb"><code>rb</code></a></code>
  606. element as the base text. The content of the <a
  607. href="#rp"><code>rp</code></a> elements, if present, is ignored.</p>
  608. <p>In the case of complex ruby markup, the <code>ruby</code> element contains
  609. an <a href="#rbc"><code>rbc</code></a> element followed by one or two <a
  610. href="#rtc"><code>rtc</code></a> elements. The content of the subelements of
  611. each <a href="#rtc"><code>rtc</code></a> element is taken as ruby text and
  612. associated with the content of the subelements of the <a
  613. href="#rbc"><code>rbc</code></a> element as the base text.</p>
  614. <p>The <code>ruby</code> element has common attributes only. Examples of
  615. common attributes include: <code>id</code>, <code>class</code> or
  616. <code>xml:lang</code>. Common attributes depend on the markup language with
  617. which ruby markup is used. In the case of [<a href="#xhtml11">XHTML 1.1</a>],
  618. these are defined in <a
  619. href="http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_commonatts">XHTML
  620. Modularization, Section 5.1</a> [<a href="#xhtmlmod">XHTMLMOD</a>].</p>
  621. </div>
  622. <div>
  623. <h3><a id="rbc" name="rbc">2.3  The <code>rbc</code> element</a></h3>
  624. <p>The <code>rbc</code> (ruby base container) element serves as the container
  625. for <a href="#rb"><code>rb</code></a> elements in the case of complex ruby
  626. markup. Only one <code>rbc</code> element may appear inside a <a
  627. href="#ruby"><code>ruby</code></a> element.</p>
  628. <p>The <code>rbc</code> element has common attributes only.</p>
  629. </div>
  630. <div>
  631. <h3><a id="rtc" name="rtc">2.4  The <code>rtc</code> element</a></h3>
  632. <p>The <code>rtc</code> (ruby text container) element serves as the container
  633. for <a href="#rt"><code>rt</code></a> elements in the case of complex ruby
  634. markup. One or two <code>rtc</code> elements may appear inside a <a
  635. href="#ruby"><code>ruby</code></a> element to associate ruby texts with a
  636. single base text, represented by an <a href="#rbc"><code>rbc</code></a>
  637. element. More than two <code>rtc</code> elements MUST NOT appear inside a <a
  638. href="#ruby"><code>ruby</code></a> element.</p>
  639. <p>The <code>rtc</code> element has common attributes only.</p>
  640. </div>
  641. <div>
  642. <h3><a id="rb" name="rb">2.5  The <code>rb</code> element</a></h3>
  643. <p>The <code>rb</code> (ruby base) element serves to markup the base text.
  644. For simple ruby markup, only one <code>rb</code> element may appear. For
  645. complex ruby markup, multiple <code>rb</code> elements may appear inside an
  646. <a href="#rbc"><code>rbc</code></a> element. Each <code>rb</code> element is
  647. associated with a corresponding <a href="#rt"><code>rt</code></a> element,
  648. for fine-grained control of ruby presentation.</p>
  649. <p>The <code>rb</code> element may contain inline elements or character data
  650. as its content, but the <a href="#ruby"><code>ruby</code></a> element is not
  651. allowed as its descendant element.</p>
  652. <p>The <code>rb</code> element has common attributes only.</p>
  653. </div>
  654. <div>
  655. <h3><a id="rt" name="rt">2.6  The <code>rt</code> element</a></h3>
  656. <p>The <code>rt</code> element is the markup for ruby text. For simple ruby
  657. markup, only one <code>rt</code> element may appear. For complex ruby markup,
  658. multiple <code>rt</code> elements may appear inside an <a
  659. href="#rtc"><code>rtc</code></a> element, and each <code>rt</code> element
  660. contains the ruby text for the relevant base text, represented by the
  661. corresponding <a href="#rb"><code>rb</code></a> element.</p>
  662. <p>The <code>rt</code> element may contain inline elements or character data
  663. as its content, but the <a href="#ruby"><code>ruby</code></a> element is not
  664. allowed as its descendant element.</p>
  665. <p>The <code>rt</code> element has common attributes and the
  666. <code>rbspan</code> attribute. In complex ruby markup, the
  667. <code>rbspan</code> attribute allows an <code>rt</code> element to span
  668. multiple <a href="#rb"><code>rb</code></a> elements. The value shall be an
  669. integer value greater than zero ("0"). The default value of this attribute is
  670. one ("1"). The <code>rbspan</code> attribute should not be used in simple
  671. ruby markup, and user agents should ignore the <code>rbspan</code> attribute
  672. when it appears in simple ruby markup.</p>
  673. </div>
  674. <div>
  675. <h3><a id="rp" name="rp">2.7  The <code>rp</code> element</a></h3>
  676. <p>The <code>rp</code> element can be used in the case of simple ruby markup
  677. to specify characters that can denote the beginning and end of ruby text when
  678. user agents do not have other ways to present ruby text distinctively from
  679. the base text. Parentheses (or similar characters) can provide an acceptable
  680. fallback. In this situation, ruby text will only degrade to be rendered
  681. inline and enclosed in the fallback parentheses. This is the least
  682. inappropriate rendering under the condition that only inline rendering is
  683. available. The <code>rp</code> element cannot be used with complex ruby
  684. markup.</p>
  685. <p>The <code>rp</code> element has common attributes only.</p>
  686. <p>Using parentheses for the fallback may lead to confusion between runs of
  687. text intended to be ruby text and other runs that happen to be enclosed
  688. within parentheses. The document or style sheet author should be aware of the
  689. potential for that confusion and is advised to choose an unambiguous
  690. delimiter for the fallback.</p>
  691. </div>
  692. </div>
  693. <div class="informative">
  694. <h2><a id="rendering" name="rendering">3. Rendering and styling
  695. considerations</a></h2>
  696. <p>This section is <em>informative</em>.</p>
  697. <p>This section discusses various aspects of rendering and styling in the
  698. context of ruby markup as defined in this document. However, this document
  699. does not specify any mechanisms for presentation/styling; this is left to the
  700. respective style sheet languages. Formatting properties for styling ruby are
  701. under development for <acronym title="Cascading Style Sheets">CSS</acronym>
  702. and <acronym title="Extensible Style Language">XSL</acronym>. See for example
  703. "<cite>CSS3 module: Ruby</cite>" [<a href="#css3-ruby">CSS3-RUBY</a>]
  704. (<em>work in progress</em>) for more details.</p>
  705. <p>Details of ruby formatting in a Japanese print context can be found in
  706. JIS-X-4051 [<a href="#jis">JIS4051</a>].</p>
  707. <div>
  708. <h3><a id="web" name="web">3.1 Ruby on the Web vs. traditional typographic
  709. usage</a></h3>
  710. <p>The term "ruby" in Japanese is only used for text visually rendered
  711. alongside the base text. Considerations for such cases are given in <a
  712. href="#font">section 3.2</a> (font size), <a href="#positioning">section
  713. 3.3</a> (positioning), and <a href="#presentation">section 3.4</a>
  714. (presentation of ruby markup). This kind of presentation should be used
  715. wherever possible. However, introducing ruby to the Web may lead to some
  716. phenomena and problems that are not present in traditional typography.
  717. Structural markup for ruby, as defined in this specification, cannot
  718. guarantee that ruby text will always be rendered alongside the base text.
  719. There are a very wide variety of current and future output devices for
  720. documents marked up with <acronym
  721. title="Extensible HyperText Markup Language">XHTML</acronym>. The following
  722. are possible scenarios and reasons for different rendering:</p>
  723. <ul>
  724. <li>On non-visual user agents such as voice browsers and braille user
  725. agents, only sequential rendering is possible. See <a
  726. href="#non-visual">section 3.5</a> for more consideration on non-visual
  727. rendering.</li>
  728. <li>On display devices with low resolution, displaying ruby text at the
  729. usual size may not be feasible. Fallbacks may be used. See <a
  730. href="#rp-alternatives">section 3.6</a> for additional details.</li>
  731. <li>For educational purposes, it may in some cases be interesting to hide
  732. the ruby text and make it available as a pop-up. This is impossible on
  733. paper, but easily possible on a dynamic display device.</li>
  734. </ul>
  735. </div>
  736. <div>
  737. <h3><a id="font" name="font">3.2 Font size of ruby text</a></h3>
  738. <p>In typical usage, the font size of ruby text is normally about half the
  739. font size of the base text. In fact, the name "ruby" originated from the name
  740. of the 5.5<abbr title="points">pt</abbr> font size in British printing, which
  741. is about half the 10<abbr title="points">pt</abbr> font size commonly used
  742. for normal text.</p>
  743. </div>
  744. <div>
  745. <h3><a id="positioning" name="positioning">3.3 Positioning of ruby
  746. text</a></h3>
  747. <p>There are several positions where the ruby text can appear relative to its
  748. base text. Because East Asian text may be rendered vertically as well as
  749. horizontally, the terms "before" and "after" are used here rather than
  750. "above" and "below" or "right side" and "left side". The words "before" and
  751. "after" should be understood as "before"/"after" the line containing the base
  752. text. The correspondence is shown in the following table:</p>
  753. <table border="1" cellpadding="8" class="rendering">
  754. <tbody>
  755. <tr>
  756. <th>terminology</th>
  757. <td><strong>Horizontal Layout</strong><br>
  758. (left-to-right, top-to-bottom)</td>
  759. <td><strong>Vertical Layout</strong><br>
  760. (top-to-bottom, right-to-left)</td>
  761. </tr>
  762. <tr>
  763. <th abbr='position'>before</th>
  764. <td abbr='horizontal'>above</td>
  765. <td abbr='vertical'>right-side</td>
  766. </tr>
  767. <tr>
  768. <th abbr='position'>after</th>
  769. <td abbr='horizontal'>below</td>
  770. <td abbr='vertical'>left-side</td>
  771. </tr>
  772. </tbody>
  773. </table>
  774. <p>Ruby texts are most frequently placed before the base text (see <a
  775. href="#fig1.1">figure 1.1</a> and <a href="#fig3.2">figure 3.2</a>).
  776. Sometimes, especially in horizontal educational documents, ruby text may
  777. appear after the base text, i.e. below (see <a href="#fig3.1">figure
  778. 3.1</a>). In Chinese, it is rather common that <span lang="zh">Pinyin</span>
  779. ruby text appears after the base text. Ruby text may also appear after the
  780. base text in vertical layout (see <a href="#fig3.3">figure 3.3</a>). In all
  781. these cases, the writing direction of the ruby text is the same as that of
  782. its base text, that is vertical if the base text is vertical, and horizontal
  783. if the base text is horizontal.</p>
  784. <div class="figure">
  785. <p><a id="fig3.1" name="fig3.1"><img
  786. alt="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)."
  787. class="example" height="36" width="142" src="shinkansen-bottom.gif"></a></p>
  788. <p><strong>Figure 3.1</strong>: Ruby text (Latin letters) after/below the
  789. base text (Japanese ideographs)</p>
  790. </div>
  791. <div class="figure">
  792. <p><a id="fig3.2" name="fig3.2"><img
  793. alt="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)."
  794. class="example" height="141" width="33" src="shinkansen-right.gif"></a></p>
  795. <p><strong>Figure 3.2</strong>: Ruby text in vertical writing (before/to the
  796. right)</p>
  797. </div>
  798. <div class="figure">
  799. <p><a id="fig3.3" name="fig3.3"><img
  800. alt="Example showing ruby on the left side of vertical Japanese text"
  801. class="example" height="141" width="37" src="shinkansen-left.gif"></a></p>
  802. <p><strong>Figure 3.3</strong>: Ruby text in vertical writing (after/to the
  803. left).</p>
  804. </div>
  805. <p>In traditional Chinese texts, "<span lang="zh">Bopomofo</span>" ruby text
  806. can appear along the right side of the base text even in horizontal
  807. layout.</p>
  808. <div class="figure">
  809. <p><a id="fig3.4" name="fig3.4"><img
  810. alt="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)."
  811. class="example" height="42" width="138" src="bopomofo.gif"></a></p>
  812. <p><strong>Figure 3.4</strong>: "<span lang="zh">Bopomofo</span>" ruby text
  813. in traditional Chinese (ruby text shown in blue/red for clarity) in
  814. horizontal layout</p>
  815. </div>
  816. <p>Note that <span lang="zh">Bopomofo</span> tone marks (in the above example
  817. shown in red for clarity) seem to appear in a separate column (along the
  818. right side of the <span lang="zh">Bopomofo</span> ruby text) and therefore
  819. might be seen as "ruby on ruby". However, they are simply encoded as part of
  820. the ruby text. The details of this encoding are not addressed in this
  821. document.</p>
  822. </div>
  823. <div>
  824. <h3><a id="presentation" name="presentation">3.4 Presentation of ruby
  825. markup</a></h3>
  826. <p>This specification does not prescribe how ruby markup will be displayed.
  827. Style sheets, in general, will be used to specify the exact behavior of ruby
  828. markup.</p>
  829. <div class="note">
  830. <p><strong>Note.</strong> Although the rendering of the ruby texts should be
  831. controlled by style sheets, in case no style information is provided by the
  832. author or the user, it is recommended that visual user agents place the ruby
  833. text before the base text when only one ruby text is used. This is also the
  834. case for simple ruby. When there are two ruby texts, the first ruby text
  835. should be placed before the base text, and the second ruby text should be
  836. placed after the base text. A sample user agent default style sheet which
  837. describes this formatting will be provided by [<a
  838. href="#css3-ruby">CSS3-RUBY</a>] or its successor document.</p>
  839. <p>For non-visual rendering, in the absence of style sheet information, it is
  840. recommended that both the base text and the ruby text(s) should be rendered,
  841. with an indication (e.g. different voice, different pitch, ...) of the status
  842. of each.</p>
  843. </div>
  844. <p><a id="fig3.5" name="fig3.5">In order for style sheets to be able to apply
  845. styling, or for other mechanisms to render ruby text appropriately, it is
  846. very important to provide enough information on the function of each
  847. component. The following example illustrates the use of the class attribute
  848. to allow style sheets to define the exact presentation of the ruby text. The
  849. class "<samp>reading</samp>" is used for a ruby text that indicates reading.
  850. The class "<samp>annotation</samp>" is used to indicate ruby text that is
  851. used for annotation. The <code>xml:lang</code> attribute indicates the
  852. language of the text.</a></p>
  853. <div class="figure">
  854. <pre class="xml">&lt;ruby xml:lang="ja"&gt;
  855. &lt;rbc&gt;
  856. &lt;rb&gt;斎&lt;/rb&gt;
  857. &lt;rb&gt;藤&lt;/rb&gt;
  858. &lt;rb&gt;信&lt;/rb&gt;
  859. &lt;rb&gt;男&lt;/rb&gt;
  860. &lt;/rbc&gt;
  861. &lt;rtc class="reading"&gt;
  862. &lt;rt&gt;さい&lt;/rt&gt;
  863. &lt;rt&gt;とう&lt;/rt&gt;
  864. &lt;rt&gt;のぶ&lt;/rt&gt;
  865. &lt;rt&gt;お&lt;/rt&gt;
  866. &lt;/rtc&gt;
  867. &lt;rtc class="annotation"&gt;
  868. &lt;rt rbspan="4" xml:lang="en"&gt;W3C Associate Chairman&lt;/rt&gt;
  869. &lt;/rtc&gt;
  870. &lt;/ruby&gt;</pre>
  871. <p><strong>Figure 3.5</strong>: Ruby markup with <code>class</code> and
  872. <code>xml:lang</code> attributes.</p>
  873. </div>
  874. <p>Using a style sheet specifying horizontal text, rendering of the reading
  875. before the base text, and rendering of the annotation after the base text,
  876. the markup above could be rendered like this:</p>
  877. <div class="figure">
  878. <p><a id="fig3.6" name="fig3.6"><img src="chairman.gif"
  879. alt="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'."></a></p>
  880. <p><strong>Figure 3.6</strong>: Horizontal rendering of two ruby texts
  881. associated with a single base text.</p>
  882. </div>
  883. </div>
  884. <div>
  885. <h3><a id="non-visual" name="non-visual">3.5 Considerations for non-visual
  886. rendering</a></h3>
  887. <p>Documents containing ruby markup may in some cases need to be rendered by
  888. non-visual user agents such as voice browsers and braille user agents. For
  889. such rendering scenarios, it is important to understand that:</p>
  890. <ul>
  891. <li>Depending on the user and the situation, different ways of rendering
  892. may be appropriate.</li>
  893. <li>Ruby text that represents reading may have to be treated differently
  894. from ruby text that contains other information.</li>
  895. <li>For appropriate non-visual rendering, it is important to indicate the
  896. function of each ruby text.</li>
  897. <li>There often are some differences between the reading indicated by the
  898. ruby text and the actual pronunciation.</li>
  899. <li>The reader may be interested in getting information about the
  900. (ideographic) base text.</li>
  901. </ul>
  902. <p>Depending on a user's needs, the way a text should be read may vary from
  903. very quick and 'cursory' reading to very careful and detailed reading. This
  904. may lead to different ways of treating ruby text in non-visual rendering,
  905. from skipping ruby text in fast reading to detailed exploration of the ruby
  906. structure and the actual characters used in careful reading.</p>
  907. <p>In the frequent case that ruby texts represent reading, rendering both the
  908. base text and the ruby text may produce annoying duplications. A speech
  909. synthesizer may be able to correctly pronounce the base text based on a large
  910. dictionary, or it may in other cases be able to select the right
  911. pronunciation based on the reading given by the ruby text.</p>
  912. <p>Not all ruby texts represent pronunciations. Authors should distinguish
  913. ruby texts used for different purposes by using the <code>class</code>
  914. attribute. This is demonstrated above by using <samp>class="reading"</samp>
  915. for ruby text used to indicate reading.</p>
  916. <p>Ruby text indicating reading may not produce the correct pronunciation
  917. even in cases where the script used at first glance seems perfectly phonetic.
  918. For example, <span lang="zh">Bopomofo</span> is associated independently for
  919. each character of the base text; context-dependent sound or tone changes are
  920. not reflected. Similarly, in Japanese, spelling irregularities can occur,
  921. such as using "<span lang='ja'>は</span>" (<span lang='ja'>hiragana ha</span>) for the topic suffix pronounced "<span lang='ja'>わ</span>" (<span lang='ja'>wa</span>),
  922. or using vowels for indicating lengthening. For such cases, authors may want
  923. to supply the actual pronunciation with special markup designed for that
  924. purpose, or may rely on the aural rendering system being able to handle such
  925. cases correctly.</p>
  926. </div>
  927. <div>
  928. <h3><a id="rp-alternatives" name="rp-alternatives">3.6 Alternatives to the
  929. <code>rp</code> element</a></h3>
  930. <p>If the author is not concerned about fallbacks for user agents that
  931. neither know about ruby markup nor support <acronym
  932. title="Cascading Style Sheets, level 2">CSS2</acronym> [<a
  933. href="#css2">CSS2</a>] or <acronym
  934. title="Extensible Style Language">XSL</acronym> [<a href="#xsl">XSL</a>]
  935. style sheets, then the <code>rp</code> elements are not needed.</p>
  936. <p>Nevertheless, it is possible to parenthesize ruby text as a fallback if
  937. for example the device resolution is not appropriate for traditional ruby
  938. rendering. Using [<a href="#css2">CSS2</a>], the parentheses can be generated
  939. using the <a
  940. href="http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#content">'content'
  941. property</a> ([<a href="#css2">CSS2</a>], section 12.2) with the <a
  942. href="http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#before-after-content">:before
  943. and :after pseudo-elements</a> ([<a href="#css2">CSS2</a>], section 12.1), <a
  944. id="fig3.8" name="fig3.8">as for example in the following style
  945. fragment:</a></p>
  946. <div class="figure">
  947. <pre class="style">rt:before { content: "(" }
  948. rt:after { content: ")" }</pre>
  949. <p><strong>Figure 3.8</strong>: <acronym
  950. title="Cascading Style Sheets, level 2">CSS2</acronym> style fragment to
  951. generate parentheses around an <code>rt</code> element</p>
  952. </div>
  953. <p>In the above example, parentheses will be automatically generated around
  954. the <code>rt</code> element. It is assumed that the above style rules are
  955. used together with style rules that position the ruby text inline. Generation
  956. of parentheses is straightforward with <acronym
  957. title="XSL Transformations">XSLT</acronym> [<a href="#xslt">XSLT</a>].</p>
  958. </div>
  959. </div>
  960. <div class="normative">
  961. <h2><a name="conformance">4. Conformance Criteria</a></h2>
  962. <p>This section is <em>normative</em>.</p>
  963. <p>Within the context of this specification, conformance can be claimed for
  964. markup, document types, module implementations, documents, generators, and
  965. interpreters. In most of these cases, two levels of conformance are
  966. available: simple conformance and full conformance. Simple conformance means
  967. that the conforming object supports the minimal content model of the ruby
  968. element in <a href="#abstract-def">section
  969. 2.1</a>, i.e. only simple ruby markup. Full conformance means that the
  970. conforming object supports the maximal content model of the ruby element in
  971. <a href="#abstract-def">section 2.1</a>,
  972. i.e. that both simple and complex ruby markup are supported.</p>
  973. <p>Markup is <em>conforming simple ruby markup</em> if it contains one or
  974. more <code>ruby</code> elements and the content of all those elements
  975. (including their children) conforms to the minimal content model in <a
  976. href="#abstract-def">section 2.1</a> (i.e.
  977. only simple ruby markup is allowed). Markup is <em>conforming full ruby
  978. markup</em> if it contains one or more <code>ruby</code> elements and the
  979. content of all those elements (including their children) conforms to the
  980. maximal content model in <a
  981. href="#abstract-def">section 2.1</a> (i.e.
  982. both simple and complex ruby markup is allowed).</p>
  983. <p>A document type is a <em>conforming simple ruby markup document type</em>
  984. if it integrates conforming simple ruby markup by adding the
  985. <code>ruby</code> element to the appropriate elements (such as inline
  986. elements) and by defining the necessary elements and attributes. A document
  987. type is a <em>conforming full ruby markup document type</em> if it integrates
  988. conforming full ruby markup by adding the <code>ruby</code> element to the
  989. appropriate elements (such as inline elements) and by defining the necessary
  990. elements and attributes.</p>
  991. <p>A module implementation (e.g. with DTD or XML Schema technology) is a
  992. <em>conforming simple ruby module implementation</em> if it is designed to
  993. integrate simple ruby markup with other modules into document types as
  994. described above. A module implementation is a <em>conforming complex ruby
  995. module implementation</em> if it is designed to integrate full ruby markup
  996. with other modules into document types as described above. A module
  997. implementation is a <em>conforming full ruby module implementation</em> if it
  998. is designed to integrate either simple or full ruby markup with other modules
  999. into document types as described above (e.g. by providing a switch, or by
  1000. providing two separate module implementations).</p>
  1001. <p>A document is a <em>conforming simple ruby markup document</em> if it
  1002. contains conforming simple ruby markup and does not contain complex ruby
  1003. markup or non-conforming ruby markup. A document is a <em>conforming full
  1004. ruby markup document</em> if it contains conforming full ruby markup and does
  1005. not contain non-conforming ruby markup.</p>
  1006. <p>A generator is a <em>conforming simple ruby markup generator</em> if it
  1007. generates conforming simple ruby markup and does not generate complex ruby
  1008. markup or non-conforming ruby markup. A generator is a <em>conforming full
  1009. ruby markup generator</em> if it generates conforming full ruby markup and
  1010. does not generate non-conforming ruby markup.</p>
  1011. <p>An interpreter is a <em>conforming simple ruby markup interpreter</em> if
  1012. it rejects nonconforming simple ruby markup, accepts conforming simple ruby
  1013. markup, and, where it interprets ruby markup, does so in accordance with this
  1014. specification. An interpreter is a <em>conforming full ruby markup
  1015. interpreter</em> if it rejects nonconforming ruby markup, accepts conforming
  1016. full ruby markup, and, where it interprets ruby markup, does so in accordance
  1017. with this specification. Examples of interpreters are server-side analysis or
  1018. transformation tools and renderers.</p>
  1019. <p>For XHTML Modularization conformance, please see section 3 of [<a
  1020. href="#xhtmlmod">XHTMLMOD</a>].</p>
  1021. </div>
  1022. <hr>
  1023. <div>
  1024. <h2><a id="appendix" name="appendix">Appendices</a></h2>
  1025. <div class="informative">
  1026. <h2><a id="module" name="module">A.  Ruby module for <acronym
  1027. title="Extensible HyperText Markup Language">XHTML</acronym></a></h2>
  1028. <p>This appendix is <em>informative</em>.</p>
  1029. <p>The following is a link to the Ruby <acronym
  1030. title="Document Type Definition">DTD</acronym> module that is used in
  1031. <acronym title="Extensible HyperText Markup Language">XHTML</acronym> 1.1 [<a
  1032. href="#xhtml11">XHTML11</a>].</p>
  1033. <ul>
  1034. <li><a href="xhtml-ruby-1.mod"><acronym
  1035. title="Extensible HyperText Markup Language">XHTML</acronym> Ruby
  1036. Module</a></li>
  1037. </ul>
  1038. </div>
  1039. <div class="informative">
  1040. <h2><a id="design" name="design">B. Notes on design decisions</a></h2>
  1041. <p>This appendix is <em>informative</em>. This appendix contains some notes
  1042. on design decisions, based on questions and comments received during the Last
  1043. Call review.</p>
  1044. <p>There were proposals to change e.g. &lt;rbc&gt;&lt;rb&gt;...&lt;/rbc&gt;
  1045. to &lt;rb&gt;&lt;rbc&gt;...&lt;/rb&gt; (and similar for rt/rtc). This looks
  1046. in some way more natural. However, in XML, the content of an element is
  1047. either mixed content (both character data and elements, without sequence or
  1048. occurrence restrictions) or element content (only elements, with
  1049. restrictions). This means that it is impossible to say that &lt;rb&gt;
  1050. contains either only &lt;rbc&gt; elements or only character data and inline
  1051. elements.</p>
  1052. <p>There were various proposals for removing the <code><a
  1053. href="#rp">rp</a></code> element from the minimal content model. They were
  1054. considered, but rejected for the following reasons:</p>
  1055. <ul>
  1056. <li>Recognition and removal of the <code><a href="#rp">rp</a></code>
  1057. elements by a receiver understanding ruby markup is extremely simple to
  1058. implement; the burden on implementations is minimal. Both CSS and XSL
  1059. provide easy mechanisms to remove the <code><a href="#rp">rp</a></code>
  1060. elements or to avoid displaying them.</li>
  1061. <li>Displaying ruby text in parentheses is not desirable, because it can be
  1062. confused with ordinary parenthesized text, but such a confusion is highly
  1063. preferable to the confusion created should ruby text appear inline, as
  1064. part of the actual text, without any distinguishing features.</li>
  1065. </ul>
  1066. <p>It was suggested to change the names of the elements, in particular to
  1067. change &lt;ruby&gt; to &lt;gloss&gt;. However, while ruby markup is indeed
  1068. in some way similar to the markup that would be needed for glosses, it is not
  1069. designed for that purpose.</p>
  1070. </div>
  1071. <div class="informative">
  1072. <h2><a id="compatibility" name="compatibility">C.  Notes on backwards
  1073. compatibility</a></h2>
  1074. <p>This appendix is <em>informative</em>.</p>
  1075. <p>For historical reasons, some authoring tools might generate ruby markup
  1076. without the start and end tags of the <code>rb</code> element, like:</p>
  1077. <div class="figure">
  1078. <pre class="sgml">&lt;ruby&gt;
  1079. A
  1080. &lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;aaa&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;
  1081. &lt;/ruby&gt;</pre>
  1082. </div>
  1083. <p>rather than the following:</p>
  1084. <div class="figure">
  1085. <pre class="xml">&lt;ruby&gt;
  1086. &lt;rb&gt;A&lt;/rb&gt;
  1087. &lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;aaa&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;
  1088. &lt;/ruby&gt;</pre>
  1089. </div>
  1090. <p>The former markup is not conforming to this specification, but user agents
  1091. that care about compatibility with documents generated by such authoring
  1092. tools may treat the former markup as if it were written like the latter.</p>
  1093. </div>
  1094. <div class="informative">
  1095. <h2><a id="glossary" name="glossary">D.  Glossary</a></h2>
  1096. <p>This appendix is <em>informative</em>.</p>
  1097. <dl>
  1098. <dt><a id="g-RB" name="g-RB"><strong>Base text</strong></a></dt>
  1099. <dd>Run of text that has a <a href="#g-RT">ruby text</a> associated with
  1100. it.</dd>
  1101. <dt><a id="g-bopomofo" name="g-bopomofo"><strong
  1102. lang="zh">Bopomofo</strong></a></dt>
  1103. <dd>37 characters and 4 tone marks used as phonetics in Chinese,
  1104. especially standard Mandarin.</dd>
  1105. <dt><a href="#complex" id="g-complex" name="g-complex"><strong>Complex ruby
  1106. markup</strong></a></dt>
  1107. <dd>In this specification: Ruby markup that allows association of two <a
  1108. href="#g-RT">ruby texts</a> with a single <a href="#g-RB">base text</a>
  1109. as well as fine-grained associations between parts of the <a
  1110. href="#g-RT">ruby texts</a> and the <a href="#g-RB">base text</a>.</dd>
  1111. <dt><a id="g-GR" name="g-GR"><strong>Group ruby</strong></a></dt>
  1112. <dd>In Japanese typography: Ruby text associated with more than one
  1113. character of the base text.</dd>
  1114. <dt><a id="g-hiragana" name="g-hiragana"><strong
  1115. lang="ja">Hiragana</strong></a></dt>
  1116. <dd>Japanese syllabic script, or character of that script. Rounded and
  1117. cursive in appearance. Subset of the Japanese writing system, used
  1118. together with kanji and katakana. In recent times, mostly used to write
  1119. Japanese words when kanji are not available or appropriate, and word
  1120. endings and particles.</dd>
  1121. <dt><a id="g-ideograph"
  1122. name="g-ideograph"><strong>Ideograph</strong></a></dt>
  1123. <dd>A character that is used to represent an idea, word, or word
  1124. component, in contrast to a character from an alphabetic or syllabic
  1125. script. The most well-known ideographic script is used (with some
  1126. variation) in East Asia (China, Japan, Korea,...).</dd>
  1127. <dt><a id="g-kana" name="g-kana"><strong lang="ja">Kana</strong></a></dt>
  1128. <dd>Collective term for hiragana and katakana.</dd>
  1129. <dt><a id="g-katakana" name="g-katakana"><strong
  1130. lang="ja">Katakana</strong></a></dt>
  1131. <dd>Japanese syllabic script, or character of that script. Angular in
  1132. appearance. Subset of the Japanese writing system, used together with
  1133. kanji and hiragana. In recent times, mainly used to write foreign
  1134. words.</dd>
  1135. <dt><a id="g-kanji" name="g-kanji"><strong lang="ja">Kanji</strong></a></dt>
  1136. <dd>Japanese term for ideographs; ideographs used in Japanese. Subset of
  1137. the Japanese writing system, used together with hiragana and
  1138. katakana.</dd>
  1139. <dt><a id="g-monoruby" name="g-monoruby"><strong>Monoruby</strong></a></dt>
  1140. <dd>In Japanese typography: Ruby associated with a single character of
  1141. the base text.</dd>
  1142. <dt><a id="g-reading" name="g-reading"><strong>Reading</strong></a></dt>
  1143. <dd>For ideographs: Technical term; indication of possible pronunciation.
  1144. Different from pronunciation in various respects: script used may not
  1145. be fully phonetic; actual pronunciation is speaker-dependent;
  1146. pronunciation may not be realized when reading a text silently. In
  1147. Chinese or Korean, some ideographs have several readings. In Japanese,
  1148. most ideographs have at least two readings, and some have a lot more.
  1149. Readings also may depend on context.</dd>
  1150. <dt><a id="g-RT" name="g-RT"><strong>Ruby text</strong></a></dt>
  1151. <dd>Run of text that appears in the immediate vicinity of another run of
  1152. text (called <a href="#g-RB">"ruby base"</a>) and serves as an
  1153. annotation or a pronunciation guide associated with the base.</dd>
  1154. <dt><a href="#simple-ruby1" id="g-SR" name="g-SR"><strong>Simple ruby
  1155. markup</strong></a></dt>
  1156. <dd>In this specification: Ruby markup that associates a single <a
  1157. href="#g-RT">ruby text</a> with a single <a href="#g-RB">ruby base</a>,
  1158. optionally providing some delimiters such as parentheses for
  1159. fallback.</dd>
  1160. </dl>
  1161. </div>
  1162. <div class="informative">
  1163. <h2><a id="changes" name="changes">E.  Changes from Proposed
  1164. Recommendation</a></h2>
  1165. <p>This appendix is <em>informative</em>.</p>
  1166. <p>Changes from the <a
  1167. href="http://www.w3.org/TR/2001/PR-ruby-20010406/">Proposed
  1168. Recommendation</a> (http://www.w3.org/TR/2001/PR-ruby-20010406):</p>
  1169. <ul>
  1170. <li>Added conformance section</li>
  1171. <li>Streamlined terms 'ruby text' and 'base text'</li>
  1172. <li>Changed 'part of' to 'used by' in <a href='#module'>Appendix A</a>
  1173. ([<a href='#xhtml11'>XHTML11</a>] does not contain any module definitions)</li>
  1174. <li>Added link to [<a href='#ModSchema'>ModSchema</a>]
  1175. <li>Fixed Appendix numbering and table of contents</li>
  1176. <li>Fixed link in Section 3.3 (to fig. 1.1 rather than 1.3)</li>
  1177. <li>Added Japanese titles for [<a href="#jis">JIS4051</a>] and [<a
  1178. href="#jdcm">JIS4052</a>]</li>
  1179. <li>Fixed various typos and minor grammatical mistakes</li>
  1180. </ul>
  1181. </div>
  1182. </div>
  1183. <div class="informative">
  1184. <h2><a id="ack" name="ack">Acknowledgements</a></h2>
  1185. <p>This section is <em>informative</em>.</p>
  1186. <p>Takao <span class="familyname">Suzuki</span> (<span
  1187. lang="ja">鈴木 孝雄</span>) and Chris <span
  1188. class="familyname">Wilson</span> have contributed to previous drafts as
  1189. editors.</p>
  1190. <p>This specification would not have been possible without the help from the
  1191. members of the W3C I18N WG, in particular Mark <span
  1192. class="familyname">Davis</span> and Hideki <span
  1193. class="familyname">Hiura</span> (<span lang="ja">樋浦 秀樹</span>), and
  1194. the members of the W3C I18N IG.</p>
  1195. <p>Additional contributors include Murray <span
  1196. class="familyname">Altheim</span>, Laurie Anna <span
  1197. class="familyname">Edlund</span>, Arye <span
  1198. class="familyname">Gittelma</span>, Koji <span
  1199. class="familyname">Ishii</span>, Rick <span
  1200. class="familyname">Jelliffe</span>, Eric <span
  1201. class="familyname">LeVine</span>, Chris <span
  1202. class="familyname">Lilley</span>, Charles <span
  1203. class="familyname">McCathieNevile</span>, Shigeki <span
  1204. class="familyname">Moro</span> (<span lang="ja">師 茂樹</span>), Chris
  1205. <span class="familyname">Pratley</span>, Nobuo <span
  1206. class="familyname">Saito</span> (<span lang="ja">斎藤 信男</span>), Rahul
  1207. <span class="familyname">Sonnad</span>, Chris <span
  1208. class="familyname">Thrasher</span>.</p>
  1209. <p>The markup defined in this specification was coordinated with the ruby
  1210. markup in [<a href="#jdcm">JIS4052</a>], developed by WG 2 (Typesetting) of
  1211. the Electronic Document Processing System Standardization Investigation and
  1212. Research Committee of the Japanese Standards Association. We would like to
  1213. thank the members of WG 2, in particular Kohji <span
  1214. class="familyname">Shibano</span> (<span lang="ja">芝野 耕司</span>,
  1215. chair), and Masafumi <span class="familyname">Yabe</span> (<span
  1216. lang="ja">家辺 勝文, liaison</span>), for their collaboration.
  1217. Technically, the markup for ruby in [<a href="#jdcm">JIS4052</a>] differs
  1218. from the markup in this specification in two points: First, there is an
  1219. alternative form of markup not compatible with XML, based on special symbols,
  1220. and second, the <a href="#rp"><code>rp</code></a> element is not
  1221. permitted.</p>
  1222. <p>Valuable Last Call comments were also received from: The HTML WG, the CSS
  1223. WG, the XSL WG, the WAI P&amp;F WG, Steven <span
  1224. class="familyname">Pemberton</span>, Trevor <span
  1225. class="familyname">Hill</span>, Susan <span class="familyname">Lesch</span>,
  1226. and Frank Yung-Fong <span class="familyname">Tang</span>. Akira <span
  1227. class="familyname">Uchida</span> (内田 明) provided feedback from a
  1228. translator's viewpoint.</p>
  1229. <p>An earlier proposal for markup for ruby, using attributes, is described in
  1230. [<a href="#dur97">DUR97</a>].</p>
  1231. </div>
  1232. <div class="informative ref">
  1233. <h2><a id="ref" name="ref">References</a></h2>
  1234. <h3>Normative References</h3>
  1235. <dl>
  1236. <dt>[<a id="xhtml11" name="xhtml11">XHTML11</a>]</dt>
  1237. <dd><em>"<cite><a
  1238. href="http://www.w3.org/TR/2001/REC-xhtml11-20010531/"><acronym
  1239. title="Extensible HyperText Markup Language">XHTML</acronym><sup>&trade;</sup>
  1240. 1.1 - Module-based <acronym
  1241. title="Extensible HyperText Markup Language">XHTML</acronym></a></cite>",
  1242. <acronym title="World Wide Web Consortium">W3C</acronym>
  1243. Recommendation</em></dd>
  1244. <dd>M. Altheim, S. McCarron, <abbr title="Editors">eds.</abbr>, 31 May
  1245. 2001<br>
  1246. Available at: http://www.w3.org/TR/2001/REC-xhtml11-20010531<br>
  1247. The latest version is available at: <a
  1248. href="http://www.w3.org/TR/xhtml11/">http://www.w3.org/TR/xhtml11</a></dd>
  1249. </dl>
  1250. <dl>
  1251. <dt>[<a id="xhtmlmod" name="xhtmlmod">XHTMLMOD</a>]</dt>
  1252. <dd><em>"<cite><a
  1253. href="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/">Modularization
  1254. of <acronym
  1255. title="Extensible HyperText Markup Language">XHTML</acronym><sup>&trade;</sup></a></cite>",
  1256. <acronym title="World Wide Web Consortium">W3C</acronym>
  1257. Recommendation</em></dd>
  1258. <dd>M. Altheim <em>et al.</em>, <abbr title="editors">eds.</abbr>, 10
  1259. April 2001 <br>
  1260. Available at:
  1261. http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410<br>
  1262. The latest version is available at: <a
  1263. href="http://www.w3.org/TR/xhtml-modularization/">http://www.w3.org/TR/xhtml-modularization</a></dd>
  1264. <dt>[<a id="xml1" name="xml1">XML</a>]</dt>
  1265. <dd><em>"<cite><a
  1266. href="http://www.w3.org/TR/2000/REC-xml-20001006">Extensible Markup
  1267. Language (<abbr title="Extensible Markup Language">XML</abbr>) 1.0
  1268. (Second Edition)</a></cite>", <acronym
  1269. title="World Wide Web Consortium">W3C</acronym> Recommendation</em></dd>
  1270. <dd>T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, <abbr
  1271. title="editors">eds.</abbr>, 6 October 2000<br>
  1272. Available at: http://www.w3.org/TR/2000/REC-xml-20001006<br>
  1273. The latest version is available at: <a
  1274. href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></dd>
  1275. </dl>
  1276. <h3>Informative References</h3>
  1277. <dl>
  1278. <dt>[<a id="css2" name="css2">CSS2</a>]</dt>
  1279. <dd><em>"<cite><a
  1280. href="http://www.w3.org/TR/1998/REC-CSS2-19980512/">Cascading Style
  1281. Sheets, level 2 (<acronym
  1282. title="Cascading Style Sheets, level 2">CSS2</acronym>)
  1283. Specification</a></cite>", <acronym
  1284. title="World Wide Web Consortium">W3C</acronym> Recommendation</em></dd>
  1285. <dd>B. Bos, H. W. Lie, C. Lilley and I. Jacobs, <abbr
  1286. title="editors">eds.</abbr>, 12 May 1998<br>
  1287. Available at: http://www.w3.org/TR/1998/REC-CSS2-19980512<br>
  1288. The latest version is available at: <a
  1289. href="http://www.w3.org/TR/REC-CSS2/">http://www.w3.org/TR/REC-CSS2</a></dd>
  1290. <dt>[<a id="css3-ruby" name="css3-ruby">CSS3-RUBY</a>]</dt>
  1291. <dd><em>"<cite><a
  1292. href="http://www.w3.org/TR/2001/WD-css3-ruby-20010216/">CSS3 module:
  1293. Ruby</a></cite>", <acronym
  1294. title="World Wide Web Consortium">W3C</acronym> Working Draft</em></dd>
  1295. <dd>M. Suignard, <abbr title="editor">ed.</abbr>, 16 February 2001<br>
  1296. Available at: http://www.w3.org/TR/2001/WD-css3-ruby-20010216/<br>
  1297. The latest version is available at: <a
  1298. href="http://www.w3.org/TR/css3-ruby/">http://www.w3.org/TR/css3-ruby</a></dd>
  1299. <dt>[<a id="dur97" name="dur97">DUR97</a>]</dt>
  1300. <dd><em>"<cite><a
  1301. href="http://www.w3.org/International/draft-duerst-ruby-01">Ruby in the
  1302. Hypertext Markup Language</a></cite>", Internet Draft</em></dd>
  1303. <dd>Martin Dürst, 28 February 1997, <em>expired</em><br>
  1304. Available at: http://www.w3.org/International/draft-duerst-ruby-01</dd>
  1305. <dt>[<a id="html4" name="html4">HTML4</a>]</dt>
  1306. <dd><em>"<cite><a
  1307. href="http://www.w3.org/TR/1999/REC-html401-19991224/"><acronym
  1308. title="HyperText Markup Language">HTML</acronym> 4.01
  1309. Specification</a></cite>", <acronym
  1310. title="World Wide Web Consortium">W3C</acronym> Recommendation</em></dd>
  1311. <dd>D. Raggett, A. Le Hors, I. Jacobs, <abbr
  1312. title="editors">eds.</abbr>, 24 December 1999<br>
  1313. Available at: http://www.w3.org/TR/1999/REC-html401-19991224<br>
  1314. The latest version is available at: <a
  1315. href="http://www.w3.org/TR/html4/">http://www.w3.org/TR/html4</a></dd>
  1316. <dt>[<a id="jis" name="jis">JIS4051</a>]</dt>
  1317. <dd><em>"<cite>Line composition rules for Japanese documents</cite>"</em>
  1318. (<span lang="ja">日本語文書の行組版方法</span>)</dd>
  1319. <dd>JIS X 4051-1995, Japanese Standards Association, 1995 (in
  1320. Japanese)</dd>
  1321. <dt>[<a id="jdcm" name="jdcm">JIS4052</a>]</dt>
  1322. <dd><em>"<cite>Exchange format for Japanese documents with composition
  1323. markup</cite>"</em> (<span
  1324. lang="ja">日本語文書の組版指定交換形式</span>)</dd>
  1325. <dd>JIS X 4052:2000, Japanese Standards Association, 2000 (in
  1326. Japanese)</dd>
  1327. <dt>[<a id='ModSchema' name='ModSchema'>ModSchema</a>]</dt>
  1328. <dd><em>"<cite><a
  1329. href='http://www.w3.org/TR/2001/WD-xhtml-m12n-schema-20010322/'>Modularization
  1330. of XHTML&#8482; in XML Schema</a></cite>", <acronym
  1331. title="World Wide Web Consortium">W3C</acronym> Working Draft</em></dd>
  1332. <dd>Daniel Austin and Shane McCarron, <abbr
  1333. title="editors">eds.</abbr>, 22 March 2001<br>
  1334. Available at: http://www.w3.org/TR/2001/WD-xhtml-m12n-schema-20010322<br>
  1335. The latest version is available at: <a
  1336. href="http://www.w3.org/TR/xhtml-m12n-schema/">http://www.w3.org/TR/xhtml-m12n-schema</a></dd>
  1337. <dt>[<a id="xmlschema" name="xmlschema">XMLSchema</a>]</dt>
  1338. <dd><em>"<cite><a
  1339. href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/"><abbr
  1340. title="Extensible Markup Language">XML</abbr> Schema Part 1:
  1341. Structures</a></cite>", <acronym
  1342. title="World Wide Web Consortium">W3C</acronym>
  1343. Recommendation</em></dd>
  1344. <dd>H. S. Thompson, D. Beech, M. Maloney, N. Mendelsohn, <abbr
  1345. title="editors">eds.</abbr>, 2 May 2001<br>
  1346. Available at: http://www.w3.org/TR/2001/REC-xmlschema-1-20010502<br>
  1347. The latest version is available at: <a
  1348. href="http://www.w3.org/TR/xmlschema-1/">http://www.w3.org/TR/xmlschema-1</a></dd>
  1349. <dd>See also "<cite><abbr title="Extensible Markup Language">XML</abbr>
  1350. Schema Part 2: Datatypes</cite>", available at: <a
  1351. href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2</a></dd>
  1352. <dt>[<a id="xsl" name="xsl">XSL</a>]</dt>
  1353. <dd><em>"<cite><a
  1354. href="http://www.w3.org/TR/2000/CR-xsl-20001121/">Extensible Style
  1355. Language (<acronym
  1356. title="Extensible Style Language">XSL</acronym>)</a></cite>", <acronym
  1357. title="World Wide Web Consortium">W3C</acronym> Candidate
  1358. Recommendation</em></dd>
  1359. <dd>S. Adler <em>et al.</em>, <abbr title="editors">eds.</abbr>, 21
  1360. November 2000<br>
  1361. Available at: http://www.w3.org/TR/2000/CR-xsl-20001121<br>
  1362. The latest version is available at: <a
  1363. href="http://www.w3.org/TR/xsl/">http://www.w3.org/TR/xsl</a></dd>
  1364. <dt>[<a id="xslt" name="xslt">XSLT</a>]</dt>
  1365. <dd><em>"<cite><a
  1366. href="http://www.w3.org/TR/1999/REC-xslt-19991116"><acronym
  1367. title="Extensible Style Language">XSL</acronym> Transformations
  1368. (<acronym title="XSL Transformations">XSLT</acronym>) Version
  1369. 1.0</a></cite>", <acronym
  1370. title="World Wide Web Consortium">W3C</acronym> Recommendation</em></dd>
  1371. <dd>J. Clark, <abbr title="editor">ed.</abbr>, 16 November 1999<br>
  1372. Available at: http://www.w3.org/TR/1999/REC-xslt-19991116<br>
  1373. The latest version is available at: <a
  1374. href="http://www.w3.org/TR/xslt">http://www.w3.org/TR/xslt</a></dd>
  1375. </dl>
  1376. </div>
  1377. <script src="https://www.w3.org/scripts/TR/fixup.js"></script></body>
  1378. </html>

↑ Top