ちょっとしたメモ

HTML5はモジュール化しないの?

HML5の最初の草案が公開されたが、まともに印刷すると400ページ以上になる分量を読むのはなかなか大変。それなのに仕様は、First, it should be read cover-to-cover, multiple times. Then, it should be read backwards at least once. Then it should be read by picking random sections ...なんてことを要求している。まぁそれはともかく、こんな巨大な仕様は、モジュール化するのが吉というのが、HTML4実装の教訓だったんじゃないのかな。適切に設計すれば、「HTML5の○○が気に入らない」という相反する意見も、モジュールの組み合わせでうまく行くかもしれないのに。

さまざまな機器でウェブにアクセスするようになり、またその利用目的もオンライン取引からソーシャルネットワーク、小説の発表など多岐にわたる。これら全てをひとつの仕様で完全にまかなおうとすると、どうしても内容は膨大になり、また異なる要件が相反したりして、簡単にはいかない。小さなデバイスで実装するのも難しくなってくる。だからXHTMLの仕様をいくつかのグループに分割して、そこから必要なものを選んで目的に合った言語を構成しようというのがモジュール化の狙いだった。

HTML5で新たに追加するとしている要素や機能は、HTML4を丸ごと再定義しなくても、こうしたモジュールの設計によって可能になるものが多いように見える。XではないHTMLのモジュール化はやりにくいかもしれないが、XHTML版V5をモジュールベースで定義した上で、そこからHTML版V5をつくることはできるだろう。

こんなことぐらい普通なら思いつくだろうに、新HTML部会で検討されたことはないのかと調べてみたら、2007年3月22日のIRCログに次のようなやり取りがあった。

[17:42] <schnitz> XHTML Modularization is the answer to the statement
   that HTML5 is heavily intertwined and cannot be modularized,
   not true, we did it in M12N
[17:42] <schnitz> and XHTML M12N is very close to HTML 4.01
[17:43] <schnitz> so no magic XHTML2 stuff here
...
[17:55] <anne> WHATWG has been thinking about HTML for over two years now...
[17:55] <bewest> except that future vision is much worse than hindsight
[17:55] <anne> (and many on the WHATWG for a longer period)
[17:56] <anne> why do we need modularization anyway?
[17:56] <anne> on the web you don't want profiles etc.

<schnitz>ことSebastian SchnitzenbaumerはXHTMLモジュール化仕様(1.0)のエディタでもあったから、その方法論やメリットを踏まえて発言しているわけだが、他のメンバーは、もうここまで進んでいるのに何で今頃そんなこというの?という雰囲気のようだ。最後の発言に見られるように、モジュール化やプロファイルはむしろウェブを分断するから、仕様は一体化する方がいいのだという考えもあるらしい。そうかなぁ。

確かに部会憲章でThis will be a complete specification, not a delta specification.と宣言しているので、追加モジュールだけの定義というわけには行かないだろう。しかし全体をモジュール化して、articleasideheaderfooternavあたりをFunctional Elements Moduleなどとすれば、使いたい作者はフルの(X)HTML5で書けばいいし、これがHTMLの本質に反すると思うなら、納得できるモジュールだけのサブHTML5を定義して用いればいい。新機能は役立ちそうだけれど既存要素のセマンティクスを変えて欲しくなかったり、削除される要素や属性で必要なものがあるなら、XHTML1.1と新モジュールを組み合わせることもできるだろう。もしかしたら、XHTML2とだって相乗りができるかもしれない。

あー、しかし、Ian Hicksonはメーリングリストでこんなこと言ってるよ。

The "Modularization of XHTML" basis is a specification-level concern and doesn't affect authors or implementors, so I don't really understand its relevance.

モジュール化したければXHTML2を使えという反応が返ってきそうだけれど、何かもう少し賢い方法を取れないものか。

関連メモ:
genre: xhtml. at