HTML5
|
| |
|
| |
| 拡張子 |
(HTML) .html .htm (XML構文) .xhtml .xht .xml |
|---|---|
| MIMEタイプ |
(HTML) text/html (XML構文) application/xhtml+xml application/xml |
| タイプコード |
TEXT Hyper Text Markup Language |
| UTI | public.html |
| 開発者 | World Wide Web Consortium, WHATWG |
| 種別 | マークアップ言語 |
| HTML |
|---|
HTML5(エイチティーエムエル・ファイブ)は、World Wide Web Consortium(W3C)がかつて策定していたHyperText Markup Languageの5回目に当たる大幅な改定版であり、2021年1月28日に廃止された。 現在はHTML Living Standardによって置き換えられている[1]。
Web Hypertext Application Technology Working Group(WHATWG)によって2004年に定められたWeb Applications 1.0にWeb Forms 2.0を取り入れたものをベースとしている。W3Cの専門委員会により2008年1月22日にドラフト(草案)が発表され、2014年10月28日に HTML5 が勧告され[2]、2016年11月1日に HTML 5.1 が[3]、2017年12月14日に HTML 5.2 が勧告されたのち[4]、2021年1月28日に廃止された。WHATWGによって策定されているHTML Living Standardが有効な後継規格として案内されている[5]。
改訂の主要目的のひとつとして、人間にも読解可能で、尚且つ、コンピュータやデバイス(ウェブブラウザ、構文解析器など)にも矛盾せず読解されるとともに最新のマルチメディアをサポートする言語に向上することである。HTML5ではHTMLだけでなくXHTML、DOMのHTML関係の部分、ECMAScriptのAPIも追加になっている。
表記は、「HTML 5.1」のようにバージョン表記で小数点以下を含める場合はHTMLと5.1の間にスペースを入れ、「HTML5」のように小数点以下を含めない場合はHTMLと5の間にスペースを含めない表記法が採用されている[6]。過去のバージョンについても、「HTML4」や「HTML 4.0」という表記法が使われている。
概要
[編集]HTML5は、プロプライエタリなプラグインとして提供されているリッチインターネットアプリケーションのプラットフォームを置き換えることを標榜しており、ウェブアプリケーションのプラットフォームとしての機能やマルチメディア要素が実装されている[7][8]。このため、Adobe Flashなどはサービスを終了することとなった(後述)。
2008年以降に発表されたウェブブラウザの多くはHTML5に対応している。Google Chrome 3.0以降、Safari 3.1以降、Firefox 3.5以降、Opera 10.5、Internet Explorer 9などであり主にaudio要素・video要素・canvas要素への対応が優先して行われた。またWebSocketなど、当初HTML5の一部とされていたものの切り離され別の規格として策定作業が進められているものがある。
広義のHTML5
[編集]厳密には別仕様書として分離されているものの、一般的には、ウェブストレージ・WebSocket・Geolocation API・XMLHttpRequest Level 2などもHTML5に含める場合が多い。
W3CのHTML5 Logoでは以下のカテゴリをHTML5に含めている[9]。
- セマンティックス - HTML5の新タグ、RDFa、マイクロデータ、マイクロフォーマット
- オフラインとストレージ - App Cache、Web Storage、Indexed Database API、HTML5ファイルAPI
- デバイスアクセス - Geolocation API、マイク・カメラ、アドレス帳・カレンダー、端末の向き
- 接続性 - WebSocket、サーバー送信イベント (SSE)
- マルチメディア -
audio要素、video要素 - 3D、グラフィックス、エフェクト - SVG、
canvas要素、WebGL、CSS3 3D - パフォーマンスと統合 - Web Worker、XMLHttpRequest Level 2
- CSS3 - Webフォントも含む
W3C
[編集]| 規格 | 初版草案[注 1] | 最終草案[注 2] | 勧告候補[注 3] | 勧告案[注 4] | 勧告[注 5] |
|---|---|---|---|---|---|
| HTML 5.0 | 2008年1月22日 | 2011年5月25日 | 2014年6月17日[注 6] | 2014年9月16日 | 2014年10月28日 |
| HTML 5.1 | 2012年12月17日 | 2016年6月2日[注 7] | 2016年6月21日 | 2016年9月15日 | 2016年11月1日 |
| HTML 5.1 2nd Edition | 2016年11月1日[注 8] | 2017年6月20日 | 2017年8月3日 | 2017年10月3日 | |
| HTML 5.2 | 2016年8月18日 | 2017年7月18日[注 7] | 2017年8月8日 | 2017年11月02日 | 2017年12月14日[10] |
| HTML 5.3 | 2017年12月14日[11][12][13] |
HTML Living Standard
[編集]HTML Living Standardは、WHATWGが策定しているHTMLの規格である。W3Cの勧告するHTML5およびそれ以降(HTML 5.1など)は、HTML Living Standardを基にしている。
ただし、2019年5月28日に発表されたW3CとWHATWGの合意[14]以前においては、「W3C側で変更がなされており、両者の仕様には差異が生じている[15][16]」という状況が続いていた。WHATWGはウェブブラウザの開発元により結成されており、この頃においてはHTML Living Standardの方がよく参照されていた[17][18]。
2019年5月28日、W3CとWHATWGは、「HTML Living StandardをHTMLとDOMの唯一の標準とし、W3Cは今後HTMLとDOMに関する標準の策定を行わない」旨合意したことを発表した[14]。以降はHTML Living Standardが唯一の標準規格となり、ある時点におけるHTML Living StandardのレビュードラフトがそのままW3Cの勧告候補や勧告となる。2021年1月28日、WHATWGにあるHTML Review DraftがW3Cによって勧告されたことによってHTML5は廃止された[19]。このため、2021年5月現在、有効なHTMLの標準規格はHTML Living Standardとなっている[20]。
技術仕様
[編集]エンコーディング
[編集]文書の文字コードにはUTF-8を推奨している。文書の文字コードの指定は、meta要素におけるcharset属性で指定する。これとHTTPレスポンスヘッダーのcontent-typeでエンコード宣言が省略された場合はUTF-8が既定となる。またcharset属性を含めたmeta要素は文書先頭から1024バイト以内に記載する必要がある[21]。
文書の構造
[編集]従来のHTMLやXHTML規格は、仕様に書かれた文書構造のルールだけではなく、妥当性検証のためのDTD(およびそのほかのスキーマ)を提供していた。一方、HTML5仕様ではスキーマは提供されない。文書構造のために提供されるのはHTML5仕様に列挙されている各種ルールのみである。
従来のHTMLとの文法の差異
[編集]HTML5仕様は以下のふたつの構文を採用している。
- HTML5仕様書の中で定義されるHTML構文 → 狭義のHTML5
- HTML5仕様書からXMLおよびその関連仕様を参照して定めているXML構文
一方、従来のHTML仕様はSGMLをその構文に採用している。SGMLおよびその関連仕様を参照しており、規格ごとに以下のような差異もある。
- SGML規格本体のみを参照しているもの → HTML 4.0以前
- SGML規格本体および付属書J、付属書Kを参照しているもの → HTML 4.01や、ISO/IEC 15445など
主にこのような違いのために、HTML5と従来のHTMLとの間には基本的な文法の差異が多い。以下にその代表的な例を挙げる。
SGML宣言
[編集]SGMLを採用していた従来のHTML規格においては、HTML文書は本質的にSGML文書であったため、HTML規格がそれぞれ提供するSGML宣言を文書の先頭に記述することが仕様上許されていた。一方HTML5の仕様では、HTML構文、XML構文のいずれを用いた場合でも、文書中にSGML宣言を記述することは許されていない。
文書型宣言およびDTDの扱い
[編集]HTML5仕様においては、文書型宣言はもはやモード指定以外の意味をなさず、その書式は “<!DOCTYPE html>” である。
HTML構文では文書型宣言は必須である。XML構文では、HTML5で導入される新しい機能を利用する場合は必須、それ以外の場合は文書型宣言は必須ではない。
従来のHTML規格で提供されていたDTDがなくなり、また文書型宣言の書式が決まっているため、HTML5ではDTDが利用できず、DTDに依存する多くの機能のほとんどが扱えなくなる。例としては、HTML4以前に扱えていた文字実体参照のほとんどがHTML5では扱えなくなる(XMLは文書内部にDTDを書くこともできるが、上記の文書型宣言の決まりを無視する結果となるため、HTML5の仕様の範疇ではない)。
処理命令
[編集]SGMLを採用していた従来のHTML規格では、文書内に処理命令を記述することができた。実際に用いられている例として、DTDを他の処理系で利用するための「architectural support declaration」が存在する (ISO/IEC 15445)。
一方、HTML5仕様におけるHTML構文ではSGMLの処理命令は記述できず、同様の機能も利用できない。XML構文であればXMLの処理命令は書ける。
マーク区間
[編集]SGMLを採用していた従来のHTML規格では、マーク区間 (marked section) と呼ばれる仕組みが利用できた。以下に例を挙げる。