HTML 5

W3C HTML 作業部会担当 スミス マイケル
(Michael Smith) <mike@w3.org>

HTML 5 で何が変わるのか?

HTML 設計原則

そもそも…

なぜ新たな HTML なのか?

XHTML には何が起ったのか?

HTML 5 では何か解決されるのか?

HTML 5 が解決する主要な問題点とは?

ユーザエージェント (UA) 間におけるアプリケーションの相互運用性問題

ユーザエージェント (UA) とは?

HTML 5 仕様では、ブラウザだけでなく、仕様への適合性検証ツールもユーザエージェントとして言及しています。

ただし、HTML 5 仕様では、ブラウザ間での相互運用性を確保するための要件を定義することに主眼を置いています。

なぜ既存のブラウザの挙動に相互運用性が確保されていないのでしょうか?

W3C ではこれまで HTMLDOM のブラウザにおける相互運用可能な処理方法を詳細には規定していませんでした。

HTML 5 はどのようにこの相互運用性問題を解決するのでしょうか?

適合性が確保されたユーザエージェントやブラウザの挙動を

規定します。

他の (X)HTML 仕様ではどうだったのでしょうか?

HTML 4XHTML 1 では、 これまでユーザエージェントやブラウザの挙動を、的確に、徹底的に、かつ、厳密には規定しようとはしていませんでした。一方、 HTML 5XHTML 2 では仕様設計において、 HTML 4XHTML 1 とは異なる目標を設定しています。

HTML を機能毎に規定

HTML 5 は、 HTML の記述方法 (マークアップ) と DOM に関し、適合性が確保されたアプリケーションの挙動を 的確に、徹底的に、かつ、厳密に記述し、 純粋に機能毎に仕様を定義する最初の仕様となります。

これは、アプリケーション機能毎に定義した他の業界仕様と同様です。

…以前の HTML 仕様では、 機能毎の仕様記述に対する業界ニーズを満たせなかったでしょう…

HTML 5 における機能毎の仕様とはどのような意味を持つのでしょうか?

HTML 5 仕様に関心を払うだけで、 HTML 5 への 適合性が確保されたユーザエージェントやブラウザの実装が可能になります。

HTML 5 はどのように機能するのでしょうか?

HTML 5

語彙は1つで2つの構文を持つ HTML 5

複合文書 (Compound Documents) とは?

XML/XHTML 構文で記述された HTML 5 であれば、 複数の名前空間に属する要素も織り込んだ複合文書も記述できますが、 text/html に基づく場合は利用できません。

HTML 5 仕様において対象外となるのは?

HTML 5 では、 HTML 構文で記述されていても、 SGML としては扱われません。

もちろん HTMLSGML として解析するツールも 存在 します。

しかし、ブラウザ側では HTMLSGML としては処理しません。

ブラウザ側には SGML 解析器は実装されていませんので、 DTD に基づく検証も、その他の SGML 検証ルールにも従っていません。

そのかわり、HTML 解析に特化した解析器を実装しています。

HTML 5 では、XML 構文に基づく HTML規定 していますが…

整形 (well-formed) された XML 構文のみの HTML だけに限定しているわけではありません

text/html: 属性の記述方法

次のいずれの記述も HTML準拠しています

DOCTYPE 宣言

<!DOCTYPE html PUBLIC
  "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!doctype html>

文字符号化

<meta
 http-equiv="Content-Type"
 content="text/html;
          charset=utf-8">
<meta charset="utf-8">

整形式 (well-formed) XML、つまり XHTML のみに HTML限定しないのは何故でしょうか?

XML では全ての XHTML 文書に対し、厳密なエラー処理が求められます。

これは、XHTML で記述された如何なるページにも、些細なエラーですらあってはならないことを意味します。

このとき、ブラウザはページを一切描画してはいけません。

しかし、Web 上の 95% 以上の HTML コンテンツが XML 整形式ではないこともまた事実です。

それゆえに、「事実存在する」「巷にありふれた」、場合によっては「旧来からの」「滅茶苦茶な」HTML の相互運用可能な解析方法を規定する必要があります。

「巷にありふれた」HTML の解析方法を正確に規定

HTML 5 では、HTML に準拠したユーザエージェントやブラウザにおける HTML の厳密な解析方法 (既存のブラウザ実装にも酷似したアルゴリズム) を精緻かつ詳細に規定しています。

これには、application/xhtml+xml としてではなく、text/html として記述された XML 整形式ではない HTML の解析方法も含みます。

正式に規定されたエラー処理方法

明確に機能毎に規定された仕様である HTML 5 におけるもう1つの重要な改定項目は、記述方法やそれ以外のあらゆるエラーの処理方法を正確に規定している点で、これにより、あらゆるユーザエージェントやブラウザにおいて相互運用可能な方法でエラー処理が行われます。

つまり

仕様書に準拠していない文書であろうと、相互運用性を確保するためにエラー処理方法を規定しなければならないということです。

言い換えるなら

仕様書の規定に関わらず、適正でない (invalid) コンテンツ記述もあり得るため、コンテンツ製作者が行ってはならないことを言明するとともに、それでもなおコンテンツ製作者が規定違反を行った場合の対処方法を実装者に提示します。

あらゆる既存のコンテンツを取り扱えるようにすることで

"Don't Break the Web"Web の分断を回避せよ」

現在 HTML 5 の仕様策定が行われているのは?

皆様の疑問にもお答えします。

HTML 5 では CSS はどのように取り扱われますか?

CSSHTML 5 でも HTML 4XHTML 1 同様に取り扱われます。CSSHTML 5 は互いに独立した仕様であり、影響が及ぶことはありません。

HTML 5 は採用されるでしょうか? (1)

少なくとも AppleGoogleMozillaOpera
MicrosoftNokia を始めとする多様な組織がこの標準化活動に積極的に参画しています。

HTML 5 は採用されるでしょうか? (2)

改良されたフォーム、canvasvideo 要素等、HTML 5 の新たな機能の幾つかは、AppleMozillaOpera が提供するブラウザに既に実装されています。

HTML 5 は採用されるでしょうか? (3)

ACCESSNokiaApple (iPhone) といった携帯機器向けブラウザ企業も本作業部会に参画しています。

HTML 5 は採用されるでしょうか? (4)

これらのことからも、ブラウザにおける HTML 5 採用の見込みは非常に高いと言えます。

HTML 5 は採用されるでしょうか? (5)

コンテンツ製作ツールは、ブラウザ側で対応している機能への対応が必要不可欠であるため、コンテンツ製作ツールにおける採用の見込みも同様に非常に高いと言えます。

HTML 5 は採用されるでしょうか? (6)

つまり、ブラウザ側での HTML 5 の採用が進めば、必然的にコンテンツ制作ツール側での採用も進むと考えられます。

HTML 4 から HTML 5 への移行は可能ですか? (1)

HTML 5 の主要な設計目標の1つは、既存のコンテンツに対する後方互換性を確保するとともに、新たな機能を盛り込むことで、(それらの機能に対応できずに相対的に魅力を失う) 旧来のブラウザを「洗練された方法で淘汰させる」ことにあります。

HTML 4 から HTML 5 への移行は可能ですか? (2)

コンテンツ提供者は、HTML 5 対応ブラウザによって既存のコンテンツの表示が崩れたり、表示できなくなったりすることはないため、コンテンツ「破壊」を回避するために、コンテンツ移行を行う必要はない。

HTML 5 の検証はできますか?

HTML 5 の新機軸

既に普及するデファクト機能の採用

Web Forms 2.0

<input>

新たに導入される要素

文書構成のために新たに導入される要素

<section>
<nav>
<article>
<aside>
<header>
<footer>

canvas 要素: img 要素にスクリプト記述機能を追加

Y! Pipes などで利用されています。

<canvas width="150" height="200" id="demo">
<!-- fallback content here -->
</canvas>

<script type="text/javascript">
 var canvas = document.getElementById("demo"),
     context = canvas.getContext("2d")
 context.fillStyle = "lime"
 context.fillRect(0, 0, 150, 200)
</script>

<canvas> 利用例

video 及び audio 要素

新要素に加え、新たに盛り込まれる API

例: 永続的なクライアント側データベース記憶域用 API

Google GearsHTML 5

Google Gears 開発部門や Apple の技術者、Opera などのブラウザ事業者らによるメーリングリスト上での議論の結果、HTML 5 では Google Gears 同様の クライアント側データベース記憶域用 API を盛り込むことになりました。

Webkit による HTML 5 クライアント側 SQL データベース用 API 実装

Webkit 開発部門は、Google Gears 同様の HTML 5 クライアント側データベース記憶域用 APIWebKit へ初期実装したことを発表しています。

Webkit による HTML 5 クライアント側 SQL データベース用 API 実装例

まとめ: HTML 5 の利点

開発者向けの利点 (1)

開発者向けの利点 (2)

利用者には選択肢を

標準に準拠した Web アプリケーションであれば、どのようなブラウザ上でも同じように利用可能になるため、如何なる特定事業者の如何なる特定製品にも縛られることもなくなり、選択の自由を享受できます。

新機能 (1)

新機能 (2)

商用効果 (1)

商用効果 (2)

ご清聴ありがとうございました

質疑応答 (日本語でどうぞ)