HTML and CSS

情報技術もずいぶん進化して、簡単にできるようになったことも多いですが、あいかわらず難しいことも多いと感じています。HTMLのようなマークアップ言語によって、ドキュメント(文書)へデータ構造を持たせたり、ハイパーリンクのような機能をメタデータとして埋め込むことが可能となったのですが、そのせいでドキュメントのデータ表現が随分と複雑化してしまったのではないかという気がしています。

一昔前であれば、「HTMLでは主にドキュメントを表現しているわけだから、ドキュメント構造を意識したマークアップが良い」という主張が普通でしたから、「DOM(Document Object Model)によりブラウザ上に展開されるドキュメントをオブジェクトとしてモデル化し、プログラムから統一的に扱えるようにしよう」といった考えがでてくるのは自然な流れでした。

ところが、Webブラウザの世界では、ドキュメントを表現するためにHTMLを使うだけではなく、レイアウトデザインまで、HTMLで実装するのが普通となってしまいました。もちろん、ドキュメントとレイアウトを分離するために、CSSというものが考案されたわけですが、「論理構造を持ったドキュメントのレイアウトを見栄えよくする」ということには役に立つものの、「そもそも表示したい情報がたくさんあって、それらは論理構造的にはつながっていないようなものをレイアウトする」という目的には適していません。たとえば、body要素内において、ヘッダ部分にサイトメニューがあって、フッタには著作権表示があって、ヘッダとフッタとの間は、左右に分割されていて、左ペインにはサイドバー、右ペインにはコンテンツであるドキュメント、というようなWebページがあるわけですが、これを「1つのドキュメントだ」としてとらえるというのは無理があるわけです。こういったWebページは、divタグを使ってレイアウトの要素となる単位で分割して、そこへCSSを適用して全体のレイアウトを整えるのですが、これの意味するところは、「このWebページは複数のドキュメント(レイアウト要素)から構成されるもの」になります。ここで、レイアウト要素はFlashであったり、フォームであったりするので、それらはドキュメントとはいえないし、各レイアウト要素の間には強い結びつきがあったり文脈があったりするわけではないので、これを「1つのドキュメントだ」とモデル化するのは違うだろう、と考えています。

つまり、いまや、「Webページはドキュメントを主にコンテンツとして表現していれば良い」という時代は過ぎてしまったので、hタグやpタグを骨としてWebページを設計するということはなくなってきているのですが、これはHTMLの設計思想から乖離してしまっていて、どれが正しい、本来こうあるべき、といった議論がしにくい状況となってしまっています。このあたりを整理して、体系づけることが重要なのですが、誰かやっているのかなぁ、と思っています。

説明が不足しているので伝わらないかもしれませんが、結局、世界に普及した当時のWebブラウザは単なるハイパーリンクを含むドキュメントを表示するアプリケーションであったのが、現在はWebアプリケーションのユーザインタフェースを提供するプラットフォームという位置づけになっており、それにしては、これが解釈して表示できるのがHTMLで記述されたものだけだ、といったあたりが混乱を助長させている気がします。

Webアプリケーションのユーザインタフェースを提供するプラットフォームとしてWebブラウザをとらえたときには、DOMやCSSといった技術はドキュメントを対象としているわけではなく、主にクライアントサイドのWebアプリを実装するための技術要素の1つであることを認識して、これらを操作することができるJavaScriptや関連するライブラリもクライアントWebアプリケーション実装用言語だと考えると、結構すっきりと技術の整理ができるのではないかと思います。

同じタグの記事: CSS
同じタグの記事: HTML
同じタグの記事: JavaScript
同じタグの記事: Web
同じカテゴリの記事: General
同じカテゴリの記事: Program
関連書籍: CSS
関連書籍: JavaScript