ルビ付注


W3C

ルビ付注

W3Cワーキングドラフト 1999年12月17日

このバージョン[原文]:
http://www.w3.org/TR/1999/WD-ruby-19991217
([原文の]ZIPアーカイブ)
最新のバージョン:
http://www.w3.org/TR/ruby
以前のバージョン:
http://www.w3.org/TR/1999/WD-ruby-19990924
編集者:
Marcin Sawicki (1999年10月10日まで)
Michel Suignard, Microsoft
Masayasu Ishikawa (石川 雅康), W3C
Martin Dürst, W3C
(これ以外の協力者については謝辞を見よ.)

概要

「ルビ」とは、ベーステキストに沿った短いテキストランであり、東アジアの文書の中で発音を示したり短い注釈を付けたりするために使われるのが典型的である。この仕様書は、ルビのためのマークアップを定義する。仕様書は、このルビのためのマークアップが XHTML 1.1 [XHTML11] のモジュールとして組み込めるよう書かれている。

この文書の位置付け

W3C国際化ワーキンググループ (I18N WG) (会員専用) は、この1999年12月17日のラストコール ワーキングドラフトをもって、この仕様に関するコメントを募集する。ラストコール期間は、1999年12月17日に開始し、2000年1月14日に終了する。

これは、W3C会員およびその他の利害関係者によるレビューのためのW3Cワーキングドラフトである。この文書はドラフト文書であって、何時にても他の文書によって更新され、置換され、または廃止されることがある。W3Cワーキングドラフトをリファレンス素材として利用したり、「進行中の作業」以外のものとして引用することは不適切である。W3Cは、最終リリースに先立って、この仕様書に対して変更を加える能力が、初期の実装によって制約されることを認めるつもりはない。現行のW3C勧告およびその他の技術文書の一覧は http://www.w3.org/TR で見ることができる。

ラストコール コメントが処理された後、ワーキンググループは、この仕様書を勧告候補 (Candidate Recommendation) へと進め、その後、これが参照によって組み込まれる先となるであろう XHTML 1.1 とともに勧告案 (Proposed Recommendation) へと進める予定である。実際のマークアップ構造は、過程中のその時点で変更されることはないであろうが、I18N WG および編集者は、XHTML 1.1 に対する変更の結果としてそうした調整が必要となれば、注釈の中で、必要な技術的調整をするつもりである。

この文書[原文]に関するコメントや質問は i18n-editor@w3.org (W3C会員向けにアーカイブされている.) へお送りいただきたい。英語以外の言語、とりわけ日本語でのコメントも歓迎する。この仕様書に関する公開の議論は、メーリングリスト www-international@w3.org (アーカイブ) で行ってよい。

その主題上の問題ゆえに、また用例をさらに現実的なものにするために、この文書は、広範囲のキャラクタを用いた例を取り込んでいる。すべてのユーザエージェントがすべてのキャラクタを表示できるとは限らないかもしれないが、設定を変更すれば状況を改善することができる。また、広範囲のユーザエージェントや設定をカバーするべく、この文書を多様なキャラクタエンコーディングで配信するために多大な注意が払われている。


目次


1.  はじめに

このセクションは参考である。

1.1  ルビとは何か

「ルビ」とは、ベースと呼ばれる他のテキストランのすぐ隣に現れるテキストランを表すのに一般的に使われる名前である。ルビは、発音ガイドや、ベーステキストに結びつけられた短い注釈として機能する。ルビは、日本では、書籍や雑誌といったようなほとんどの種類の出版物で頻繁に使われるが、中国でも、特に学校教科書で使われる。図 1.1.1 は、その例を示したものである。

横組みの日本語テキストのベースの上にルビを示している例

図 1.1.1: ベースキャラクタの発音を与えるルビ

東アジアの印刷術は、西洋の印刷術には現れないさまざまな要素を発達させている。これらのほとんどは、CSSXSLといったようなスタイルシート言語で適切に処理することができる。しかしながら、ルビは、ベーステキストとルビテキストとの間の結びつきを定義するために、マークアップを必要とするのである。

この仕様書は、特別な迂路やグラフィックスを使わずにウェブ上でルビが利用できるようにするため、そうしたマークアップを、XHTMLで利用できるように設計して定義するものである。このセクションは、ルビのいくらかの背景を与える。Section 1.2 は、ルビを表すためのマークアップの概要を与える。Section 2 は、XHTMLモジュラ化フレームワーク [XHTMLMOD] の文脈におけるルビマークアップの形式定義を内容とする。

このセクションの残りは、ルビの構造や利用法に関する背景を与えるものである。表現はこの背景の一部であるから、ここで論じられる。もっとも、この文書はルビの表現やスタイル指定のためのメカニズムを規定するものではないことに注意するべきである。これは、めいめいのスタイルシート言語の一部である。

ルビテキストのフォントサイズは、ベーステキストのフォントサイズの約半分であるのが普通である (図 1.1.1 を見よ)。実は「ルビ」という名前は、イギリスの印刷業界での 5.5pt フォントサイズの名前に由来するものであり、このサイズは、通常のテキストに一般的に使われている 10pt フォントサイズの約半分なのである。

ルビテキストが、ベースに対する関係で、出現しうる場所はいくつかある。横組みレイアウトでは、テキストは水平方向の行に沿って出現するのであるが、ルビはペーステキストの上、すなわち、ベーステキストを含む行より前に置かれることが最も多い (図 1.1.1 を見よ)。ときには、特に教科書では、ルビがベーステキストの下、すなわちベーステキストより後に出現することがある。中国語では、ピンインルビはベーステキストより後に出現するのがむしろ一般的である。

横組みモードにおけるベースの下のルビの例

図 1.1.2: ベーステキスト (日本語) の下のルビ (ラテン文字)

典型的な縦組みレイアウトでは、テキストは右側で始まる垂直方向の行に沿って出現するのであるが、ルビは、横組みレイアウトでは上に出現する場合には、垂直方向の行の右側 (すなわち、これもまた行より前) に出現する。ルビテキストの筆記方向は、そのベースと同じ、すなわち、ベースが縦組みであれば縦組み、ベースが横組みであれば横組みである。

縦組み日本語テキストのベースの右側にルビを示した例

図 1.1.3: 縦組みテキストにおけるルビ (前/右)

横組みレイアウトでルビテキストがベースの下に出現する場合には、縦組みレイアウトでは、ルビはベースの左側に出現する。

縦組み日本語のベースの左側にルビを示した例

図 1.1.4: 縦組みテキストにおけるルビ (後/左)

東アジアのテキストは、縦組みにも横組みにもレイアウトされることがあるので、この文書では、「上」「下」や「右側」「左側」ではなく、「より前」「より後ろ」という用語が用いられる。この仕様書において、「より前」とは、横組みレイアウトでは「上」、縦組み (この文脈では、上から下で右から左の) レイアウトでは「右側」という意味であり、「より後」とは、横組みレイアウトでは「下」、縦組みレイアウトでは「左側」という意味である。

ベーステキストより前のルビは、よく発音を示すために使われる。ベーステキストより後のルビは、よく意味を示すために使われる。この場合やその他の場合で、ベーステキストの両側にルビが出現することが起こりうる。

横組みテキストのベースより前および後に適用されたルビテキストを示した例

図 1.1.5: 横組み日本語テキストの行より前および後に適用されたルビ

場合によっては、ルビベースのどの部分とルビテキストのどの部分とが一つに結び付けられるかについて、さらなる詳細を与えることが望ましい。そうした構造はグループルビと呼ばれる。これは、表示の細かい調整やその他の操作のために使うことができる。きめ細かい結び付けを用い、とりわけ、ベーステキストのうちのキャラクタ一つひとつとの結び付きを示すのは、主に教科書や、その他厳密な結び付きが重要であったり潜在的に知られていない場合に使われる。

これよりもきめの粗い結びつけは、実際の低レベルでの結びつきの詳細が読者にとって何らかの方法で既知であると想定されるときや、発音や注釈が単位全体にのみ適用され、部分部分に分割できないときに使われる。そうした場合には、長い区間のルビテキストが同じ間隔つきで設定されるから、読みやすさや均等なレイアウトが達成されることがある。たとえば、人名は姓と名とに分解することができる。また、漢字の合成語や文は、以下の例のように、意味論的なサブパートを示すために分解することができる。

前に日本語の並び、後に英語の並びのあるグループルビを示した例

図 1.1.6: 後ルビテキストがグループにわたるグループルビ

上記の例では、ベーステキストより前のルビテキストは、2個の連なりから作られている。すなわち、"phone" (電話) を表す「でんわ」というひらがなの連なりと、"number" (番号) を表す「ばんごう」というひらがなの連なりとである。ベーステキストより後のルビは、"Phone number" という単一の英語の連なりである。図 1.1.6 や類似の図でのベーステキスト内のスペースは、用例の構造をさらに明確にするために追加されたものである。一般的に、ベーステキスト内の表意文字の間にはスペースは使われない。

以下の例では、ルビベースより前にある「けいおうぎじゅく」「だいがく」(慶應義塾大学をひらがなで表している.) というルビテキストは、ベースの連なり2個を参照するが、ルビベースより後の "University" というルビテキストは、2番目のベースの連なりに関連している。

日本語の並びが前にあり、英語の並びが後にあって2番目の部分にだけわたっているグループルビを示した例

図 1.1.7: 後にあるテキストが2番目の部分にだけわたっているグループルビ

日本語印刷文脈におけるルビのフォーマッティングの詳細は、JIS-X-4051 [JIS] で見ることができる。

繁体字中国語では、「ボポモフォ」ルビは、横組みレイアウトであっても、ルビベースの右側に沿って出現することができる。

横組みのベーステキストの右側にボポモフォがあるボポモフォルビの例

図 1.1.8: 横組みレイアウトでの繁体字中国語の「ボポモフォ」ルビ (わかりやすくするためにルビテキストを青色で示している.)

ボポモフォの声調記号 (わかりやすくするために上記の例では赤色で示してある.) は別の列に (ボポモフォルビの右側に沿って) 出現しており、したがって、「ルビのルビ」として見えるかもしれないので注意すること。しかしながら、それらは、ルビテキストの一部にすぎない組み合わせキャラクタとしてエンコードされる。

ルビをウェブに導入することにより、「ルビ」という用語の元となった伝統的な印刷術には存在しない現象や問題が導かれる。日本語の「ルビ」という用語は、たとえば上記のさまざまな例で示されているとおり、ベーステキストの脇のテキストを表すものとしてのみ用いられる。しかしながら、いったん、この仕様書でなされているように、ルビのための構造マークアップが定義されると、このマークアップによって定義される結びつきが、つねにベーステキストの脇にレンダリングされるという保証はないのである。現在または将来、XHTMLを用いてマークアップされた文書のためのきわめて多様な出力デバイスがあるし、またあるであろう。以下は、いろいろなレンダリングについて、あり得るシナリオと理由とである。

横組みの日本語ベーステキストより後にルビテキストが括弧の中に囲い込まれている最後の手を示した例

図 1.1.9: 括弧を使った図 1.1.1 の例に代わる最後の手

最後の手に括弧を使うのは、ルビテキストにしようとしたテキストランと、たまたま括弧の中に囲まれているものとの間の混乱を導くことがある。文書制作者にスタイルシート制作者は、その潜在的な混乱の可能性を意識するべきであり、またこれが関心事である場合には、最後の手の方には曖昧さのない区切り文字を選択するようアドバイスされる。

1.2  ルビマークアップ

このセクションは、この仕様書で定義されるルビを表すためのマークアップの概観を与えるものである。形式定義は Section 2 で見ることができる。マークアップは XML [XML] で書かれる。

マークアップの核は ruby 要素である。ruby 要素は、ベーステキストとルビテキストとの間の結びつきを定義するために必要なすべてのキスとととマークアップとを囲い込む。

. "ruby" というこの包含側要素の名前は、後に続くものが、ルビをベーステキストと結びつけていることを意味するものと解釈されるべきである。内部にあるものが、ベーステキストを含めてすべてルビであるという意味だと誤解されてはならない。包含側要素の名前は、マークアップ構造物の機能をコンパクトで明確に識別するために選ばれたものである。その他の要素の名前は、全体的な長さを短く保つために選ばれた。

ruby 要素は、以下のうちひとつのコンテナとして機能する。

以下では、これら2つのケースがさらに詳細に論じられる。

1.2.1  単純ルビマークアップ

単純なケースについては、rb 要素がベーステキストを内容とし、rt 要素がルビテキストを内容とし、任意的である rp 要素は、最後の手の場合に使われる括弧キャラクタを内容とする。rb は「ルビベース(ruby base)」、rt は「ルビテキスト(ruby text)」、rp は「ルビ括弧(ruby parenthesis)」を表す。これは、1個のルビテキストと1個のルビベースとの間の単純な結び付けを可能にするものであり、ほとんどの場合には充分なものである。

たとえば、以下の単純ルビは

横組みの英語テキストのベースより前のルビを示した例

図 1.2.1.1: 英語に適用されたルビ

以下のように表現できる。

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

図 1.2.1.2: 最後の手として rp 要素を含んでいる単純ルビマークアップの例

rp 要素とその内部にある括弧とは、最後の手だけのために用意される。ユーザエージェントによっては、未知の要素は無視するがその内容はレンダリングするものがあるが、それだと上記のマークアップを "WWW (World Wide Web)" とレンダリングすることになる。rp 要素は、この仕様書で定義されているマークアップを知っているユーザエージェントに対して、括弧を取り除くことができるよう、括弧 (またはそれ以外でその代わりに使ってよいものならば何であろうとかまわない.) を特定識別する。制作者が、ルビマークアップを知らず、またCSS2 [CSS2] やXSL [XSL] スタイルシートもサポートしないユーザエージェントの最後の手について関心がない場合には、rp 要素は必要とされない。

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

図 1.2.1.3: 最後の手としての rp がない単純ルビマークアップの例

[CSS2] では、必要ならば、以下のスタイル宣言の例のように、'content' プロパティ ([CSS2], section 12.2)を :before および :after 疑似要素 ([CSS2], section 12.1) つきで用いて、括弧を生成することができる。

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

図 1.2.1.4: rt 要素の周囲に括弧を生成するためのCSS2スタイルシート

上記の例では、括弧が rt 要素の周囲に自動的に生成されることになる。上記のスタイルルールはルビテキストをインラインで位置指定するスタイルルールと一緒に使われることが前提である。括弧の生成は、XSLT [XSLT] を用いると素直である。

1.2.2  グループルビマークアップ

ベーステキスト1個とルビテキスト数個との間の結び付けという複雑なケースについては、rbc 要素と rtx 要素との組み合わせが使われる。これには、同じベーステキストに2個以上のルビテキストを結びつける (ベーステキストの両側にレンダリングされるのが一般的である.) ものと、ベーステキストとルビテキストとをきめ細かく結びつける (グループルビ) ものとがある。ruby 要素は、rbc 要素1個に、1個または2個の rtc 要素が続いたものを包含する。rbc 要素は rb 要素を包含する。rtc 要素は rt 要素を包含する。rbc 要素の内部にある数個の rb 要素は、rtc 要素の内部にある数個の rt 要素と結びつけられて、グループルビを表すために使われる。rt 要素は、rbspan 属性を用いて単一の rt 要素が複数の rb 要素にわたる (結びつけられる) ことを示してもよい。これは、テーブルの th/td 要素の colspan 属性に似ている。rbc は「ルビベースコンポーネント(ruby base component)」を、rtc は「ルビテキストコンポーネント(ruby text component)」を表す。

グループルビの例は、以下の図で示される。

横組み日本語テキストにおけるグループルビを示した例

図 1.2.2.1: 混在テキストがルビベースより前と後とにあるグループルビ

は、以下のように表現することができる。

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

図 1.2.2.2: 同じベースで前ルビテキストと後ルビテキストとの両方を実現するためのルビマークアップ

この場合、"pronunciation" クラスの rtc 要素は、ルビベースより前のルビテキストを置くスタイル情報と結びつけられるべきであり、"annotation" クラスの rtc 要素は、ルビベースより後のルビテキストを置くスタイル情報と結びつけられるべきである。

rp 要素は、この表現では利用できない。これには2つの理由がある。第一に、rp 要素はもっぱら最後の手のためのものであり、これは、より頻繁にある単純なケースについては遙かに重要であると考えられた。第二に、複雑なケースについては、多くの場合で、合理的な最後の手の表示をもって現れることがきわめて困難であり、そうしたケースを表すマークアップを構築することは、不可能でないにしても遙かに困難なものになりうる。

1.2.3  ルビのスタイル指定上の注意

この仕様書はルビマークアップを定義するだけである。ルビをスタイル付けするためのフォーマッティングプロパティは、CSSおよびXSLについて開発中である。さらなる詳細については "International Layout" [I18N-FORMAT] (進行中の作業) を見よ。

音声合成といったような非視覚的レンダリングでは、ベーステキストとルビテキストとの両方をレンダリングすることは迷惑なことになりうる。これは、とりわけ、ルビが発音を表している場合に当てはまる。この場合には、音声合成装置は、ベーステキストを正しく発音できるかもしれず、その場合には同じテキストが二度話される。あるいは、テキストの正しい発音を知らず、発音を作り出すかもしれないが、その場合には、結果はきわめて混乱を招くものとなるかもしれない。

例として、図 1.2.2.2 の場合、非視覚的レンダリングにとっては、 "", "", "", "" というルビベースは、 "さい", "とう", "のぶ", "" というルビテキストよりも役に立たず、ルビベースとルビテキストとの両方をレンダリングすることは意味をなさない。この場合には、ルビテキストは発音を表すために使われているから、それを使うことが非視覚的レンダリングにとっては素直である。そうした場合には、以下のスタイル情報に似たものが助けとなるかもしれない。

@media aural {
  ruby[class~="pronunciation"] rb { speak: none }
}

図 1.2.3.1: ルビベースの音声レンダリングを抑制するためのCSS2スタイルシート

上記のスタイルシートは、rb 要素が "pronunciation" というクラスのついた ruby 要素の子孫要素であるときには、ルビベースの音声レンダリングを抑制することになる。さらなる詳細については [CSS2] を見よ。

発音ガイドとして使われているルビは、一見発音を示すために使われている文字が、完全に表音的に見える場合であっても、実際の発音と異なることがあるので注意すること。たとえば、ボポモフォは、それぞれのベースキャラクタにとっては独立に結びつけられる。文脈依存の音または声調の変化は、ルビには反映されない。同様に、日本語では、「わ」と発音される助詞をあらわすのに「は」を用いるといったような、綴り字上の例外が出現しうる。そうした場合のために、制作者は、class 属性の値によって区別される2つのバリエーションを補いたいと思ってもかまわないし、音声レンダリングシステムがそうした場合を正しく処理できると信頼してもかまわない。

すべてのルビが発音であるとは限らないことに注意することも重要である。制作者は、class="pronunciation" が発音を示すのに使われているルビを表していることを前提として上記でなされているように、class 属性を使って、違った目的に使われているルビを区別するべきである。また、音声レンダリングを聞いている人が、使われているキャラクタをチェックするために、飛ばされるベーステキストにアクセスすることに関心があるかもしれないことも注意されるべきである。


2.  ルビ要素の形式的定義

このセクションは規範的である。

このセクションは、ルビ要素の形式的文法定義と機能の仕様とを内容とする。XHTMLモジュラ化フレームワーク、とりわけ "Modularization of XHTML" [XHTMLMOD] 仕様書および "Building XHTML Modules" [BUIDLING] 仕様書にいくらか馴染んでいることが前提とされる。

2.1  ルビ要素の抽象的定義

以下は、ルビ要素の抽象的定義であり、XHTMLモジュラ化フレームワーク [XHTMLMOD] と一貫性を有する。XHTML抽象的モジュールの詳しい定義は [XHTMLMOD] で見ることができる。

要素 属性 最小内容モデル
ruby 共通 (rb, rp?, rt, rp?)
rbc 共通 rb+
rtc 共通 rt+
rb 共通 (PCDATA | Inline - ruby)*
rt 共通, rbspan (CDATA) (PCDATA | Inline - ruby)*
rp 共通 PCDATA*

XHTML 1.1 [XHTML11] 用の ruby 内容モデルは、以下のとおりである。

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

これは ruby 要素の最大内容モデルである。

この XHTML DTD モジュールとしての抽象的定義の実装は、付録 A で見ることができる。無理がないときには、XMLスキーマ [XMLSchema] 実装が用意されるであろう。

2.2  ruby 要素

ruby 要素は、rb, rt および任意的である rp 要素か、または rbc および rtc 要素かのコンテナとして機能するインライン (またはテキストレベル) 要素である。この要素は、ルビベース要素とそのルビテキスト要素との間の構造的な結合を提供する。

ruby 要素は、idclass, xml:lang といった共通属性だけをとる。

この最も単純な例では、「みけねこ」というルビテキストが「三毛猫」というベースに結合されている。

<ruby><rb>三毛猫</rb><rt>みけねこ</rt></ruby>

図 2.2.1: ruby 要素の単純な用法

2.3  rbc 要素

rbc (ルビベースコンポーネント) 要素は、rb 要素のコンテナである。この要素はグループルビのためにのみ使われる。ruby 要素の中に出現してよい rbc 要素は1個だけである。rbc 要素を用いた例は 図 1.2.2.2図 2.4.1 に示されている。

rbc 要素は共通属性のみを取る。

2.4  rtc 要素

rtc (ルビテキストコンポーネント) 要素は、rt 要素のコンテナである。この要素はグループルビのためにのみ使われる。ruby 要素の中に出現してよい rtc 要素は1個または2個であり、ルビテキストを、rbc 要素で表現されている単一のルビベースに結びつける。ruby 要素の中に3個以上の rtc 要素が出現してはならない。

rtc 要素は共通属性のみをとる。

たとえば、以下のマークアップは、2個のルビテキストを同じルビベースに結びつける。

<ruby>
  <rbc>
    <rb>漢字</rb>
  </rbc>
  <rtc class="before">
    <rt>かな-まえ</rt>
  </rtc>
  <rtc class="after">
    <rt>かな-あと</rt>
  </rtc>
</ruby>

図 2.4.1: 同じベースに2つのルビテキストを結びつけるためのルビマークアップ

ルビテキストをルビベースより前に置くようスタイル情報を適用するのに "before" というクラスが使われ、ルビテキストをルビベースより後に置くようスタイル情報を適用するのに "after" というクラスとが使われているとすると、横組みテキストでは、上記のマークアップはこのようにレンダリングされることになる。

かな-まえ
  漢字
かな-あと

図 2.4.2: 単一のルビベースに2つのルビテキストを結びつけたものの横組みレンダリング

同じルビベースに2個のルビテキストを使った複雑な例についてのマークアップは 図 1.2.2.2 に示されている。このマークアップのレンダリングは 図 1.2.2.1 に示されている。

註. ルビテキストのレンダリングはスタイルシートによって制御されるべきであるけれども、制作者やユーザによってスタイル情報が用意されない場合には、視覚的ユーザエージェントは、ルビテキストが1つだけしか使われていないときには、ルビベースより前にルビテキストを置くべきである。これは、単純ルビについても同じである。ルビテキストが2個あるときは、最初のルビテキストはルビベースより前に置かれるべきであり、次のルビベースはルビテキストより後に置かれるべきである。このフォーマッティングを記述したユーザエージェントのデフォルトスタイルシートの例は、[I18N-FORMAT] やその後継文書によって用意されるであろう。

非視覚的レンダリングについては、スタイルシート情報がない場合には、ルビベースとルビテキストとの両方が、それぞれの位置づけを示しながら (例. 違う声や違う高さなど) レンダリングされるべきである。

2.5  rb 要素

rb 要素は、ルビベースのテキストのコンテナである。単純ルビについては、出現してよい rb 要素は1個だけである。そうした単純ルビの例は 図 2.2.1 に示されている。グループルビについては、1個の rbc 要素の中に複数の rb が出現してもよく、きめ細かい結合のために、それぞれの rb 要素が関連する rt 要素と結びつけられてもかまわない。そうしたグループルビの例は 図 1.2.2.2 に示されている。

rb 要素は、その内容としてインライン要素やキャラクタデータを包含してもよいが、ruby 要素がその子孫要素として出現してはならない。

rb 要素は共通属性のみをとる。

2.6  rt 要素

rt 要素は、ルビテキストのコンテナである。単純ルビについては、出現してよい rt 要素は1個だけである。そうした単純ルビの例は 図 2.2.1 に示されている。グループルビについては、rtc 要素の中に複数の rt 要素が出現してもよく、それぞれの rt 要素は、rb 要素で表されている関連するルビベースのルビテキストを内容とする。そうしたルビベースとルビテキストとのきめ細かい結合の例は 図 1.2.2.2 に示されており、図 1.2.2.1 のようにレンダリングされる。

rt 要素は、その内容としてインライン要素またはキャラクタデータを包含してよいが、ruby 要素がその子孫要素として出現してはならない。

rt 要素は、共通属性と rbspan 属性とをとる。グループルビでは、rbspan 属性により、rt 要素が複数の rb 要素にわたることが可能になる。値はゼロ ("0") より大きい整数値でなければならない。この属性のデフォルト値は一 ("1") である。

図 1.2.2.2 に示されている例では、第二ルビテキストは4個の rb 要素にわたっており、図 1.2.2.1 に示されているようにレンダリングされることになる。rbspan 属性は、単純ルビの中では使うべきではなく、ユーザエージェントは、rbspan が単純ルビの中に出現するときにはそれを無視するべきである。

2.7  rp 要素

rp 要素は、単純ルビにおける括弧キャラクタを内容とすることが予定されている。括弧は、受け入れ可能な最後の手を用意するために必要である。rp 要素は、ルビベースの脇にルビテキストをレンダリングできないユーザエージェントにとっては特に必要である。そのようにすると、ルビテキストは、インラインでレンダリングされて括弧で括られるという質低下を受けるだけということになる。これは、インラインのレンダリングだけしか利用できない状況の下では、最も不適切さが小さいレンダリングである。rp 要素は、グループルビの中で使うことができない。

rp 要素は共通属性のみをとる。

以下のマークアップを考えてみよう。

<ruby>
  <rb>三毛猫</rb>
  <rp>(</rp><rt>みけねこ</rt><rp>)</rp>
</ruby>

図 2.7.1: rp 要素を用いたルビマークアップ

ルビをサポートするユーザエージェントは、それをこのようにレンダリングするであろう。

みけねこ
 三毛猫

図 2.7.2: ルビをサポートしているユーザエージェントによってレンダリングされたルビ (括弧は除去されている.)

ルビベースの脇にルビをレンダリングできず、またはルビマークアップをサポートしないユーザエージェントは、それをこのようにレンダリングするであろう。

三毛猫(みけねこ)

図 2.7.3: ルビをサポートしていないユーザエージェントによってレンダリングされたルビ (括弧が見えている.)


付録

A.  XHTML 用ルビモジュール

この付録は参考である。

以下は、XHTML 1.1 DTDモジュール [XHTML11] の一部をなすであろうルビDTDモジュールへのリンクである。

B.  後方互換性に関する注意

この付録は参考である。

歴史的な理由から、オーサリングツールのなかには、

<ruby>
  <rb>三毛猫</rb>
  <rp>(</rp><rt>みけねこ</rt><rp>)</rp>
</ruby>

ではなく、

<ruby>
  三毛猫
  <rp>(</rp><rt>みけねこ</rt><rp>)</rp>
</ruby>

のように、rb 要素の開始タグと終了タグとをつけないでルビマークアップを生成するものがあるかもしれない。

後者のマークアップはこの仕様書には適合しないが、そうしたオーサリングツールによって生成された文書との互換性に気を遣うユーザエージェントは、後者のマークアップを、それがあたかも前者のように書かれているものとして扱ってもかまわない。

C.  用語集

この付録は参考である。

ボポモフォ
中国語、とりわけ標準北京官話の音標として使われる37個のキャラクタと4個の声調記号。
グループルビ
ルビベースルビテキストとの間のきめ細かい結合を用いるルビのセット。
ひらがな
日本語の単語を表すための表音キャラクタからなる日本語筆記システムのサブセット。
カナ
外国語の単語を筆記するため排他的に、または漢字と組み合わせて使うことのできる日本語の筆記システムの音節的サブセット。
漢字
中国語筆記から借用されたり適合させられた表意文字を利用する日本語筆記システムのサブセット。
ルビベース
ルビテキストが結びつけられているテキストラン。
ルビテキスト
他のテキストラン (「ルビベース」と呼ばれる.) のすぐ隣に出現し、ベースに結合された注釈または発音ガイドとして機能するテキストラン。

D.  以前の公開ワーキングドラフトからの変更点

この付録は参考である。

セクション 変更点
概要
  • 本質的に書き換えられた。この仕様書が XHTML 1.1 用のルビモジュールを定義していることが明確にした。
この文書の位置付け
  • 本質的に書き換えられた。この文書がラストコールドラフトであることを明確にした。
  • 広い範囲のキャラクタやキャラクタエンコーディングの利用に関する註を追加し、また利用可能なキャラクタエンコーディングのリストへのリンクが用意した。
1. はじめに
  • レイアウトフロートは無関係に意味をなすよう、上/下を前/後に変更した。
  • セクション 1.2 をサブセクション3つに分割した。
  • 中国語ではピンインルビはルビベースより「前」ではなく「後」に出現するのが普通であるという註を追加した。
  • ボポモフォルビの例を追加し、またボポモフォルビの声調記号についての註を追加した。
  • ルビと実際の発音との間にありうる相違点に関する註を追加した。
  • 言い回しを洗練した。
2. ルビ要素の形式的定義
  • ruby 要素の「最小」内容モデルを (rb, rp?, rt, rp?) に変更した。
  • XHTML 1.1 の ruby 要素の内容モデルを変更して、rtc 要素の個数をグループルビの中に2個までに制限した。
  • ルビテキストの視覚的/非視覚的レンダリングに関する註を追加した。
  • それぞれの定義を洗練した。
付録 A. XHTML用ルビモジュール
  • モジュラ性を改善するためにルビモジュールが本質的に書き換えられた。
  • 付属のDTDモジュールは、XHTML 1.1 に組み込まれるであろうから削った。
付録 B. 後方互換性に関する注意
  • SGML でのルビの利用法に関する付録を削り、代わりに後方互換性に関する注意を追加した。
謝辞
  • 追加の協力者を追加し、また適切な箇所では名前を表すのに漢字も使った。
参考資料
  • HTML 4.0 および XHTML 1.0 への参照を削った。
  • XMLスキーマ仕様書およびXSLT仕様書への参照を追加した。
  • 「最新のバージョン」のURIに加えて「このバージョン」のURIへの参照を追加した。

謝辞

このセクションは参考である。

この仕様書で提示されているモデルは、もともと Martin Dürst によってなされた作業 [DUR97] に刺激されたものである。

また、この仕様書は、つぎの方々からの助力がなかったならばあり得なかったであろう。

Murray Altheim, Mark Davis, Laurie Anna Edlund, Arye Gittelma, Hideki Hiura (樋浦 秀樹), Koji Ishii, Rick Jelliffe, Eric LeVine, Chris Lilley, Charles McCathieNevile, Shigeki Moro (師 茂樹), Chris Pratley, Nobuo Saito (斎藤 信男), Rahul Sonnad, Takao Suzuki (鈴木 孝雄), Chris Thrasher, Chris Wilson, Masafumi Yabe (家辺 勝文).

参考資料

このセクションは参考である。

[BUILDING]
"Building XHTML Modules", W3Cワーキングドラフト
M. Altheim, S. P. McCarron 編, 1999年9月10日.
http://www.w3.org/TR/1999/WD-xhtml-building-19990910 で入手可能。
最新版は http://www.w3.org/TR/xhtml-building で入手可能。
[CSS2]
"Cascading Style Sheets, level 2 (CSS2) Specification", W3C勧告
B. Bos, H. W. Lie, C. Lilley, I. Jacobs 編, 1998年5月12日
http://www.w3.org/TR/1998/REC-CSS2-19980512 で入手可能。
最新版は http://www.w3.org/TR/REC-CSS2 で入手可能。
[DUR97]
"Ruby in the Hypertext Markup Language", インターネットドラフト
Martin Dürst, 1997年2月28日. 破棄済み
http://www.w3.org/International/draft-duerst-ruby-01 で入手可能。
[I18N-FORMAT]
"International Layout", W3Cワーキングドラフト
M. Sawicki 編, 1999年9月10日.
http://www.w3.org/TR/1999/WD-i18n-format-19990910 で入手可能。
最新版は http://www.w3.org/TR/i18n-format で入手可能。
[JIS]
"日本語文書の行組版方法"
JIS X 4051-1995, 日本規格協会, 1995年 (和文)
[XHTML11]
"XHTML 1.1 - Module-based XHTML", W3Cワーキングドラフト
M. Altheim, S. McCarron 編, 1999年9月10日.
http://www.w3.org/TR/199/WD-xhtml11-19990910 で入手可能。
最新版は http://www.w3.org/TR/xhtml11 で入手可能。
[XHTMLMOD]
"Modularization of XHTML", W3Cワーキングドラフト
M. Altheim 編, 1999年9月10日.
http://www.w3.org/TR/1999/WD-xhtml-modularization-19990910 で入手可能。
最新版は http://www.w3.org/TR/xhtml-modularization で入手可能。
[XML]
"Extensible Markup Language (XML) 1.0 Specification", W3C勧告
T. Bray, J. Paoli, C. M. Sperberg-McQueen 編, 1998年2月10日.
http://www.w3.org/TR/1998/REC-xml-19980210 で入手可能。
最新版は http://www.w3.org/TR/REC-xml で入手可能。
[XMLSchema]
"XML Schema Part 1: Structures", W3Cワーキングドラフト
H. S. Thompson, D. Beech, M. Maloney, N. Mendelsohn 編, 1999年11月5日.
http://www.w3.org/TR/1999/WD-xmlschema-1-19991105 で入手可能。
最新版は http://www.w3.org/TR/xmlschema-1 で入手可能。
"XML Schema Part 2: Datatypes" も見よ。http://www.w3.org/TR/xmlschema-2 で入手可能。
[XSL]
"Extensible Style Language (XSL)", W3Cワーキングドラフト
S. Deach 編, 1999年4月21日.
http://www.w3.org/TR/1999/WD-xsl-19990421 で入手可能。
最新版は http://www.w3.org/TR/WD-xsl で入手可能。
[XSLT]
"XSL Transformations (XSLT) Version 1.0", W3C勧告
J. Clark 編, 1999年11月16日.
http://www.w3.org/TR/1999/REC-xslt-19991116 で入手可能。
最新版は http://www.w3.org/TR/xslt で入手可能。

どら猫本舗 (webmaster@doraneko.org)