この文書は「HTML5 differences from HTML4 (W3C Working Draft 25 May 2011)」の日本語訳です。

原文の最新版 は、この日本語訳が参照した版から更新されている可能性があります。

この日本語訳は参考情報であり、正式な文書ではないことにご注意ください。また、翻訳において生じた誤りが含まれる可能性があります。他の仕様の訳については Web 標準仕様 日本語訳一覧 を参照してください。

更新日:
2011-09-15
公開日:
2011-05-26
翻訳者:
矢倉 眞隆 <>

W3C

HTML5 における HTML4 からの変更点

2011年5月25日付 W3C 草案 (Working Draft)

この版:
http://www.w3.org/TR/2011/WD-html5-diff-20110525/
最新版:
http://www.w3.org/TR/html5-diff/
最新の編集版:
http://dev.w3.org/html5/html4-differences/
前の版:
http://www.w3.org/TR/2011/WD-html5-diff-20110405/
http://www.w3.org/TR/2011/WD-html5-diff-20110113/
http://www.w3.org/TR/2010/WD-html5-diff-20101019/
http://www.w3.org/TR/2010/WD-html5-diff-20100624/
http://www.w3.org/TR/2010/WD-html5-diff-20100304/
http://www.w3.org/TR/2009/WD-html5-diff-20090825/
http://www.w3.org/TR/2009/WD-html5-diff-20090423/
http://www.w3.org/TR/2009/WD-html5-diff-20090212/
http://www.w3.org/TR/2008/WD-html5-diff-20080610/
http://www.w3.org/TR/2008/WD-html5-diff-20080122/
Editors:
Anne van Kesteren (Opera Software ASA) <annevk@opera.com>
Simon Pieters (Opera Software ASA) <simonp@opera.com>

Abstract

HTML5 は World Wide Web の中核言語 HTML の第 5 版です。この文書「HTML5 における HTML4 からの変更点」は、HTML5 が HTML4 からどう変わったのかをその理由とともに説明します。なお、HTML5 仕様は現在も活発に修正や変更が行われているため、この文書は正しい情報を提供できていない場合があります。疑わしい部分がある場合には HTML5 仕様を参照するようにしてください。[HTML5]

この文書のステータス

この章は、この文書の公開時におけるステータスについて説明しています。このため、他の仕様がこの文書を上書きしている可能性があります。W3C による他の出版物およびこの技術レポートの最新版は W3C 技術レポートインデックス (http://www.w3.org/TR/) から探すことができます。

この文書は HTML ActivityHTML Working Group が作成した 2011年5月25日付 W3C 草案 (Working Draft) です。HTML WG はこの文書を Working Group Note として HTML5 仕様 とともに公開する予定です。仕様書やこの文書へのコメントを寄せるのに適切なフォーラムは public-html-comments@w3.org です。公開アーカイブ も存在しています。

草案としての仕様書公開は W3C メンバーによる支持を意味するものではありません。この文書は更新されたり他の文書と置き換えられたり、また破棄される可能性もある草稿段階の仕様書です。策定中ということを明記せずにこの文書を引用することは適当でありません。

この文書は 5 February 2004 W3C Patent Policy の下で活動するグループにより作成されました。W3C は 特許情報の開示に関する公開リスト を関連する団体と共にその成果物とあわせて管理しています。リストには情報開示に関する説明もありますのでご参照ください。特許について十分に知識のある人物が、当該仕様に関し Essential Claim(s) が認められると判断した場合は、W3C 特許方針の第6章 に従い情報を開示する必要があります。

目次

1. はじめに

HTML は 1990 年代はじめに誕生してから今日まで発展を続けています。HTML の機能は仕様書を定義し拡張されることもあれば、ソフトウェアの独自実装により拡張されることもありました。この歴史のなか、実装と製作者の慣習は近づき、仕様書やその他の標準とも合致しました。しかし一方で相違も生まれ続けています。

HTML4 は 1997 年に W3C 勧告となりました。そしてその仕様書は今日も、HTML の機能を大まかに説明する説明書として利用されています。しかしながら、この仕様書は実装同士、また Web 上に存在する莫大な数の HTML 文書に対し、どのように相互運用性を確保するのかという、重要な情報を提供していません。

そして残念ながら、情報の欠如は HTML4 を XML でシリアライズした XHTML1 や、HTML と XHTML に JavaScript API を提供する DOM Level 2 HTML に対しても起こってしまいました。HTML5 はこれらの仕様を置き換える目的で策定されています。[DOM2HTML] [HTML4] [XHTML1]

HTML5 仕様の草案は、2004 年に始められた HTML 実装と Web 上の HTML 文書に対し行った調査結果を反映し、次の要件を掲げています。

  1. HTML5 と呼ばれ、HTML または XML で記述するひとつの言語仕様を定義する。
  2. 詳細な処理モデルを定義し、相互運用可能な仕様の実装を手助けする。
  3. 文書のマークアップを改善する。
  4. Web アプリケーションのような新しい表現に対しマークアップと API を提供する。

1.1. 未解決の問題

HTML5 は草稿段階の仕様です。HTML5 仕様および、この文書中の HTML5 に関する項目は、現在も HTML ワーキンググループや WHATWG メーリングリストで検討中です。未解決の問題は HTML5 仕様からリンクされています。

1.2. 後方互換性

HTML5 は、現在 Web 上に公開されている HTML 文書について、ユーザーエージェントが後方互換を取るようにと定義しています。HTML5 では、製作者のためオーサリング言語をシンプルにした結果、表象的な要素をはじめとするいくつかの要素や属性が含まれていません。CSS の使用が推奨されるこれらの要素や属性に関しては、後のセクションに詳しい説明があります。

一方で、ユーザーエージェントは古い要素や属性をサポートし続けなければなりません。このため、HTML5 仕様は製作者に対する要件と、ユーザーエージェントに対する要件を明確に分けています。たとえば、製作者は isindexplaintext 要素を使用することはできませんが、ユーザーエージェントはこれらの要素を Web 上のコンテンツと互換性をとるかたちでサポートする必要があります。

「製作者の要件」「ユーザーエージェントの要件」という2つの適合性要件を定義したことで、要素や属性に「非推奨 (deprecated)」という扱いを行う必要はなくなりました。

1.3. 開発モデル

HTML5 仕様は、少なくとも2つの完全な実装が登場するまでは完成したとみなされません。実装が完全であるかを検証するときにはテストスイートが使われます。このアプローチは、実装される前に最終仕様が承認されていた過去の HTML とは異なります。この変更の目的は、仕様が実装可能であり、また仕様が完成した際にすでに作成者が利用できることを保証することにあります。

2. 構文

HTML5 では、広く使われている HTML4 や XHTML 1 と互換性のある HTML 構文を採用しています。しかしこの構文は HTML4 における、処理命令短縮マークアップ などの難解な SGML の機能とは互換性がありません。ほとんどのユーザーエージェントでサポートされていないからです。HTML 構文を使用する文書のほとんどは text/html メディア型で提供されています。

HTML5 はまた、エラー処理を含む詳細な構文解析規則を定義しています。これらの規則は、既にある実装と多くの部分で互換性を持つように設計されています。ユーザーエージェントは text/html メディア型を持つリソースに対し、これらの規則に従い構文解析を行う必要があります。HTML 構文に適合する文書の例は、次のようなものになります。

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Example document</title>
  </head>
  <body>
    <p>Example paragraph</p>
  </body>
</html>

HTML5 はまた text/html-sandboxed というメディア型を HTML 構文に対して提供しています。このメディア型は、信頼できないコンテンツをホストする際に利用されます。

HTML5 で使用できるもうひとつの構文は XML です。この構文は XHTML 1 文書および、その実装と互換性をもちます。XML 構文を使用する文書は、XML のメディア型を利用する必要があります。また、XML 仕様にて述べられた規則に基づき、要素は http://www.w3.org/1999/xhtml 名前空間に属する必要があります。 [XML]

次の例は、HTML5 文書の XML 構文に適合する文書の例です。この XML 文書は XML のメディア型、すなわち application/xhtml+xml, または application/xml で提供される必要があることに注意してください。

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Example document</title>
  </head>
  <body>
    <p>Example paragraph</p>
  </body>
</html>

2.1. 文字エンコーディング

HTML5 の HTML 構文において、作成者は次の3つの方法から文書の文字エンコーディング (符号化方式) を指定できます。

XML 構文では、作成者は XML 仕様の規定に基づいて符号化方式を指定しなければいけません。

2.2. DOCTYPE

HTML5 の HTML 構文は、ブラウザーにページを標準モードで表示させるよう、DOCTYPE を必須としています。DOCTYPE はモード指定以外に何も目的を持っていないため XML 構文での記述は任意となります。これは、XML のメディア型を利用する文書は常に標準モードで表示されるからです。[DOCTYPE]

DOCTYPE 宣言は <!DOCTYPE html> となります。HTML 構文では、大文字と小文字を区別しません。以前の HTML は SGML であり、DTD を参照する必要があったため DOCTYPE は長くなっていました。しかしこれは HTML5 では異なり、DOCTYPE はただ HTML 構文において標準モードを有効にする手段として必要とされています。なお、ブラウザーは現段階において既に <!DOCTYPE html> を標準モードのトリガーとして解釈しています。

2.3. MathML と SVG

HTML5 では、HTML 構文でも MathML や SVG を利用することができます。とても簡単な例ですが、次のように書くことが可能となります。

<!doctype html>
<title>SVG in text/html</title>
<p>
 A green circle:
 <svg> <circle r="50" cx="50" cy="50" fill="green"/> </svg>
</p>

もちろん、複雑なことも行えます。たとえば、HTML の中で、SVG の foreignObject を利用し、その中に MathML や HTML を含めることも可能です。

2.4. そのほか

他にもいくつか、知っておいて損のない変更点があります。

3. 言語

このセクションは、明確に HTML4 と HTML5 の違いを説明するため、いくつかのサブセクションに分かれています。

3.1. 新しい要素

HTML5 では、文書をよりよく構造化するために、次の要素が新しく追加されました。

他にも、新しい要素が追加されています。

inputtype 属性は、新しく次の値をサポートします。

これらの属性値は、ユーザーエージェントがインターフェースを提供し、決められたフォーマットでサーバーにデータを送信することができるように定義されました。たとえばこれらは、カレンダーの日付選択インターフェースや、ユーザーのアドレスブックと統合した機能に役立ちます。

また、これらの属性値により、ユーザーがサーバーにデータを送信する前にフォームの内容をチェックすることができます。このため、フィードバックを待つ時間の短縮を実現し、ユーザーにより良いエクスペリエンスを提供することができます。

3.2. 新しい属性

HTML5 は HTML4 で定義されていた要素に、新しい属性を導入しました。

HTML4 で定義されていたいくつかの属性がすべての要素に適用可能となりました。accesskey, class, dir, id, lang, style, tabindex, title 属性がその属性で、これらはグローバル属性と呼ばれます。また、XHTML 1.0 において xml:space 属性はいくつかの要素にしか適用できませんでしたが、HTML5 の XHTML 構文ではすべての要素に適用可能となりました。

さらに、新しいグローバル属性も導入されました。

HTML5 ではまた、HTML4 で定義されていた onevent-name といったイベントハンドラ属性すべてがグローバル属性に変更されました。また、新たなイベントの定義にあわせて、それを処理するイベントハンドラ属性も設けています。たとえば、videoaudio といったメディア要素で利用される play イベントが当てはまります。

3.3. 変更された要素

次に挙げる要素は HTML5 で若干意味が変更されています。これらの変更は Web における使われ方を反映したもの、またはより便利なものとなるよう行われています。

3.4. 変更された属性

li 要素の value 属性は表象的ではないことから非推奨ではなくなりました。ol 要素の start 属性も同様に非推奨ではなくなりました。

a 要素と area 要素の target 属性は非推奨ではなくなりました。これは iframe など、Web アプリケーションにおいて役立つものであるからです。

script 要素と style 要素の type は、スクリプト言語が ECMAScript, スタイル言語が CSS の場合、指定が必須ではなくなりました。

table 要素の border 属性には "1" もしくは空文字列しか指定できなくなりました。

次の属性は書くことができますが、製作者はこれらを利用することは咎められ、代替手段を利用することが強く求められています。

3.5. 不在の要素

このセクションにある要素は、製作者が使用することのできない要素です。しかし、ユーザーエージェントはそれらをサポートし続ける必要があります。HTML5 仕様書では、これらの要素をどのように扱うかを随所で定義しています。たとえば、isindex 要素の処理は構文解析のセクションで定義されています。

次に挙げる要素は HTML5 に存在しません。なぜならこれらの要素は表象的であり、またそれらの機能は CSS にて扱われるべきだからです。

次に挙げる要素もまた HTML5 に存在しません。これらの要素はユーザビリティやアクセシビリティに影響するからです。

次に挙げる要素は使用例が少ない、混乱の元になる、また他の要素でよりよく処理できることから含まれていません。

最後に、noscript 要素は HTML 構文でのみ適合するようになりました。これは noscript 要素の利用が HTML パーサーに依存するからであり、そのため XML 構文には含まれません。

3.6. 不在の属性

HTML4 の属性のうちいくつかは、HTML5 で書くことのできない属性です。仕様では、ユーザーエージェントがそのような属性を含む古い文書をどのように処理するかを定義していますが、制作者はそれらを利用してはいけません。利用した場合、その文書は妥当ではありません。

しかし、HTML5 では 代わりに何を利用すればよいかを説明するガイド を設けています。

これらの属性に加え、HTML5 では HTML4 で定義されていた表象的な属性がすべて削除されました。これらは CSS にて扱われるべきだからです。

4. API

HTML5 は Web アプリケーションを製作する手助けとなるいくつかの API を提供します。これらの API は新しいアプリケーションのために導入された要素と共に使用できます。

4.1. HTMLDocument の拡張

HTML5 は DOM Level 2 HTML の HTMLDocument インターフェースをさまざまな面で拡張しています。このインターフェースは Document インターフェースをインプリメントするすべてのオブジェクトにインプリメントされます。このため、複合文書においても意味を持つことになります。また他にも、いくつか注目すべき新しいメンバがあります。

4.2. HTMLElement の拡張

HTML5 では HTMLElement インターフェースに対しても、いくつかの拡張が行われました。

5. HTML5 Changelog

このセクションでは、公開されている HTML5 草案の変更点を記録しています。変更についての詳細は public-html@w3.orgwhatwg@whatwg.org のアーカイブ、または WHATWG Weekly をご覧ください。変更の理由については WHATWG の Rationale ページをご覧ください。細かな編集に関わるもの、または技術的ですが変更が些細なものについては記録していません。あなたが実装者である場合は、この文書ではなく HTML5 仕様そのものの変更を追従してください。

変更点は、大まかですが時系列に沿って記述されています。

5.1. 2011年4月5日版からの変更点

5.2. 2011年1月13日版から2011年4月5日版までの変更点

5.3. 2010年10月19日版から2011年1月13日版までの変更点

getSelection() API が DOM Range に移動されました。また、UndoManager がまだ十分な状態にないことから W3C の HTML5 仕様から削除されました。

5.4. 2010年6月24日版から2010年10月19日版までの変更点

いつもどおり、微細な仕様の修正も数多く行われています。

5.5. 2010年3月4日版から2010年6月24日版までの変更点

これらに加え、細かな変更、仕様の明確化、および修正が行われました。

5.6. 2009年8月25日版から2010年3月4日版までの変更点

他にも多くの issue が解決されています。上記のリストは、製作者にとって重要と考えられるものを取り上げています。

これらの変更に加えて、W3C の HTML5 から マイクロデータ、canvas の 2D context API, Web Messaging (postMessage() API) が分離され、それぞれ個別の草案として公開されることになりました (WHATWG の HTML5 では、これらを引き続き含んだかたちで公開しています)。

マイクロデータの語彙が W3C の HTML5 草案から削除されました。別の草案として公開されてもいませんが、WHATWG の HTML5 には含まれたままです。

5.7. 2009年4月23日版から2009年8月25日版までの変更点

このほかにも、仕様の明確化、誤植、実装者に対する項目、そしてその他の小さな問題も解決されています。

加えて、これまで HTML5 仕様中で定義されていた次の機能が分離されました。これらは IETF での作業が検討されています。

5.8. 2009年2月12日版から2009年4月23日版までの変更点

これらの変更に加えて、HTML5 で定義されていた次の機能が分離され、Web Applications Working Group に移管されました。これらはそれぞれ個別の仕様として策定されることになります。

5.9. 2008年6月10日版から2009年2月12日版までの変更点

別の仕様として策定されていた Web Forms 2.0 が HTML5 に取り込まれました。フォーム関連の章に行われた変更は、次の通りです。

5.10. 2008年1月22日版から2008年6月10日版までの変更点

謝辞

編集者は、この文書の執筆に貢献してくれた Ben Millard, Bruce Lawson, Cameron McCormack, Charles McCathieNevile, Dan Connolly, David Håsäther, Dennis German, Frank Ellermann, Frank Palinkas, Futomi Hatano, Gordon P. Hemsley, Henri Sivonen, James Graham, Jens Meiert, Jeremy Keith, Jürgen Jeka, Krijn Hoetmer, Leif Halvard Silli, Maciej Stachowiak, Marcos Caceres, Mark Pilgrim, Martijn Wargers, Martyn Haigh, Masataka Yakura, Michael Smith, Olivier Gendrin, Øistein E. Andersen, Philip Jägenstedt, Philip Taylor, Randy Peterman, Toby Inkster, Yngve Spjeld Landro, そして長年 HTML5 に関わり、Web の向上につとめてくださった方にとても感謝しています!

参考文献

[CSS-UI]
CSS3 Basic User Interface Module, T. Çelik. W3C.
[DOCTYPE]
Activating Browser Modes with Doctype, H. Sivonen.
[DOM2HTML]
Document Object Model (DOM) Level 2 HTML Specification, J. Stenback, P. Le Hégaret, A. Le Hors. W3C.
[HTML4]
HTML 4.01 Specification, D. Raggett, A. Le Hors, I. Jacobs, editors. W3C.
[HTML5]
HTML5, I. Hickson. W3C.
HTML5 (editor's draft), I. Hickson. WHATWG.
HTML5 (editors' draft), I. Hickson. W3C.
[PSL]
Public Suffix List, Mozilla Foundation.
[SELECTORS]
Selectors, D. Glazman, T. Çelik, I. Hickson. W3C.
[XHTML1]
XHTML™ 1.1 - Module-based XHTML (Second Edition), S. McCarron, M. Ishikawa. W3C.
[XML]
Extensible Markup Language (XML) 1.0 (Fifth Edition), T. Bray, J. Paoli, C. Sperberg-McQueen, E. Maler, F. Yergeau. W3C.
Namespaces in XML 1.0 (Third Edition), T. Bray, D. Hollander, A. Layman, R. Tobin, H. S. Thompson. W3C.