[3] HTML
の
rt
要素は、
ルビ文字列を表します。
[8] WinIE というか MSXML は
XML名前空間勧告にまともに対応していないので、
色々と不思議なことが起こります。 XML
文書を WinIE でレンダリングさせるに当たって、
単に ruby
要素以下の名前空間URI
を xmlns
属性で
http://www.w3.org/1999/xhtml
に指定したところで、 XHTML のルビとしては扱われません。
しかし、
html:ruby xmlns:html="http://www.w3.org/1999/xhtml" >html:rb基底文</html:rb >html:rtルビ文</html:rt ></html:ruby>のように名前空間接頭辞を
html
にすれば、 WinIE は XHTML
のルビと理解してくれるようです。
もちろん xmlns:html
属性があるので、
名前空間整形式になります。[1]
間違って rt
の中に rp
を入れてしまった文書が世間には存在しているようです。
(名無しさん 2005-02-23 06:32:14 +00:00)
[7] 名前空間URI:
ルビモジュールは XHTML で使われることを主に想定していますが、
特に XHTML に限定されているわけではありません。
XHTML 1.1 で使う時には名前空間URI は
http://www.w3.org/1999/xhtml
になりますが、
これはルビモジュールの規定ではなく、 XHTML 1.1
の規定に基づきます。他のホスト言語、例えば
XHTML 2.0 では名前空間URI は
http://www.w3.org/2002/06/xhtml2/
になっています。
[18]
rt
要素の内容モデルは語句付内容なので、
br
要素を使うことができます。
>>17
[19]
また改行をそのまま書いて、
CSS
white-space:pre
等でそれを表示に反映させることもできます。
[16]
Chrome
では、
br
でも
white-space:pre
でも改行が通常通りに反映されて表示されます。
[20]
Firefox
は
br
要素の改行も、
white-space:pre
の改行も、
改行として表示してくれません。
[22] ほとんどバグと言って良いであろうこの不可思議な挙動は、 驚くべきことに CSS の仕様書にそうしろと書かれています。 >>21
[23]
HTML の構文上まったく正当な br
要素の存在を無視したり、
white-space:pre
の挙動を他のほとんどの場合と違う特別扱いを要求したり、
この仕様書の規定は常軌を逸していると言わざるを得ません。
Chrome がそれを完全無視しているのも頷けます。
[13]
Firefox はルビを含む文字列をコピーしても、
rt
の内容をコピーしません。
その実装の関係なのか、 rt
の中身だけを選んでコピーすると、
何もコピーされないことがあります。
微妙な選択範囲の違いが何かあるのか、
rt
の中身全体を選択したつもりでも、
コピーされるときとされないときがあって困りものです。
[25] Live DOM Viewer, http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cp%3EABC%3Crt%3EXYZ
[26] >>25 このようにルビ外に rt
だけがあるとき、
Chrome は普通に何もないように表示しますが、
Firefox は空白の上に小字で rt
を表示します。
Inspector で見るとどちらのブラウザーも
display
等特別な指定はありません。
Firefox の挙動は CSS 関係なしのハードコードのスタイル制御でしょうか。
[28] >>27 ruby
と rt
の間に無関係の要素が挟まっている場合 (歴代
HTML 仕様のいずれにも違反)。
[29] >>27 のような表示を某ウェブサービスの検索結果表示で見ました。
いつからあるサービスなのかは不明。
ruby
の内外に気を配らずに span
を挿入するためにこういう現象が起きているようで。
[30] >>27 昔は Microsoft Excel に HTML を出力させたときもこういう要素構造になっていました。
[37]
最近の Chrome はなんか変な変更でもしたのかなあ?
無指定でも text-align: center
でも、
変に偏って表示されて (規則性がよくわからない) 中央に来ないんだけど。
1文字なのに左端に表示されたりとか。
[5] この要素型は WinIE 5 で最初に実装されました。
[6] Gecko 系レンダリング・エンジンでルビを解釈するための
XHTMLルビサポートという拡張ソフトウェアがあり、
rt
要素型も実装しています。
[2] 仕様書:
[9] Internationalization Tag Set (ITS) Version 1.0 ( ( 版)) http://www.w3.org/TR/its/#selection-local
[10] Web Applications 1.0 r7611 Update rt/rp sections to match newer ruby section. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=7610&to=7611
[11] Support rb and rtc elements in the parser (ruby) · whatwg/html@8d1c8af ( 版) https://github.com/whatwg/html/commit/8d1c8affec71058de29f8051cb2fa7f7bbad1fe6
[12] innerText: include parentheses around <rt> if there's no <rp> · Issue #1801 · whatwg/html () https://github.com/whatwg/html/issues/1801
[31] 水卜麻美×安住紳一郎×大下容子×松丸友紀×伊藤利尋×高瀬耕造がクロストーク! テレビ70年特番「アナテレビ」 |NHK_PR|NHKオンライン, 日本放送協会, https://www6.nhk.or.jp/nhkpr/post/original.html?i=38257
<h2>ありのままの映像を<br class="br-sp">言葉にする…「<ruby>絵解<rt style="position: relative; top: 0.4ex;">えと</rt></ruby>き」</h2>
[32]
>>31
Chrome だと position
, top
はレンダリングに影響しないようです。
開発者ツールで見ると
top
に position: static
では効果がないと案内が出ているので、
Chrome では rt
に暗黙の position: static
が強制されていると思われます。
[33]
>>31
Firefox だと top
によってほんのわずかに親文字列寄りにレンダリングされます。
個人的には誤差レベルであってもなくても気づくかどうか、敢えて指定するまでもないものに思われます。
NHK は別サービスで Firefox への対応を打ち切るような企業なので (
[34] だとするとこれはどのWebブラウザーのための指定なのでしょうね?
[35] 「関東大震災」から100年…カラーでよみがえる光景とは NHKスペシャル「映像記録 関東大震災 帝都壊滅の三日間」(前・後編) |NHK_PR|NHKオンライン, 日本放送協会, https://www6.nhk.or.jp/nhkpr/post/original.html?i=39752
<p>震災当時、両国駅に勤務していた外山 <ruby>恂<rt style="position: relative; top: 0.4ex;">まこと</rt></ruby>さんが記した一編の手記。被害が広がる街や火災旋風の中で逃げる人々の様子、外山さんが離散した家族を見つけ出す過程が記された手記を朗読します。(読み手:小室 等)</p>
[36]
>>31 隣の class="br-sp"
と違って class=""
でなく
style=""
を使っているので ad hoc なものとも思いましたが、
他でも rt
で >>35 のようにまったく同じ指定があるので、
振り仮名はすべてこの形になっていると推測されます。
どうして class=""
にしないのかは謎ですが、
システム開発の段階や分担の違いか何かの現れでしょうかね。
なお >>31 は見出し中ですが、 >>35 だと関連番組リストの説明文中なので、
出現位置にも関係していないと思われます。
rt
だけでなく、 基底文字列内でも発症します。 改行の他に、display:block
なども機能しなくなります。 Chrome はそれらの規定も無視しています。 ただし Chrome は基底文字列とルビ文字列の距離が固定されていて、 改行やdisplay:block
によって基底文字列とルビ文字列が重なって表示される(ことがある)という別のバグがあります。