5/30に気になった記事

5/30に気になった記事。Webサイトも真剣に構造まで考えて設計実装すると、そこそこに時間が必要になるんですよね。最近の風潮としては、思いつきでつくって、えいやって公開するのが流行していますが。マイナー美女有名人といったネタ的なサイトも、なんとなくGoogle Imageとかで美女検索するなり、グラビア系サイトで検索すれば、誰か見つかる訳で、手間はかかりますが、確実にコンテンツとして成立させることができるわけで、いいんじゃないでしょうか。

HTML5サンプル その2

HTML5のサンプルをもうひとつ作成してみました。section, article, nav, hgroup, aside などいろいろ増えていて、divとの使い分けで悩むことになります。レイアウトとデータの切り分けはStyle Sheet + DOM XHTMLでやろうとしていたのですが、なかなかうまく実現できずに、ここまで来ているように見えます。

続きを読む

HTML5サンプル

HTML5の単純なサンプルというのが世の中にはないような気がするのですが、気のせいでしょうか。気のせいですか、そうですか。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<p>HTML5サンプル</p>
</body>
</html>

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アプリケーション実装用言語だと考えると、結構すっきりと技術の整理ができるのではないかと思います。