Re: 複数のルビテキストに関して

こんにちは、矢倉です。

2010/1/22 nanto_vi <nanto@moon.email.ne.jp>:
> SuikaWiki の「排他的XML正準化」の項
> http://suika.fam.cx/~wakaba/wiki/sw/n/%E6%8E%92%E4%BB%96%E7%9A%84XML%E6%AD%A3%E6%BA%96%E5%8C%96
> では、「排他的」に「はいたてき」と「Exclusive」など、
> 1 語に対して 2 つのルビテキストが振られた部分があります。
> このページではこれを、
>
> <ruby>
>  排他的
>  <rp> (</rp><rt>はいたてき</rt><rp>) </rp>
>  <rp> (</rp><rt lang="en">Exclusive</rt><rp>) </rp>
> </ruby>
>
> とマーク付けしている (実際はタグ間に空白文字なし) のですが、
> このマーク付けを HTML5 に従って解釈すると、「Exclusive」は
> 空文字列に対するルビテキストになってしまいます。
>
> そこで質問なのですが、複数のルビテキストを HTML5 で
> 表現するためには、どうすればいいのでしょうか。

現時点で、complex rubyはHTML5で定義されていません。
これについては、EditorのIan Hicksonが以前言及しています。
<http://lists.w3.org/Archives/Public/public-html/2008Dec/0222.html>

"The subset is basically "what IE implemented". I can't really see a
good way to support the advanced ruby markup in a manner that is still
somewhat compatible with legacy markup."

"It isn't clear that that level of complexity is needed, and no
mainstream browser supports it out of the box yet."

"I haven't added this feature, partly because I'm not convinced it is
that important, but mostly because no browser supports it, and most
browsers don't even support simply <ruby> yet. I think it is something
we should consider once <ruby> is more widely implemented."

既存の仕組みと互換性を持ちながらサポートする方法が思いつかないこと、complex
rubyの需要がどれだけあるのかが分からないこと、simple rubyでさえ実装が少ないないことを挙げています。

というわけで、複数のルビテキストを仕様に盛り込むには、問題のない書き方と、需要についてアドレスする必要があります。

> 参考までに、私が考え付くのは次の 3 案です。
>
> 1. 上記のマーク付けが複数のルビテキストとして解釈されるよう、
>   HTML5 仕様を修正する。

構文についてとくに思うことは今の段階でないのですが、
表示においては、WebKit, IEで異なるのが気になりますね。

先程のソースをテストケースにしてみました。
<http://software.hixie.ch/utilities/js/live-dom-viewer/saved/353>

Chrome 4.0とIE8で見比べtたのですが、Chromeでは二つ目の<rt>が、ベーステキストの横に表示されました。一方IE8では、二つのルビが同じラインに並んでいます。

> 2. ruby 要素を入れ子にする。(Ruby Annotation では
>   禁じられているが、HTML5 では禁止されていない。)
>
>  <ruby>
>    <ruby>
>      排他的
>      <rp> (</rp><rt>はいたてき</rt><rp>) </rp>
>    </ruby>
>    <rp> (</rp><rt lang="en">Exclusive</rt><rp>) </rp>
>  </ruby>

面白いですね。
こちらのも表示を確認してみました。
<http://software.hixie.ch/utilities/js/live-dom-viewer/saved/354>

Chrome 4.0は「はいたてき」の上に「Exclusive」が配置され、
IE8では外側のルビが解釈されないのか、「排他的」の横に「(Exclusive)」が現れています。
(IEの実装は、なかなか興味深いツリーを構成してます。)

WebKitがruby-positionをサポートできれば、少なくとも表示については良さそうですね。

ちなみに、<ruby>の入れ子についてはこんなやりとりもあります。

"> I don't know whether ruby in rt should be disallowed as well.  ruby
in ruby text is possible but very, very rare.
I don't really follow why it should be disallowed. I agree that it
isn't especially useful currently."

とくに使えるものではないだろうけど、禁止する必要性もよく分からないと。

> 3. HTML5 では表現できないので、せめて人が見たときに
>   複数のルビテキストであると解釈できるようにする。
>
>  <ruby>
>    排他的
>    <rp> (</rp><rt>はいたてき</rt><rp>) </rp>
>  </ruby>
>  <span class="multiple-ruby-text" lang="en">(Exclusive)</span>

「人が見たとき」がかかるのは、ソースコードということでしょうか。
構造化する必要がなければ、少なくともこの例については、一番現実的なのかなと思いました。

-- 
Masataka Yakura
<myakura.web@gmail.com>
<yakura-masataka@mitsue.co.jp>

Received on Friday, 22 January 2010 03:26:16 UTC