"HTML5 を抱擁せよ (Embrace HTML5)" というイベントが先月,上海で開催され,"DOM Scripting (邦題: DOM Scripting 標準ガイドブック)" と "HTML5 for Web Designers" の著者である Jeremy Keith 氏が HTML5 のデザイン原則に関する講演を行った。さらに氏は HTML の歴史について紹介し,聴衆からの質問にもいくつか答えている。
氏は HTML 2.0 から XHTML 2.0 に至る HTML の歴史を振り返り,Postel の法則 (または頑健性原則) について言及した。
送信するものは厳密に,受信するものは寛容に。
XHTML 2.0 は構文解析が厳密なため,Web には適していない。標準にはそれぞれ独自の原則があるべきだ,と氏は考えている。HTML5 も同様だ – W3C がかって "HTML デザイン原則 (HTML Design Principles)" を公開したことがある。これらすべての原則について,氏が強調したのは互換性,有用性,相互運用性の3つだった。
1. 不要な複雑性を回避する
HTML 4.01 と XHTML の DOCTYPE は覚えられないほど煩雑だが,HTML5 では単に <!DOCTYPE html> とすれば OK だ。一般的に DOCTYPE は検証で使われるものであって,ブラウザではスイッチ以外の用途では使用されない。したがって,長々とした DOCTYPE を記述する必要はない。charset と同じだ。<meta charset="utf-8"> と書けば十分だ。仕様が複雑であっても,シンプルな実装は可能なのだ。
2. 既存コンテントをサポートする
XHTML が抱える最大の問題は,既存のコンテントがサポートされないことだ。これはPostel の法則に反している。現実には開発者側が,別に HTML コードを用意している状況だ。ブラウザの処理と動作に一貫性が必要だ。
3. 真の問題を解決する
既存のニーズに対処できない抽象的なアーキテクチャより,今日の Web コンテントが抱える問題に対する実用的なソリューションの方が望ましい。例えば <p> や <h2> などの段落を複数,単一の <a> に組み込みたい,という要求は多い。仕様に組み入れられて然るべきだ。
4. 牛道を舗装する
広く受け入れられている実装がすでにあるのなら,新たな仕様を作るよりも,それを採用することを検討すべきだ。
例えば HTML5 では,<nav> や <section>,<article>,<aside> などの新たなアーティクルモデルが導入されていて,<section> の中で新たに <h1> を開始することができる。この方法ならば6つに限定されず,いくつでもヘッダを作ることが可能だ。Tim Berners-Lee 氏が 1991 年に記したように。
<H1>,<H2> などと見出しを書くよりも,ネスト可能な <SECTION>..</SECTION> 要素を用意しておいて,その中の任意のレベルに汎用的な <H>..</H> を書くことで,必要なレベルの見出しを生成してくれた方がよいでしょう。
5. グレースフル・デグレデーション
HTML5 には新形式の <input> がいくつかある。ブラウザがそれを解釈できない場合,デフォルトではテキストとして扱われる。これはグレースフル・デグレデーション (graceful degradation) のひとつだ。
別の例として,HTML5 と Flash の争いがある。氏の意見では,正にこれは <video> 対 <object> であり,<video> のフォールバックコンテントとして <object> にデグレードすることも,あるいはその逆の方法でも対処可能だ。もしどちらもサポートしていなければ,<a> にデグレードしてリンクを提供すればよい。
6. 支援者の優先順位
競合が生じた場合には,以下の優先順位を考慮しよう: ユーザ > コンテント作成者 > 実装者 > 仕様作成者 > 論理的純粋性。 ユーザと開発者は,仕様や理論よりもはるかに重要なのだ。
Q&A のセクションで聴衆の誰かが,HTML5 の柔軟な構文が悪用される可能性に言及していた。氏はその意見に同意した上で,よりよいコードを記述するために HTML Lint (JSLint に似たもの) などツールの利用を推奨した。
さらに別の誰かが,デフォルトのスタイルがあまりに酷い場合,<video> のスタイルのカスタマイズが難しいのではないか,という不安を語った。これに対して氏はいくつかサンプルを見せて,<video> のスタイルが CSS スタイルシートで簡単にカスタマイズできる様子を示した。ブラウザの用意しているコントロールが気に入らなければ,自身で実装することが可能なのだ。
HTML5 は遠い将来の話ではない。主流ブラウザではすでに HTML5 サポート追加が始まっている。2014 年まで待つ必要はないのだ。HTML5 の将来について,あなたはどう思うだろうか?
このポストは InfoQ China の Ding Xuefeng 氏による記事をもとに翻訳したものです:: http://www.infoq.com/cn/news/2011/04/html5-design.