2009.10.25

10月23日(金) に、WCAN mini Markup vol.11が開催されました。

今回は「HTML5」をテーマに、それぞれの情報リソースと実際にHTML5でコーディングしたソースを持ち寄り、グループで話し合いました。

HTML5の日本語の情報は少ないようで、大体みんな同じサイトを参考にされていました。参加者24名のうち10人ちょいくらいのかたが「HTML5.JP」を参考にされていました。HTML5.JPでは海外のサイト「HTML5 Doctor」のコンテンツの日本語訳が掲載されています。

話し合いと発表の中では、「sectionとarticleの使い分け」や「asideの使いどころ」、「h1は何個でも出現していい??」などなど、HTML5の要素の使いどころとこれまでのXHTML1.0の要素での使いどころの違いについての議論がありました。

HTML5って公式なDTDはないの??

そんな議論の中、ふと「HTML5の公式なDTDってないんだっけ…?」と思い、ちょっと調べてみたのですが、それらしきモノは見つからないようです。(HTML4のDTDは→HTML 4 Document Type Definition

でも、HTML5のeditorであるIan Hickson氏がメーリングリストで「なんでHTML5のDTDがないの?」という質問に、以下のように答えていました。

No formal DTD exists, but you can create your own custom DTD for your project.

DTDはないけど、キミ自身で作れるよ!って言ってます。また、以下のようにも言っています。

There's no official formal schema, but there is a description (in English) of both the parsing rules and the allowed content models, so conforming implementations should all end up treating pages the same way if they follow the spec.

HTML5のメーリングリストでのIan Hicksonの回答より〜

HTML5はDTDのように構造を厳格に定義するようなものはなく、コンテンツ・モデルとパースのルールに沿っていればいいよ〜という割とゆる〜い感じの定義になるのでしょうか。

なので、「DTDのようなもの」を求めるのならば、コンテンツ・モデルの定義とDOMツリーアクセサーから読み解くことになるのかな…?

HTML5とDOM

では、なんでDTDがないのだろ?

HTML5は構文ではなく、DOMを中心に機能が定義されています。

HTML5のeditor, Ian Hicksonへのインタビューが公開 | Web標準Blog | ミツエーリンクスより抜粋〜

とあるように、HTML5をDOMでアクセスして、スクリプト側で要素を追加したりして構造を操作することを前提として定義されているとなると、これまでのHTMLの文書型定義であるDTDの公式なものは存在しない、というのは私の中でああ、そうなのかと繋がった感じです。

また、Hixieはメーリングリストで以下のようにも書いています。

There's no official formal schema for HTML5 because we have found that providing an official formal schema leads to people using that schema even if it is buggy, never considering writing their own. By not having an official formal schema, we have found that implementors are more likely to write their own code, competing on quality.

HTML5のメーリングリストでのIan Hicksonの回答より〜

「HTML5の公式なスキーマはないよ。なぜって、公式なスキーマを公表すると、そのコードが“バギー”であってもみんなそれに従って、自分自身で考えてコーディングしないから。公式なスキーマがないことによって、開発者はより自分自身で考えてコーディングできるんだ。品質と戦って欲しい。」(意訳しています。明らかな間違いがあったら指摘してください(^^;)

HTML5とXML

HTML5は、構造や要素の出現回数は厳格には定義されていなくて、Hixieも「自分でスキーマ作れるよ!」なんて言っているところからすると、XMLに近いのかな〜なんて思いました。XHTMLとは違う意味で。そうなると、W3Cで公式に文書構造や出現回数のルールをきっちり定義されているものがないので、自分自身で文書の内容に適したマークアップを委ねられているわけで、デザイナーやマークアップエンジニアの手でどのようなものにもなりますね。

よって、HTML5においては「sectionはこの要素の中にないとおかしい」とか「h1がたくさん出現するのはおかしい」という議論は少なくなり、純粋に文書の内容を見て(デザインカンプを見て判断するのではなくて)内容に沿ってマークアップすればいい、というシンプルな考えかただけでいいのではないかなー(それが本来のマークアップの姿では?)と思いました。これが絶対!なんてものはなくて、マークアップはその情報に付加情報を与えるものなんだとして考えれば、そんな考えかたに落ち着くような気がする。Hixieが言うように、公式なDTDに準拠することで、それに縛られて本来のコンテンツの意味に適していないマークアップをしてしまったり、エラーが多かったりすることがあるとなると、逆効果ですしねぇ(^^; だからDTDが欲しいなら自分でいいように作ればいいんじゃない?っていう。

ああ、そんな意味でHTML5はXMLのような方向性を持ちつつ、XMLよりはとっつきやすいものなのかもですね。

いろいろできるようになって自由度が上がる、ということは、自分で「枠」(HTML5においてはDTDのようなルール)を作らないと考える範囲が広がりすぎて、難易度が上がるように思えてしまいます。他の人に用意された枠ではなくて、自分で枠を作ってサイトの品質を上げていく力がこれから求められていくのかもしれませんね。



投稿

名前
 
メールアドレス
 
URL
 
タイトル
コメント
パスワード
Cookieに保存

URL

RSS2.0

login

a-blog cms