HTML 5でセマンティックWebが進むと困る人たち
Webブラウザがアプリケーションプラットフォームとして、キャンバスやオフラインといった機能強化を行いつつあるという話を前回「Firefox 3.5とプラットフォーム化するWebブラウザ」で書きました。
そのWebブラウザの進化を裏で支えているのは、標準としてのHTML 5の存在です。
そもそもHTMLは約10年前のHTML 4でバージョンアップを終えて、その後はHTMLをXMLで書き直したXHTMLが後継となりました。実際にXHTML 1.0と1.1が策定されています。
XHTMLは、いままでヒトがWebブラウザで参照するために書かれていたHTMLをXML化することで、機械でも読めるデータとすることを目指しました。そこには、これからは機械がヒトと同じようにXHTMLを解釈してデータを活用する「セマンティックWeb」が広がっていく、というシナリオがあったためです。
ところが実際にはセマンティックWebはそれほど盛り上がらず、一方でAjaxなどを用いたWebアプリケーションのニーズが高まりました。XHTMLの進化の方向は、そのニーズとは合致しませんでした。
そういうわけで、W3CはWebアプリケーションのニーズに応えるため、HTMLを再び進化させることにしてHTML 5を策定中です。ところがHTMLにもセマンティックWebを進化させる要素はきちんと入ってるんですね。それが意図的なのか、それともなにかの副次効果なのかは分からないのですが。
セマンティックWebの要素はタグとして表れています。現状のWebページのレイアウトにはDivタグとCSSを用いるのが普通です。例えば、いまご覧のこのページのHTMLはざっくりと次のような構造になっていて、それをCSSでレイアウトしています。
<div id="header">ヘッダーの内容</div>
<div id="maincol">本文の内容</div>
<div id="subcol">サイドバーの内容</div>
<div id="footer">フッタの内容</div>
これがHTML 5では標準でヘッダー用のタグ、本文用のタグ、サイドバー用のタグといったものが定義されることになるそうです。とすると、次のように書けばよくなるわけです。
<header>ヘッダーの内容</header>
<article>本文の内容</article>
<side-bar>サイドバーの内容</side-bar>
<footer>フッタの内容</footer>
Divタグとidで表していたものを、ヘッダ用、本文用、サイドバー用といった専用のタグを用意することで、見た目も分かりやすく、しかもタグの名前があらかじめ決められているので、HTMLを見ればどこがヘッダでどこが本文なのか機械でも簡単に判断できるようになります。これで検索エンジンなどにとっては本文を抽出しやすくなって検索精度があがるし、おそらくWebブラウザのプラグインなどでは本文だけを取り出して表示することで記事を見やすくする、といったものが登場してくるのではないかと思います。
こうして機械がWebページの内容や意味を把握しやすくなることは、セマンティックWebの入り口と考えてもいいと思います。
でも、これで困る人もいるはずです。それは商業オンラインメディアの人たち。
僕もこのHTML 5の仕様を知ったとき、商業メディアに感情移入している一人としてこう思いました。「あ、これで本文だけ抜き出されたら広告が見られなくなるじゃん」と。
残念ながら現在のオンラインメディアの収入源のほとんどは記事と同じWebページ上に並べられた広告です。それが読者に見られなくなるようなテクノロジーは、代替となる収入源がないかぎり導入は難しいお話。
というわけで将来、商用オンラインメディアがHTML 5を採用するとしても、Articleタグの中に本文だけが含まれる、というセマンティックWebが想定する美しい使われ方は、商業メディアに関しては行われない可能性もあります。ビジネスとテクノロジーの関係というのはなかなか難しいものです。
僕もどうするべきか、実際にこのサイトをHTML 5で書き直す日が来るのは間違いなくまだ何年も先のことですが、いまからよく検討しておかなければなりませんね。