概要

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

この文書のステータス

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

この文書は HTML Activity の HTML ワーキンググループ が作成した最初の公開草案 (First Public Working Draft) です。HTML ワーキンググループはこの文書を 部会ノート (Working Group Note) として、HTML 5 仕様 とともに公開する予定です。仕様書やこの文書へのコメントを寄せるのに適切なフォーラムは public-html-comments@w3.org です。公開アーカイブ も存在しています。

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

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

目次

1. はじめに

HTML は 1990 年代初頭の誕生から今日まで発展を続けてきました。HTML における機能は仕様書で定義されることもあれば、ソフトウェアのリリースにより導入されることもありました。いくつかの点において、HTML の実装や作成者の慣習は互いに近づき、また仕様書や標準とも合致しました。しかし一方で、それらの間には相違も生まれ続けています。

HTML 4 は 1997 年に W3C 勧告となりました。今日までその仕様書は、HTML の核となる機能を大まかに説明するガイドとして利用されています。しかし、HTML 仕様書は実装どうしの相互運用性や、莫大な数に達した Web 上の HTML 文書をどう扱うかという重要な問題に対し、十分な情報を提供していませんでした。また、同じことがHTML 4 を XML でシリアライズした XHTML1、そして HTML と XHTML に JavaScript API を定義する DOM Level 2 HTML に対しても起こってしまいました。[ HTML4 ] [ XHTML1 ] [ DOM2HTML ]

HTML 5 仕様の草案は、2004 年に始まった現在の HTML 実装と、Web に公開されている HTML 文書に対し行った調査を反映し、次の要件を掲げています。

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

1.1. 未解決の問題

HTML 5 は未だ草稿段階です。HTML 5 仕様書および、この文書中の HTML 5 に関する項目は、現在も HTML ワーキンググループや WHATWG メーリングリストで検討中です。網羅的ではありませんが、未だ解決されていない問題について次に記します。

表象的であった要素に対して与えられた、デファクトな意味定義。

longdesc 、 alt 、 summary 、 headers など、アクセシビリティおよびメディア非依存な機能の詳細。

、 、 、 など、アクセシビリティおよびメディア非依存な機能の詳細。 style 属性。

属性。 繰り返しモデル。

1.2. 後方互換性

すでに Web 上に公開されている HTML 文書への扱いに対して、HTML 5 はユーザーエージェントが後方互換を取るようにと定義しています。

HTML 5 では、オーサリング言語を製作者のためシンプルにした結果、表象的な要素をはじめとするいくつかの要素や属性が含まれていません。CSS の使用が推奨されるこれらの要素や属性に関しては、後のセクションに詳しい説明があります。

一方で、ユーザーエージェントはこれらの古い要素をサポートし続けなければなりません。このため、仕様書は製作者に対する要件とユーザーエージェントの要件を明確に分けています。たとえば、製作者は isindex や plaintext 要素を使用することはできませんが、ユーザーエージェントはこれらの要素が過去にどう振舞っていたかを考慮し、それに互換性を持つ形でサポートする必要があります。

HTML 5 は製作者とユーザーエージェントに別々の適合性要件を設けたことにより、「非推奨 (deprecated)」という扱いを行う必要がなくなりました。

1.3. 開発モデル

HTML 5 仕様は、少なくともふたつの完全な実装が登場するまでは完成したとみなされません。これは過去の HTML とは異なるアプローチです。この開発モデルを採用する目的として、開発者やデザイナーに仕様が完成した時点で実装可能、使用可能であることを保証したいというものがあります。

2. 構文

HTML 5 言語は、Web に公開されている HTML 4 や XHTML1 と互換性のある「カスタム」HTML 構文を採用しています。しかしこの構文は HTML 4 における、たとえば <em/content/ などの難解な SGML の機能とは互換性がありません。この「カスタム」構文を使用する文書は text/html MIME タイプで供給される必要があります。

HTML 5 はまた、この構文にエラーハンドリングを含む詳細なパース処理規則を定義しています。これらの規則は、よくある実装と大部分において互換性を持つよう設計されています。ユーザーエージェントは text/html MIME タイプを持つリソースに対し、これらの規則に従いパース処理を行います。「カスタム」HTML 構文に適合する HTML 文書の例は、次のようなものになります。

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

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

次の例は HTML 5 文書の XML 構文に適合する文書の例です。この XML 文書は XML の MIME 型、すなわち 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. 文字符号化方式

HTML 5 の HTML 構文において、作成者は次に示す三つの方法から、文書の文字符号化方式を指定できます。

HTTP の Content-Type ヘッダなど、トランスポートレベルでの指定。

ヘッダなど、トランスポートレベルでの指定。 ファイルの先頭に記述する Unicode 文字である、Byte Order Mark (BOM) を用いた指定。この特殊文字により、使用する符号化方式を特定することができます。

meta 要素の charset 属性による指定。この要素は head 要素の一番初めに宣言します。たとえば <meta charset="UTF-8"> は、UTF-8 符号化方式を指定する場合に用いることができます。これは今まで使われていた <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> という指定方法を置き換えるものです。

XML 構文では、作成者は XML 仕様の規定に基づき文字符号化方式を指定する必要があります。

2.2. DOCTYPE

HTML 5 の HTML 構文では、ブラウザがページを標準モードで描画することを保証するため、 DOCTYPE が必須となります。 DOCTYPE はこのほかに何も目的を持っていないため、XML 構文での記述は任意となります。これは、XML の MIME 型で供給される文書は常に標準モードで扱われるためです。[ DOCTYPE ]

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

3. 言語

このセクションは、HTML 4 とHTML 5 の違いをより明確に説明するため、いくつかの小セクションに別れています。

3.1. 新しい要素

文書のより良い構造化のため、次の要素が新しく追加されました。

section 要素は文書やアプリケーションにおける一般的なセクションを表します。 h1 - h6 と共に用いることで、文書構造を示唆することができます。

article 要素は blog エントリや新聞記事など、文書の中で独立した一片の内容を表します。

aside 要素はページのほかの部分とわずかにのみ関係する一片の内容を表します。

header 要素はヘッダにあたるセクションを表します。

footer 要素はフッタにあたるセクションを表します。フッタには作者に関する情報、著作権に関する情報などを含むことができます。

nav 要素はナビゲーションを目的とした、一つのセクションを表します。

dialog 要素は、次のようなマークアップで会話文を表現します。 <dialog> <dt> Costello <dd> Look, you gotta first baseman? <dt> Abbott <dd> Certainly. <dt> Costello <dd> Who's playing first? <dt> Abbott <dd> That's right. <dt> Costello <dd> When you pay off the first baseman every month, who gets the money? <dt> Abbott <dd> Every dollar of it. </dialog>

figure 要素は画像やビデオなどの埋め込み内容に、説明文やキャプションを付加するために用いられます。 <figure> <video src=ogg>…</video> <legend>Example</legend> </figure>

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

マルチメディアのための audio および video 要素が導入されました。どちらの要素にも製作者がスクリプトを用い、独自のユーザーインターフェースを作成できるような API が提供されます。もちろん、ユーザーエージェントによるインターフェースの提供を働きかけるための仕組みも存在します。これらの要素と source 要素を共に用いることで、異なるタイプの多重ストリームを記すことができます。

embed 要素はプラグイン用のコンテンツに用いられます。

m 要素は印づけされた一連のテキストを表します。

meter 要素はディスク容量などの測定値を表します。

time 要素は日付や時刻などの時間情報を表します。

canvas 要素はグラフ、ゲームなど動的に描画され更新されるビットマップグラフィックスに用いられます。

command 要素はユーザーが実行するコマンドを表します。

datagrid 要素はインタラクティブなツリーリスト、または表データを表します。

details 要素はユーザーがオンデマンドに得る、付加的な情報やコントロールを表します。

datalist 要素と input 要素の新しい list 属性を組み合わせ、コンボボックスを作成することができます。 <input list=browsers> <datalist id=browsers> <option value="Safari"> <option value="Internet Explorer"> <option value="Opera"> <option value="Firefox"> </datalist>

datatemplate 、 rule 、そして nest 要素は、HTML にテンプレート機構を提供します。

event-source 要素はサーバーが送信したイベントを「キャッチ」する際に用いられます。

output 要素はスクリプトによる計算結果など、何らかの出力結果を表します。

progress 要素はダウンロードや負荷の高い処理など、実行中のタスクを表します。

input 要素の type 属性は、次に記す新たな値をサポートします。

datetime

datetime-local

date

month

week

time

number

range

email

url

これらの属性値は、ユーザーエージェントがユーザーインターフェースを提供し、決められたフォーマットでサーバーにデータを送信させることができるように定義されました。これらはたとえばカレンダーにおける日付選択のインターフェースや、ユーザーのアドレスブックと統合した機能に役立ちます。また、これらの属性値により、ユーザーがサーバーにデータを送信する前にフォームの内容をチェックすることができます。このため、フィードバックを待つ時間の短縮を実現し、ユーザーにより良いエクスペリエンスを提供することができます。

3.2. 新しい属性

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

a および area 要素は media 属性を持つことができるようになりました。これは link 要素との一貫性を保持するためで。この属性は、純粋に助言的な情報です。

a および area 属性は新しい属性 ping を持つことができます。属性値はスペース区切りの URI で、ハイパーリンクをたどるときに ping されなければならないリソースを指定します。現在ユーザートラッキングはリダイレクト処理により行われていますが、この属性によりユーザーエージェントはユーザーに対し、どの URI が ping されるのかを教えることができ、かつプライバシーを意識するユーザーに対し、その機能を無効にする仕組みを用意することができます。

area 要素は、一貫性保持のため hreflang および rel 属性を持つことができるようになりました。

base 要素は a 要素との一貫性保持のため、また広くサポートされていることから、 target 属性を持つことができるようになりました。また、 a および area 要素の target 属性は非推奨ではなくなりました。これは iframe など、Web アプリケーションにおいて役立つものであるからです。

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

meta 要素は charset を持つことができるようになりました。これはすでに広くサポートされており、また文書の 文字符号化方式 を指定する、より素敵な方法です。

input 、 select 、 textarea 、そして button 要素に autofocus 属性を指定できるようになりました (ただし、 type 属性に hidden が指定された input 要素には指定できません)。この属性はページがロードされたときに特定のフォームコントロールにフォーカスを与える仕組みを提供します。気に入らなければユーザーが自動フォーカス機能をオフにできることも含め、この属性はユーザーエクスペリエンスを向上させるでしょう。

input 、 output 、 select 、 textarea 、 button 、そして fieldset 要素に新たに導入された form 属性により、ひとつ以上のフォームにコントロールを指定することができるようになりました。

input 、 button 、そして form 要素は replace 属性を持つことができるようになりました。この属性は、フォームが送信された後の処理に影響します。

datalist 要素と同様に、 form 、 select 要素は data 属性を持てるようになりました。この属性により、 form 要素やフォームコントロールでは自動的なフォーム内容の記入が、また select や datalist 要素ではサーバーからデータの自動読み込みが可能となります。

input および textarea 要素に required 属性を指定できるようになりました (ただし、 type 属性に hidden 、 image 、そして submit など何らかのボタンタイプが指定された input 要素には指定できません)。この属性により、ユーザーはどのフォームに記入することでフォームを送信できるかを知ることができるようになります。

input および textarea 要素は新しい属性 inputmode を持つことができるようになりました。この属性により、ユーザーはどのような入力が求められるのかをヒントとして知ることができるようになります。

disabled 属性により、ひとつの fieldset 要素全体を無効にすることができるようになりました。この機能は今まで可能ではありませんでした。

input 要素は次に挙げる新しい属性により、さまざまな制約を加えることができるようになりました。 autocomplete 、 min 、 max 、 pattern 、そして step がその属性です。また、先に述べたように、 datalist および select 要素と併用する list 属性も存在します。

input および button 要素は新しい属性 template を持つことができるようになりました。この属性により、繰り返しテンプレートを利用することができるようになります。

menu 要素は三つの新しい属性 type 、 label 、そして autosubmit を導入しました。これらの属性により、要素を典型的なユーザーインターフェースで見られるようなメニューに変形させることができます。またグローバル属性 contextmenu と併用することで、コンテキストメニューの提供も行うことができるようになりました。

style 要素は新しい scoped 属性を持つことができるようになりました。これによりスコープを絞ったスタイルシートの指定が可能となります。このような style 要素によるスタイル指定は、ローカルツリーにのみ適用されます。

script 要素は新しい async 属性を持つことができるようになりました。この属性はスクリプトのローディングおよび実行に影響を与えます。

html 要素は manifest と呼ばれる新しい属性を持つことができるようになりました。この属性は、オフライン Web アプリケーションのための API と強調し、アプリケーションキャッシュのマニフェストを指定します。

HTML 4 で定義されていたいくつかの属性は、すべての要素に適用できるようになりました。これらはグローバル属性と呼ばれ、 class 、 dir 、 id 、 lang 、 tabindex 、そして title 属性が当てはまります。

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

contenteditable 属性は要素が編集可能領域であることを示す属性です。ユーザーは内容を変更し、マークアップを操作することができます。

属性は要素が編集可能領域であることを示す属性です。ユーザーは内容を変更し、マークアップを操作することができます。 contextmenu 属性は製作者によって提供されるコンテキストメニューを指定します。

属性は製作者によって提供されるコンテキストメニューを指定します。 draggable 属性は新しく定義されたドラッグ & ドロップ API と組み合わせて利用します。

属性は新しく定義されたドラッグ & ドロップ API と組み合わせて利用します。 irrelevant 属性は、現在またはこの先意味を成さない要素を表します。

次に記すものは繰り返しモデルにて利用される属性です。これらはグローバル属性であり、すべての HTML 要素に用いることが出来ます。また、 http://www.w3.org/1999/xhtml 名前空間に属することで、他の名前空間に属する要素にも用いることができます。

repeat

repeat-start

repeat-min

repeat-max

HTML 5 はまた、HTML 4 で定義されていた on event-name という形をとるすべてのイベントハンドラ属性をグローバルなものに変更しました。また、新たなイベントの定義と共に、それを処理するイベントハンドラ属性も設けています。たとえば、新しい event-source 要素およびクロスドキュメントなメッセージ API と共に用いる、 onmessage 属性などが当てはまります。

3.3. 変更された要素

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

href 属性のない a 要素は「リンクのプレースホルダ」を意味するようになりました。

address 要素は新しいセクショニングの概念により、スコープが狭まりました。

b 要素は文章において重要性を与えるわけではないものの、スタイル上表現が異なった部分を表すようになりました。たとえば概要におけるキーワードや、レビューにおける製品名など、タイポグラフィの慣習上よく太字にされるものが当てはまります。

hr 要素はパラグラフレベルでの主題変化を表すようになりました。

i 要素は文章において、異なった声やムード、または文章からオフセットとなっているものを表します。たとえば分類指示、専門用語、他言語での慣用句、考え、船舶名など、タイポグラフィの慣習上、斜体で表されるものが当てはまります。言語により幅広い用例が想定されます。

label 要素と結びつけられたコントロールに、ブラウザがフォーカスを移すことは行われなくなるでしょう。しかし、同様のコントロールがプラットフォームのユーザーインターフェースで標準的な動作となる場合は当てはまりません。

menu 要素は実際のメニューを表すよう再定義されました。

small 要素は脚注や法的条項などの細字部分を表すようになりました。

strong 要素は文章の一部を部分的に強調するものではなく、文章の重要度を示すものとなりました。

3.4. 不在の要素

このセクションにある要素は、製作者が使用することのできない要素です。しかし、ユーザーエージェントはそれらをサポートし続けなければならないでしょう。また、HTML 5はそのうち、それらの要素をどうサポートすべきかをまとめた描画に関するセクションを設けるでしょう (たとえば、 isindex 要素はすでにパーサがサポートしています)。

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

basefont

big

center

font ただし WYSIWYG エディタにはユーザーインターフェースの制限があることから、この要素の使用が許可されます。

ただし WYSIWYG エディタにはユーザーインターフェースの制限があることから、この要素の使用が許可されます。 s

strike

tt

u

次に挙げる要素もまた HTML 5 に存在しません。これらの要素はユーザビリティやアクセシビリティに影響し、エンドユーザーに良くない結果をもたらすからです。

frame

frameset

noframes

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

acronym 要素は多大なる混乱を引き起こしたことから削除されました。略語には abbr 要素を用いてください。

要素は多大なる混乱を引き起こしたことから削除されました。略語には 要素を用いてください。 applet 要素は object が支持されたことから廃止されました。

要素は が支持されたことから廃止されました。 isindex 要素はフォームコントロールの代用により置き換えられます。

要素はフォームコントロールの代用により置き換えられます。 dir 要素は ul 要素が支持されたことから廃止されました。

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

3.5. 不在の属性

HTML 4 で定義されていたいくつかの属性は HTML 5 に存在しません。それらの属性が互換性に関する理由からユーザーエージェントに大きな影響を及ぼす場合、どのように働けばよいのかを明らかにしなければなりません。

a 、 area 、 button 、 input 、 label 、 legend 、そして textarea 要素の accesskey 属性。

、 、 、 、 、 、そして 要素の 属性。 link および a 要素の rev 属性および charset 属性。

および 要素の 属性および 属性。 a 要素の shape 属性および coords 属性。

要素の 属性および 属性。 img および iframe 要素の longdesc 属性。

および 要素の 属性。 link 要素の target 属性。

要素の 属性。 area 要素の nohref 属性。

要素の 属性。 head 要素の profile 属性。

要素の 属性。 html 要素の version 属性。

要素の 属性。 map 、 img 、 object 、 form 、 iframe 、そして a 要素の name 属性 (代わりに id 属性を使ってください)。

、 、 、 、 、そして 要素の 属性 (代わりに 属性を使ってください)。 meta 要素の scheme 属性。

要素の 属性。 object 要素の archive 、 classid 、 codebase 、 codetype 、 declare 、および standby 属性。

要素の 、 、 、 、 、および 属性。 param 要素の valuetype 属性および type 属性。

要素の 属性および 属性。 script 要素の charset 属性および language 属性。

要素の 属性および 属性。 table 要素の summary 属性。

要素の 属性。 td および th 要素の headers 、 axis 、そして abbr 属性。

および 要素の 、 、そして 属性。 td 要素の scope 属性。

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

caption 、 iframe 、 img 、 input 、 object 、 legend 、 table 、 hr 、 div 、 h1 、 h2 、 h3 、 h4 、 h5 、 h6 、 p 、 col 、 colgroup 、 tbody 、 td 、 tfoot 、 th 、 thead 、 tr 、 body 要素の align 属性。

、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 要素の 属性。 body 要素の alink 、 link 、 text 、そして vlink 属性。

要素の 、 、 、そして 属性。 body 要素の background 属性。

要素の 属性。 table 、 tr 、 td 、 th 、 body 要素の bgcolor 属性。

、 、 、 、 要素の 属性。 table 、 img 、そして object 要素の border 属性。

、 、そして 要素の 属性。 table 要素の cellpadding 属性および cellspacing 属性。

要素の 属性および 属性。 col 、 colgroup 、 tbody 、 td 、 tfoot 、 th 、 thead 、 tr 要素の char 属性および charoff 属性。

、 、 、 、 、 、 、 要素の 属性および 属性。 br 要素の clear 属性。

要素の 属性。 dl 、 menu 、 ol 、 ul 要素の compact 属性。

、 、 、 要素の 属性。 table 要素の frame 属性。

要素の 属性。 iframe 要素の frameborder 属性。

要素の 属性。 iframe 、 td 、 th 要素の height 属性。

、 、 要素の 属性。 img 、 object 要素の hspace 属性及び vspace 属性。

、 要素の 属性及び 属性。 iframe 要素の marginheight 属性および marginwidth 属性。

要素の 属性および 属性。 hr 要素の noshade 属性。

要素の 属性。 td 、 th 要素の nowrap 属性。

、 要素の 属性。 table 要素の rules 属性。

要素の 属性。 iframe 要素の scrolling 属性。

要素の 属性。 hr 、 input 、 select 要素の size 属性。

、 、 要素の 属性。 font 以外のすべての要素における style 属性。

以外のすべての要素における 属性。 li 、 ol 、 ul 要素の type 属性。

、 、 要素の 属性。 col 、 colgroup 、 tbody 、 td 、 tfoot 、 th 、 thead 、 tr 要素の valign 属性。

、 、 、 、 、 、 、 要素の 属性。 hr 、 table 、 td 、 th 、 col 、 colgroup 、 iframe 、 pre 要素の width 属性。

4. API

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

新しい canvas 要素にて使用可能な 2D 描画 API。

要素にて使用可能な 2D 描画 API。 新しい video および audio 要素にてビデオやオーディオを再生する API。

および 要素にてビデオやオーディオを再生する API。 固定ストレージ。キーと値、そして SQL データベースのどちらもがサポートされます。

オフラインアプリケーションを可能にする API。

Web アプリケーションが特定のプロトコルまたは MIME タイプに対し、自身を登録するための API。

新しいグローバル属性 contenteditable と共に用いられる、編集 API。

と共に用いられる、編集 API。 draggable 属性と共に用いられる、ドラッグ & ドロップ API。

属性と共に用いられる、ドラッグ & ドロップ API。 ネットワーク API。

「戻る」ボタンを壊さないため、履歴を開いてページをその中に追加する API 。この API はそのための必要なセキュリティ権限を持ちます。

クロスドキュメントメッセージング。

event-source 要素と共に用いられる、サーバー送信イベント。

4.1. HTMLDocument の拡張

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

getElementsByClassName() は class 名により要素を選択するものです。このメソッドは class 属性を持ついかなる内容、また SVG や MathML などの Document オブジェクトで使用できるよう定義されました。

innerHTML は HTML や XML を簡単にパースし、シリアライズできるものです。この属性は HTMLElement のみに存在し、また標準にはなっていませんでした。

activeElement および hasFocus はどの要素に現在フォーカスが当たっているか、また Document がフォーカスをそれぞれ行っているかを決定するものです。

getSelection() は現在のセレクションを表すオブジェクトを返すものです。

designMode および execCommand() は主に文書の編集に使われるものです。

4.2. HTMLElement の拡張

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

getElementsByClassName() は基本的に HTMLDocument のものよりスコープが狭まったものです。

innerHTML は今日の Web ブラウザでサポートされているものです。また、XML 文書として扱われる場合には、XML でも働くように定義されています。

classList は className のための便利なアクセサです。このアクセサが返すオブジェクトは、要素の class を操作するとき has() 、 add() 、 remove() 、そして toggle() といったメソッドを開きます。 a 、 area 、また link 要素も、 relList という rel 属性に関して同様の処理を行うアクセサが定義されています。

謝辞

編集者は、この文書の執筆に貢献してくれた Ben Millard、Cameron McCormack、Charles McCathieNevile、Dan Connolly、David Hasather、Henri Sivonen、James Graham、Maciej Stachowiak、Martijn Wargers、Martyn Haigh、Masataka Yakura、Michael Smith、Olivier Gendrin、Philip Taylor、Simon Pieters、そして長年 HTML 5 に関わり、Web の向上を行ってきた人に感謝しています。

参考文献