このウェブサイトはご利用の端末での閲覧に対応していません。
This website does not support your device.

HTML Living standard

記事Nov.13th,2019
Aug.21st,2020
HTML Living standardとは何か?HTML5との違い、WHATWGによって策定されている現在のHTML技術仕様の標準規格であるHTML Living standardについて解説しています。

HTML Living standardとは?

“HTML Living standard”とは?

HTML Living standard”はウェブ上の文書を記述するためのマークアップ言語であるHTMLの技術仕様の標準規格です。WHATWGによって策定されているため、“WHATWG HTML”とも呼ばれます。

従来HTMLの仕様はHTMLの5回目の改訂版であるHTML5とそれに続くHTML5.1HTML5.2まではW3Cよって策定されてきました。“HTML Living standard”はこれに代わる標準規格です。

W3CによるHTMLは“作業草稿”、“勧告候補”、“勧告案”、“勧告”と段階を踏んで“完成”された仕様を策定することを目指していましたが、WHATWGによる“HTML Living standard”は日々少しずつ継続的に更新され続ける“Living(生きている)”な仕様を目指しています。

2つの“HTML”

長らくHTMLの仕様はW3Cによって検討・標準化が進められてきましたが、HTML4.01を勧告した後、W3CはHTMLよりもHTMLに代わる次世代のマークアップ言語としてXHTMLの標準化に取り組んでいました。

HTMLの仕様の改訂に消極的なW3Cの方針やW3Cのウェブ制作者のニーズに対する軽視に不満を持ったApple、Mozilla、Operaによって2004年にWHATWGが立ち上げられると、WHATWGが独自に次世代HTMLの在り方を検討するようになります。主要なブラウザのメーカーからなるWHATWGは徐々に影響を強めていき、XHTMLがあまり普及しなかったこともあり、W3Cは2007年にHTMLの改訂を目的としたワーキンググループを立ち上げ、WHATWGが策定してきたウェブアプリケーションの技術仕様であるWeb Applications 1.0やHTMLのフォーム要素を発展させた技術仕様のWeb Forms 2.0をベースにしてHTML5となるHTMLの改訂版を策定するようになります。

しかし、HTML5の仕様策定において一時協力関係になったW3CとWHATWGですが、“完成”されてバージョン管理された仕様を策定したいW3Cと常に継続的に更新していきたいWHATWGとで方針に食い違いがありました。2011年にWHATWGが策定していた仕様は“HTML Living standard”と名付けられ、翌年にはWHATWGとW3Cは共同作業をやめてそれぞれで仕様を策定していくようになります。

その後W3Cは2014年にHTML5を勧告、続いてHTML5.1HTML5.2と改訂版を勧告していきます。そのためW3Cが策定するHTML5/5.1/5.2とWHATWGが策定する“HTML Living standard”の2つの“標準”が併存する状態なります。MicrosoftのInternet ExplorerはW3Cの仕様に沿って、GoogleのChrome、MozillaのFirefox、AppleのSafariはWHATWGの仕様に沿って開発されるという状況になりました。W3Cの仕様はWHATWGの仕様をベースにしているため大きな違いこそ少ないものの細部では異なり、2つの仕様の存在は混乱のもととなっていました。

なお、最初こそW3CのHTML5が新たな標準として受け入れられましたが、次第に主要なブラウザのデベロッパーがすべて参加するWHATWGによる“HTML Living standard”が“標準”と見做されるようになります。

HTMLの標準へ

2019年5月になってようやくW3CとWHATWGは“HTML Living standard”をHTML技術仕様の唯一の標準規格とすると合意しました。W3CはHTML5.2に続く仕様であるHTML5.3を策定していましたがこれを取りやめ、今後はWHATWGが主体となってHTML技術仕様を策定・更新し、これにW3Cが協力していくことになりました。

前述の通り、今後は“HTML Living standard”がHTML5/5.1/5.2に代わるHTML技術仕様の標準規格となります。

なお、WHATWGの仕様書の冒頭にもあるように、“HTML5”はHTMLの標準化がWHATWGへ移った後も“HTML Living standard”を含めたウェブ技術を表す言葉として使用されており、広い意味では引き続き“HTML5”が現代のHTMLの標準です。

HTML 5.2とHTML Living standardの違い

追加された要素

以下の要素はHTML5.2では定義されていませんが、“HTML Living standard”では定義されています。

要素 用途
<hgroup> 見出しのグループ化
<slot> スロット

変更された要素

以下の要素は“HTML Living standard”で変更された点、もしくはHTML5.2とは異なる点があります。

要素 用途
<cite> 創作物のタイトル以外を含むことはできず、作者名を含めることはできなくなりました
<link> rel”属性の値が“body-ok”な値のみである場合、もしくはitemprop”属性が指定されている場合はbody”要素内に配置できます
<meta> itemprop”属性を指定した場合はbody”要素内に配置できます
<style> body”要素内には配置できません

廃止された要素

以下の要素は“HTML Living standard”では廃止されました。

要素 用途
<rb> 操作メニューの項目を表す
<rtc> 操作メニューの項目を表す

追加された属性

以下の属性はHTML5.2では定義されていませんが、“HTML Living standard”では定義されています。

要素 属性 用途
<a> ping="" pingの送信先を指定する
<area> ping="" pingの送信先を指定する
<body> onmessageerror="" 文書がAPIから解読できないメッセージを受信したときに実行するスクリプト
<form> rel="" 現在の文書から見たリンク先との関係
<iframe> allow="" 利用できるブラウザの機能を指定する
<img> decoding="" 画像のデコード方式を指定する
loading="" 画像の読み込みのタイミングを指定する
<link> as="" 先行して読み込む外部リソースの利用先を指定する
color="" Safariのページピンアイコンの色を指定する
disabled="" 外部スタイルシートへのリンクを無効化する
imagesizes="" 画像を表示するサイズ
imagesrcset="" 使用可能な画像ファイルのセット
integrity="" 外部リソースの整合性を確認
<script> integrity="" 外部スクリプトの整合性を確認する
nomodule="" モジュールスクリプトに対応する環境でスクリプトを無効化する
referrerpolicy="" リファラーポリシーを指定する
<video> playsinline="" インラインで再生する

以下の属性は一度廃止されましたがHTML Living standard”で再び定義されています。

要素 属性 用途
<object> usemap="" クライアントサイドイメージマップとの関連付け

以下のグローバル属性は“HTML Living standard”で追加されました。

属性 説明
autocapitalize="" 先頭の文字を大文字化するかを指定する
enterkeyhint="" ソフトウェアキーボードの[Enter]キーのアイコンを指定する
is="" カスタム要素と関連付ける
itemid="" 要素の内容のマイクロデータのグローバルな識別子を示す
itemprop="" 要素の内容のマイクロデータのプロパティ名を指定する
itemref="" 要素の外にあるマイクロデータと関連付ける
itemscope="" 要素の内容にマイクロデータが含まれることを示す
itemtype="" 要素の内容のマイクロデータのプロパティ名の定義を示す
slot="" スロットと関連付ける

以下の属性は“HTML Living standard”ではすべての要素に指定できるグローバル属性として定義されています。

属性 説明
autofocus="" 自動フォーカスの可否を指定する
inputmode="" 入力する時のソフトウェアキーボードの種類を指定する
nonce="" “Content Security Policy”のワンタイムトークンを指定する

以下のイベントハンドラ属性HTML5.2では定義されていませんが、“HTML Living standard”では定義されています。

属性 用途
onformdata="" フォームのエントリリストを生成した時に実行されるスクリプト
onmessageerror="" 文書がAPIから解読できないメッセージを受信したときに実行するスクリプト
onsecuritypolicyviolation="" コンテンツセキュリティポリシーに違反した時に実行されるスクリプト
onslotchange="" スロットが含まれるノードが変更された時に実行されるスクリプト
onwebkitanimationend="" CSSアニメーションが終了した時に実行されるスクリプト
onwebkitanimationinteration="" CSSアニメーションが繰り返された時に実行されるスクリプト
onwebkitanimationstart="" CSSアニメーションが開始した時に実行されるスクリプト
onwebkittransitionend="" CSSトランジションが終了した時に実行されるスクリプト

変更された属性

以下の属性は“HTML Living standard”で変更された点、もしくはHTML5.2とは異なる点があります。

要素 属性 用途
<a> rel="" 属性値として“opener”を指定できるようになりました
<area> rel="" 属性値として“opener”を指定できるようになりました
<iframe> sandbox="" 属性値として“allow-modals”、“allow-orientation-lock”、“allow-popups-to-escape-sandbox”、“allow-top-navigation-by-user-activation”、“allow-downloads”を指定できるようになりました
<link> rel="" 属性値として“dns-prefetch”、“modulepreload”、“pingback”、“preconnect”、“preload”、“prerender”を指定できるようになりました
<meta> charset="" 属性値は“utf-8(UTF-8)”であるべきとされています
http-equiv="" 属性値としてx-ua-compatiblecontent-security-policyを指定できるようになりました
name="" 属性値としてtheme-colorを指定できるようになりました

以下のグローバル属性HTML5.2とは異なる点があります。

属性 用途
accesskey="" 属性値として複数の値を指定できます

廃止された属性

以下の属性は“HTML Living standard”では廃止されました。

要素 属性 用途
<a> rev="" リンク先から見た現在の文書との関係
<area> hreflang="" リンク先の記述言語
type="" リンク先のMIMEタイプ
<img> longdesc="" 画像を説明した文書のURL
<link> rev="" リンク先から見た現在の文書との関係
<object> typemustmatch="" 埋め込まれる外部リソースがtype”属性で指定したMIMEタイプと一致する場合にのみ埋め込みを許可
<script> charset="" 外部スクリプトの文字エンコーディング
<style> type="" スタイルシートの記述言語
<table> border="" 表の外枠の太さ

以下のイベントハンドラ属性は“HTML Living standard”では廃止されています。

属性 用途
ondragexit="" ドラッグしたアイテムが要素から出た時に実行されるスクリプト
onloadend="" メディアのデータの読み込みが終わる時に実行されるスクリプト
onshow="" 操作メニューを表示した時に実行されるスクリプト

その他

以下の要素はHTML5.2では廃止されていますが、“HTML Living standard”では定義されています。

要素 用途
<menu> 操作メニュー

以下のイベントハンドラ属性HTML5.2では廃止されていますが、“HTML Living standard”では定義されています。

属性 用途
oncontextmenu="" コンテキストメニューを表示した時に実行されるスクリプト
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
HTMLタグ辞書
一番上へ
トップにもどる
シェアする
シェアする
Facebookでシェアする
ツイート
Google+でシェア
Pocket
はてなブックマーク