HTML5とは
HTML5(エイチティーエムエル・ファイブ)は、
World Wide Web Consortium(W3C)がかつて策定していた
HyperText Markup Language(HTML)の5回目の大幅な改定版です。2021年1月28日に廃止され、現在はWHATWG(Web Hypertext Application Technology Working Group)が策定するHTML Living Standardに置き換えられています。
HTML5の歴史
HTML5は、
2004年にWHATWGによって定められたWeb Applications 1.0をベースとしており、W3Cの専門委員会によって2008年にドラフトが発表されました。その後、2014年に勧告、2016年にHTML 5.1、2017年にHTML 5.2が勧告されましたが、2021年1月28日に廃止されました。
HTML5の目的
HTML5の主な目的は、人間にも
コンピュータにも読解可能な、最新の
マルチメディアをサポートする言語に向上させることでした。これにより、HTMLだけでなく、XHTMLやDOMのHTML関係部分、ECMAScriptのAPIも追加されました。
HTML5の表記
バージョン表記で小数点以下を含む場合は「HTML 5.1」のようにスペースを入れ、小数点以下を含まない場合は「HTML5」のようにスペースを含めない表記法が採用されています。
HTML5の概要
HTML5は、従来のプロプライエタリな
プラグインに代わる、
ウェブアプリケーションのプラットフォームとして設計されました。
マルチメディア要素やAPIが実装され、
Adobe Flashなどのサービスが終了するきっかけにもなりました。
2008年以降に発表された多くのウェブブラウザがHTML5に対応し、特にaudio要素、video要素、canvas要素への対応が優先されました。また、WebSocketなど、当初HTML5の一部とされていたものが別の規格として策定されるようになりました。
広義のHTML5
一般的には、ウェブストレージ、WebSocket、Geolocation API、XMLHttpRequest Level 2などもHTML5に含めることが多いです。W3CのHTML5ロゴでは、以下のカテゴリがHTML5に含まれています。
セマンティックス: 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フォントも含む
HTML Living Standard
HTML Living Standardは、WHATWGが策定しているHTMLの規格で、W3Cの勧告するHTML5およびそれ以降の規格は、このHTML Living Standardを基にしています。
2019年5月28日、W3CとWHATWGは、HTML Living StandardをHTMLとDOMの唯一の標準とし、W3CはHTMLとDOMに関する標準の策定を行わないことで合意しました。これにより、HTML Living Standardが唯一の標準規格となり、そのレビュー版がW3Cの勧告候補や勧告となります。
HTML5の技術仕様
エンコーディング
文書の
文字コードには
UTF-8が推奨されています。
文字コードの指定は、meta要素のcharset属性で行います。HTTPレスポンスヘッダーでエンコード宣言が省略された場合、
UTF-8が既定となります。
文書の構造
HTML5では、従来のHTMLやXHTML規格で提供されていたスキーマは提供されません。文書構造のルールはHTML5仕様に列挙されたもののみです。
従来のHTMLとの文法的な差異
HTML5仕様は、以下の2つの構文を採用しています。
HTML構文: HTML5仕様書の中で定義される構文(狭義のHTML5)
XML構文: XMLおよびその関連仕様を参照して定められた構文
従来のHTML仕様はSGMLを基にしているため、HTML5とは文法的な差異が多くあります。
SGML宣言
従来のHTMLでは文書の先頭にSGML宣言を記述できましたが、HTML5ではHTML構文、XML構文のいずれの場合でも記述できません。
文書型宣言とDTD
HTML5では文書型宣言はモード指定のみを意味し、書式は``です。DTDは利用できず、DTDに依存する多くの機能が扱えなくなりました。例えば、HTML4以前に扱えた文字実体参照はHTML5ではほとんど扱えません。
処理命令
従来のHTMLでは文書内に処理命令を記述できましたが、HTML5のHTML構文では記述できません。XML構文であればXMLの処理命令を記述できます。
マーク区間
SGMLのマーク区間はCDATAセクションのみが利用可能です。
コメントと注釈宣言
HTML5では、コメントや注釈宣言の書き方に制限があり、従来のような自由な記述はできません。
終了区切り子の省略
従来のHTMLではタグの終了区切り子を省略できましたが、HTML5では省略できません。
空タグ
従来のHTMLで許されていた空タグはHTML5では利用できません。
簡略終了タグ
HTML5には簡略終了タグという仕組みはありません。
空要素のタグ
HTML5のHTML構文では、空要素の開始タグは`>`または`/>`で閉じることができ、終了タグを書くことはできません。XML構文では、空要素は直後に終了タグを伴う開始タグか、空要素タグで表現できます。
HTML5の要素と属性
HTML5では、nav要素、footer要素、section要素、progress要素など、特別な意味を持つ要素が追加されました。また、
マルチメディアのためのaudio要素、video要素、canvas要素も追加されました。
一方、HTML 4.01で非推奨だったfont要素やcenter要素は廃止され、acronym要素もabbr要素に一本化されました。
新しいAPI
HTML5では、ビデオやオーディオの再生、保存、オフライン機能、編集、ドラッグ&ドロップ、履歴操作、メニュー、エラー処理など、多くの新しいAPIが追加されました。
XML構文とXHTML5
当初、XML構文は「XHTML5」と呼ばれていましたが、2016年にWHATWG HTML標準でXHTMLという用語が廃止され、以降は単にXML構文と表記されています。
既存技術との競合
HTML5は
Adobe Flashの代替として登場しました。特に
AppleがFlashを批判し、HTML5を支持したことが大きな影響を与えました。アドビはFlashからHTML5への転換を推進しています。
モバイルアプリケーション
HTML5で開発された
ウェブアプリケーションは、スマートフォン向けのアプリの代替となる可能性があります。
ウェブアプリケーションは、
App Storeの制約を受けず、複数のプラットフォームに対応しやすいというメリットがあります。ネイティブアプリにもメリットがあるため、完全に置き換わっているわけではありません。
まとめ
HTML5は、ウェブ技術の発展において重要な役割を果たした規格ですが、現在はHTML Living Standardにその役割を譲っています。HTML5の知識は、ウェブ開発を行う上で今でも重要であり、特にHTML5と従来のHTMLとの文法的な差異を理解しておくことは、スムーズな開発を行う上で不可欠です。