2008.09.05
HTMLはもはや「コンテンツ」ではなく、プログラムで自動生成される「画面」だ
私はCMS開発の仕事をしているので、日々HTMLと格闘している。そのためか、HTMLには愛憎半ばする思いがある。

HTMLは人間が読めるテキストで書かれており、どんなWebサイトでもHTMLソースを見れる。これは最高に素晴らしいことだ。しかしその素晴らしいHTMLも、あまりにも多くの役割を背負わされ、肥大化しすぎていると思う。

ただのテキストにリンクや<p>タグをつけただけのような文書から、Google Mapsみたいに怪物のようなWebアプリケーションまで、HTMLの役割・守備範囲はじつに広い。

当初のHTMLは、前者の「文書」から出発したはずだが、画像が入ったり、だんだん表現力が増していき、JavaScriptやCSSも登場し、CGIから始まったサーバサイド技術も高度化して、「アプリケーション」までWebでできるようになった。

いまや、ネット上にあるWebサイトの大部分のHTMLは、人間が直接作ったものではなく、サーバサイド技術によってプログラムが生成したものだ。それは、そう見えないとしても「アプリケーション」なのだ。いまや「文書」は滅亡し、すべてが「アプリケーション」になったわけだ。

一般的なWebサイトに求められるHTMLは高度で、人間が手で作れるレベルを超えている。実際上はスキルというよりも主に効率や労力の点で、人間が手動で作成していられないので、プログラムが生成している。いまや、デザイナーやプログラマだってブログサービスを使っている。スキルでなく、効率の問題なのだ。

CMSにおける「コンテンツ」のフォーマット問題」で書いたように、いまのHTMLはもはや「コンテンツ」とは呼びにくいものになっている。

<この問題の根源は、HTMLというものが基本的に「ブラウザが解釈し、表示するための言語」であって、人間にとっての「コンテンツ」にはなりえない、というところにあると思う>。

HTMLはいまや、完全に「ブラウザのための表示言語」であって、一般人が書くものではなくなっている。HTMLはもはや「コンテンツ」ではなく、プログラムで自動生成される「画面」なのだ。

いまのHTMLは、少なくともいまのかたちでは存続しえないレベルに来ていると思う。10年も経てば、まったく違うかたちになっているか、別のものに置き換えられているだろう。

いまのHTMLは、「MVC」(モデル、ビュー、コントローラ)でいうところの「M」と「V」の役割が混ざってしまっている。

M(モデル):いわゆる「コンテンツ」の部分。人間が書くところ。
V(ビュー):表示言語の役割。メニューやレイアウト構造など。CSSと連携。

ブログツールやCMSが歓迎されるのは、このM(モデル)の部分、「コンテンツ」だけを人間が書けばいいようにできているからだ。

「コンテンツ」の側面のみに注目すれば、いまのHTML仕様は巨大すぎる。高々5~6個くらいのタグに絞ったコンパクトな仕様か、タグ形式ですらない軽量な書式など、「一般人が直接書けるもの」に置き換えられるべきだろう。

そしてメニューやレイアウト構造などの「V(ビュー)」の側面は、「article」タグなどを含むHTML 5が、まさにその方向を予告していると思う。いまのHTMLでは、なんでもかんでも「div」で書かれ、レイアウト構造の境目がわからない。HTML 5はこの構造をはっきりさせることで、逆に「コンテンツ」がどこにあるのかが浮き彫りになる。

構造が決まると、「MVC」の「C」たるJavaScriptで、その構造のなかにあるコンテンツやデータを扱いやすくなる。また同じように、ページ全体をソフトウェア処理して一部を抽出したり、別のものに変形したりするのも容易になる。

このように考える私にとって、HTMLの構造化を進めるHTML 5はとても楽しみなものだが、それは「コンテンツ」を扱うものではなさそうだ。人間が直接書く「コンテンツ」のための標準仕様を、私は待ち望んでいる。


関連エントリ:
CMSにおける「コンテンツ」のフォーマット問題
http://mojix.org/2008/07/23/cms_content_format
HTML 5は何をもたらすか
http://mojix.org/2008/08/12/what_html5_enables
HTML 5では「article」タグでページの「本文」が取れる
http://mojix.org/2008/08/10/html5_article_tag
ブログがWebにもたらしたMVCモデル - コンテンツ、デザイン、テクノロジー
http://mojix.org/2005/10/02/140609
タグ: