2016年11月に2年ぶりのバージョンアップを果たしたHTMLの言語仕様。その目指すところと、HTML 5.1の新機能を幾つか見てみよう。
2016年11月1日付けでW3CはHTML 5.1を勧告した。これは2014年10月28日付けで勧告されたHTML5をバージョンアップするものだ。本稿ではその主な追加機能などをざっくりと見ていくことにしよう(なお、本稿ではメジャーバージョンのみを付加する場合には「HTML5」と、マイナーバージョンを含める場合には「HTML 5.1」などと表記する。これはW3Cでの仕様における表記とも合致している)。
新機能の話をする前に「HTML5とは」について少し考えておきたい。1つは誰が仕様を策定しているか。もう1つはHTML5の位置付けだ。
前者に関していえば、現在、HTMLはWHATWG(Web Hypertext Application Technology Working Group)とW3Cという2つの組織によって仕様策定が行われている。前者が策定しているのは「HTML Living Standard」と呼ばれるもので、後者が策定しているのが「HTML5」「HTML 5.1」と名前に「5」が含まれているものだ。
WHATWGが策定するHTML Living Standardは、さまざまなユーザーからのフィードバックを受け取りながら継続的にアップデートされていく。いわば動的な仕様であり、Web技術が日々進化していくのに合わせて、HTMLの仕様もそれに沿ったものにしていこうというものだ。
これに対して、W3Cが策定するHTML 5.xはHTML Living Standardを基にしたスナップショットのようなものといえる。ただし、両者が策定するHTML仕様はほぼ同じでありながら、微妙に異なる点が双方に存在するなど、扱いが難しいところもある。最新の仕様に追従するならHTML Living Standardを見ていくのが最適かもしれない。
ちなみに、HTML 5.1の勧告はHTML5の勧告から2年が経過してからのものとなったが、次バージョンであるHTML 5.2は2017年11月の勧告が予定されており、現在はHTML 5.2のワーキングドラフトが公開されている。
ここでいう「HTML5の位置付け」とはつまり「HTML5が何を目的として策定されたものか」である。
上で見たように、(W3Cが策定する)HTML 5.x仕様自体はHTML Living Standardのスナップショットともいえるものであり、一方でHTML Living Standard自体は日々アップデートが続けられる。このことから、HTML5仕様のマイナーバージョンアップには「何かを目的としてこのようなバージョンアップが行われたもの」というよりも「期間を区切って、その期間内で組み込まれたり、変更されたり、取り除かれたりした機能をとりまとめたもの」という意味合いがこれからは強くなっていくだろう(もちろん、そこには何らかの意図や目的があるはずだが、それらの意図や目的とバージョンアップはリンクしないということだ)。
なお、こうした流れはWeb標準技術のように進化の速い技術分野ではこれから一般的になっていくだろう(例えば、ECMAScriptの仕様策定も期間を区切って、新バージョンに含める機能/含めない機能が決まるようになっている)。
では(キーフレーズとしての)HTML5は何を目的として作られたか。HTML Living Standardが意図しているのは「従来のHTML関連の仕様に含まれていた問題点を解消すると同時に、より適切にWebアプリに対応できること」だ。一方、W3CのHTML 5.1仕様の冒頭には「このバージョンでも、Webアプリ開発者の助けとなるように新たな機能が追加され、広く行われているWeb開発手法に関するリサーチを基にして新たな属性が追加され、相互運用性を高めるべく、ユーザーエージェントが従うべき規則に特に注意が払われている」(意訳*1)という記述がある。
両者に共通することをまとめると「ブラウザでのWebページ表示がこれまで通りに行えるようにする」とともに「Webアプリ開発に適した新たなHTML仕様を策定しよう」ということだ。これまでの遺産との互換性を維持する一方で、進化を続けるWebの世界、特にアプリとしてはWebの開発に適した言語とすることがいわゆる「HTML5」の目的といえる。
Webアプリ開発のためにHTML5仕様で追加されたAPIについては「HTML5 Differences from HTML4」の「5.1 New APIs」などを参照されたい(「Webアプリ開発で役立つ多くのAPIが導入されている」とある)。
*1 この部分はHTML 5.1仕様では「new features continue to be introduced to ……」のようになっている。「continue to be」の意味が一瞬分からないのだが、HTML5仕様でこの部分を見ると「new features are introduced to ……」となっている。つまり、「HTML5では新機能が追加されたけど、HTML 5.1でも引き続いて新機能が追加されたよ」ということだ(「差分をチェックするのは大事」ということだ)。
加えて、もう1つ重要な要素がある。それは「ドキュメントやWebアプリのマークアップをよりよいものとする」ことだ。この観点から、CSSなどで対処が可能なプレゼンテーション要素が仕様からは除外され、同時に「要素のカテゴリとコンテンツモデル」(ある要素がどんなカテゴリに分類されるもので、そこにどんな要素を含められるかを規定)という概念や「文書の構造を記述するための新たな要素」(<section>要素など)が導入されたといえる。
HTML5の位置付けについて見たところで、次ページではHTML 5.1で追加された機能についてざっくりと見ていこう。
Copyright© Digital Advantage Corp. All Rights Reserved.