HTML5はHTML Standard
へ呼称変更
~ HTML5プロフェッショナル認定試験は今後も有効 ~
2021年からHTML5は「HTML Standard」と呼称が変わりました。HTML Living Standardと呼ばれることもあります。しかし、ご安心を。これまで通り、HTML StandardがWebを支える標準として進化を続けます。またHTML5プロフェッショナル認定試験についても、現状、出題範囲に影響を与える部分はほとんどなく、認定の価値に変わりはありません。今後もWebエンジニアのスキル認定として有効です。
HTML5からHTML Standardと呼称が変更になったことで「HTML5は無効になるのか。HTML5は廃止か」と頭をよぎった方もいたかもしれません。確かに「5」の数字は消失し、新しい勧告が出るたびに数字をカウントアップすることはなくなりました。しかし標準としてのHTMLは存続し、また、進化も続きます。
あらためてHTML5の「5」が表すものについて、考えてみましょう。実はこの「5」には2つの側面があります。1つは端的に勧告のバージョンを表す数字、もう1つは動的なWebサイトを作成するための基盤であることの象徴です。
Webページを記述するためのHTMLは「Hyper Text Markup Language」の略で、1989年に誕生しました。1993年にHTML(HTML1.0)、1995年にHTML2.0、1997年にHTML3.2、1999年にHTML4.0へと進化を遂げてきました。ここまでは静的なWebページを記述することを想定した言語でした。
HTML5.0が勧告になるまでに、Web技術は大きく変化しました。2005年ごろから「Web 2.0」および「HTML5」のキーワードとともに、次世代インターネットの機運が高まります。当時世間を驚かせたのはブラウザだけで動的なコンテンツを扱えるGmailやGoogle Mapsでした。Webサイトは次第に動的で双方向的なものへと進化を遂げていきました。ただし「Web 2.0」は概念の象徴であり、多数の標準技術により実現されるものでした。ブラウザにより動きが異なるという課題もありました。
満を持して2014年、HTMLは動的なWebサイトを作成するための標準「HTML5.0」となりました。そのためHTML4.0以前は静的なWebページ、HTML5.0は動的なWebサイトを作成するものという象徴としての側面も持ちます。
さらに2021年からはHTMLはHTML Standardと呼ぶことになりました。これまでの延長でHTML5.3となっていましたが、勧告ごとに数字を割り振ることはやめてLiving Standardという表記になりました。数字を使わなくとも、これまでのHTMLの延長にあり、動的なWebサイトを想定した標準という本質は残るのです。
なお現在では、W3CとWHATWGが協力してHTMLを開発しています。W3Cは、CSSなどWeb技術の標準化をとりまとめている団体です。一方、WHATWGはHTMLやDOMの仕様などを取りまとめています。両者は協力しながら標準化を進めています。
繰り返しになりますが、HTMLでは数字でバージョンを管理することはやめました。HTML Standardでバージョン番号の目安になるのが最終更新日付と、半年ごとに作成されるスナップショットです。表面的には「5」という数字は消失しましたが、これまでの延長で開発が進んでいます。違うものに置き換わるわけではありません。W3CとWHATWGの協力体制も変わりません。バージョン管理の表記ルールが変わったと考えるといいでしょう。
最後に大事なことを強調しておきます。認定試験ではHTMLの標準のなかでも普遍的で重要な部分を問うようにしていますので、HTML5.0以降の5.1、5.2、LS…の細かな違いは試験では問題になりません。ご安心ください。HTML5プロフェッショナル認定試験もHTML5と同様、今後もWebエンジニアにとって有効な認定として進化してまいります。HTML Standardの中身はHTML5そのままですので、HTML5プロフェッショナル認定試験の有効性も変わりありません。
HTML5プロフェッショナル認定は今後も、HTML Standardの進展と利用実態などを踏まえ、有識者や多くの技術者との議論を通じて適宜バージョンアップなどを行い、Webエンジニアの認定としての価値を維持してまいります。
更に、HTML5の歴史、HTML Standardとの関係、これからのHTMLがどうなっていくかなどについて詳しく知りたいという方、ぜひ、続いて「ウェブとHTML5のこれから」もお読みください。
コラムのご執筆はW3C/Keioスタッフ 下農 淳司 様です。
ウェブとHTML5のこれから
バズワードとしてのhtml5
HTML5と聞いてみなさま何を想像するでしょうか?バズワード化したウェブプラットフォームの代名詞としてのHTML5ということも、ウェブページ記述言語としてのHTML5ということもあるかもしれません。WHATWGのHTML仕様書の導入部にも、これはHTML5なの?という項目で、短くいえばその通りで、モダンウェブテクノロジーを意味して広くバズワードとして利用される文脈ではHTMLのようなWHATWGで開発されている仕様書もたくさん含まれます、という記述があります。
バズワードという意味では、これからの時代はウェブアプリケーションだ!HTML5だ!というお題目で、コミュニティーイベントを2000年代から展開していた仲間と、ようやくHTML5もバズワードとして認知され広まっていく端緒につくところまで来たなと2010年頃に呑みながら語り合った日々を懐かしく思い出すこともありますが、そんなようにHTML5と聞いてウェブプラットフォームという意味のバズワードが真っ先に頭に浮かんでくる方が多いのではないでしょうか。
HTML5誕生と開発の経緯
ウェブブラウザで実装されている標準仕様はさまざまな標準化団体により策定されています。例えば、HTTPなどの主にネットワークレイヤーを策定しているIETF、HTMLやDOMなどを策定しているWHATWG、CSSやEPUBなどを策定しているW3C、ECMAScriptを策定しているEcmaなどがあります。
W3CはWorld Wide Web Consortiumの略称で、ウェブの機構やHTMLを発案したTim Berners-Leeにより1994年に設立されました。HTML4が勧告仕様になった後、2000年頃からDOMをはじめとしたJavaScriptの機能やさまざまなデータ形式を活用して、インタラクティブに動作するウェブサイトの開発と、より高度な機能を実現するための標準仕様の策定の機運が高まりました。2004年に公開されたGmailやその翌2005年に公開されたGoogle Mapsなどにびっくりされた方もいらっしゃったのではないでしょうか。
W3Cでは新しい規格策定に向けた初期段階として様々なワークショップを開催していますが、この領域についても、Gmailなどの新しいサービスにどのように対応していくかに関してW3C Workshop on Web Applications and Compound Documentsが開催され、OperaとMozillaによるウェブアプリケーションの実現に向けた提案が提出されました。しかしながら、HTMLと並列してアプリケーションよりも文章構造などのセマンティクスを重視したXMLベースのXHTMLという仕様も当時はよく利用されており、W3CではHTMLについてもXMLを基盤とした形で開発することを会員投票で決断しました。そんな中、ワークショップでの議論の2日後に、Apple、Mozilla、Operaの3社によってWHATWGが設立されました。
設立当初はWHATWGはWeb Hypertext Application Technology Working Groupという名称の略称であるとされていたように、ウェブでアプリケーションのようなものを実現するための技術開発を目標とする立場でHTML5という仕様の策定作業を進めていきます。このHTML5仕様はバージョン番号をつけて公表することを取りやめるという仕様策定プロセスの変更により、のちにいまの名称のHTML仕様(Living Standard)に変更されて策定が継続されています(現在の仕様書ページのタイトルは「HTML Standard」となりました)。仕様の中身についての議論が進んだ2007年、WHATWGのHTML5仕様を元にW3Cで勧告仕様化するための新しいHTMLワーキンググループの設立が提案・承認され、勧告仕様へ向けた作業が開始しました。WHATWGのプロセスではロイヤリティフリー特許方針が欠けているなどでMicrosoftが参加しないなどの件もありましたが、数年間は両団体共同での開発が順調に続くことになります。その後、WHATWGで2011年に、あるタイミングで仕様書をまとめて問題点を解決して標準として出すのではなく、ブラウザ開発者やウェブ開発者が参照すべき仕様の最新版は常に最新のバージョンとするというLiving Standardの概念に基づいて開発することとしたことや、相互に議論は行いつつも、それぞれの参加者の事情や仕様書をまとめるプロセスの差異などもあり独自の項目が追加されたりして、細かい点での齟齬が増えていきました。Living StandardのHTML仕様は2018年7月から半年に一度Review Draftという形でのスナップショットが始まるまでは最新版だけでしたが、勧告仕様として標準化を目指していたW3CではHTML5の名前で2014年10月28日にHTML5勧告仕様が公開され、その後もHTML5.1などという形で勧告仕様化が継続していきました。
その後、2017年にWHATWGにて特許ポリシーが整備されたなどの状況の変化もあり、2019年5月にWHATWGとW3Cの間で覚書が締結され、HTML、DOMや、そこに含まれるようになったWebStorage、WebSocketなどの仕様について、WHATWGにおいて協力しながら開発し、WHATWGでのスナップショットをW3Cにて毎年1回勧告仕様として公開することとなりました。この覚書は定期的に更新され、最近の更新でも追加でいくつかの仕様が移行されています。
HTMLの今後
WHATWGとW3Cの覚書が締結されたいま、HTMLの現状はどうなっていて、今後どのようになっていくのでしょうか。これについては、標準仕様のライフサイクルを振り返りながら見る必要があります。ある標準仕様について新しいバージョンの作業が始まり、正式版の勧告として公表された時に、前のバージョンがどう扱われるかということには大きく2種類が存在します。ひとつはCSS2.1やのちに多数に分割されたモジュールのように新しいバージョンが出てもそのまま過去のバージョンの勧告仕様として維持されるもの、もう一つがよく「廃止」として表現されることもありますがSuperseded Recommendationとして後継の新しい仕様に置き換えられるものです。後者はソフトウェアの最新版をいつも使いましょう!と近いものがありますが、これには2018年に”Superseded”となったhtml 4.01なども含まれます。(なお、ISOなどのように定期的に既存の勧告仕様をそのまま維持するかどうかの議決を取って、規定の賛成票が得られなければ勧告状態から降ろすというプロセスを持っている標準団体もあったりはします。) W3CのHTML5仕様(厳密には最新だった5.3)は、覚書に基づいてWHATWGのHTML仕様のスナップショットがHTML仕様として勧告化されると同時に5.3を”Superseded”と、更新版のHTMLに置き換えられました。これは標準化プロセスに詳しくない方からすると、一見するとHTML5が廃止されたようにも見えるかもしれませんが、WHATWGでHTML5がLiving StandardのHTML仕様に改名されたのと同じく、バージョン番号がない新しいHTML仕様で置き換えられたということで、HTML5でなくHTML仕様として継続した仕様策定・公開が行われていくでしょう。W3Cで仕様書を公開する場所でもこれまでのhtml5などでなくhtmlという名前が利用されるようになりました。今回はバージョン付け自体が廃止されたという、HTML 4.01からHTML 5へ、などのような通常行われるバージョンが上がった名前がついた仕様が公開されたために古いバージョンを”Superseded”とするというアップデートと異なるために、一見しただけでは奇妙な措置に見えるかもしれません。
WHATWGでは全ての仕様でバージョン番号を外してLiving Standardとなっていますが、W3Cでは同じようにバージョン番号やLevelという形で番号を持った仕様がCSSをはじめとして沢山あります。これらについても、W3Cの勧告標準策定プロセスにLiving Standardと同様の機構が入り、徐々に勧告化された仕様の更新に適用されつつありますので、HTML5からHTMLに改名されたのと同様に番号が消えていく仕様が増えていく未来は近いかもしれませんが、同じ仕様を継続して更新していっているという点では変わりません。
ブラウザで実装されているHTMLとは?
WHATWGとW3Cの双方にHTMLの仕様があった時代、では実際にどの仕様がブラウザで実装されているの?という質問がよくありましたが、すっぱりと答えることはできない非常に難しい質問です。双方の団体である機能を仕様書に追加する際に満たさなければならない条件が異なり、たとえばWHATWGでは機能の追加の条件として、最低2件のブラウザ開発グループ(実際にはブラウザエンジンなのでChromiumベースのChromeとEdgeは1件となります)による実装「予定」が必要とされ、またプロトタイプの実装が存在することも推奨されています。また、W3Cでは水平レビューと呼ばれるアクセシビリティーなどの面で仕様を検証して足りない機能を提案する活動も行われているため、そういった方面から提案の機能が追加されることもあります。なお、W3Cでは、勧告仕様となるためには仕様書のそれぞれの項目について最低2つの実装(もしくは実装可能であるという証明)が必要ですが、草案(WD: Working Draft)段階では特にそのような制限はないため、仕様策定の途中段階ではさまざまな提案が入っていることがあります。
そんなこんなで、あるブラウザがこの機能についてはWHATWGの仕様書の、別な機能についてはW3Cの仕様書にある定義を実装しているという事例も多少存在しています。有名なものの一つとして、rubyに関するrbとrtcというエレメントはWHATWGのHTML Living StandardではObsoleteとされていますが、Gecko (Firefox)ではW3Cの仕様をほぼ完全に実装、Chromium (Chrome)でもrbの一部機能が実装されているなどがあります。なお、このruby関連については、WHATWGにて復活させる議論が行われており、Living Standardのプロセスの中で将来的に復活することが期待されています。
このように、ある時点での仕様の全てがすべてのブラウザエンジンで実装されているという状況にはならないこともあり、実装の正しさを確認するためのテスト(wpt: web-platform-tests)やその結果、またMDNのBrowser Compat Dataのような実装状況のデータなども提供しています。これらは、ある意味、HTML 5であろうがLiving StandardのHTMLであろうが、どっちが正統であろうがどうでもいいけど、実際にブラウザで利用できる機能セットは何?というウェブ開発者の魂の叫びがもたらしたものなのかもしれません。
WHATWGとW3Cの関係 - これからのHTMLとCSS仕様開発について
では、これから、CSSがW3Cで、HTMLやDOMがWHATWGでと別れて、どのように協調して仕様の開発が行われていくのか、という点を気にされる方々もいらっしゃると思います。
簡単に言うと、別団体ににはなっているけれども実際には共同でやっているようなもの、というような状況です。覚書にはW3Cで行っているセキュリティー・プライバシー・アクセシビリティー・国際化の各領域についての水平レビューや技術諮問委員会(TAG)による技術アドバイスをWHATWGの仕様書に対して提供できると書かれていますが、実際にはW3CのGitHubで運用されているこのような各種レビュー向けのシステムがWHATWGのGitHubをもカバーする形で稼働しており、水平レビューグループがWHATWGの場で仕様書の議論を行っていますし、HTMLなどを拡張する新しい仕様のインキュベーションについてはW3CのWICGというウェブプラットフォームの機能のインキュベーションを行うグループでも進められています。前者についてはW3CのHTML5にしかなかった機能やレビューによる修正をLiving StandardのHTMLで復活させる議論が行われていたり、後者についてもUserAgentの代替としてのUA-CHや、最近ウェブ広告向けの新技術として話題のFLoCなどの議論もあるため、キーワードとして耳にした方もいらっしゃるかもしれません。このように、いわゆるW3Cの”HTML5”が完全にすっぱりなくなってしまったわけではなく、”HTML 5”も含めた同じ技術基盤に対して関係者みんなで継続して改善していっているというのがこれからのHTMLやCSSなどのウェブ基盤技術開発の状況になります。
また、最近話題になったHTTP/3 (QUIC)のように、ウェブブラウザを構成する技術はWHATWGとW3Cが策定する標準だけではありませんし、ビデオ会議などのアプリケーションに利用されているWebRTCはIETFのWebTransport WG・WebRTC Ingest Signaling over HTTPS WGと、W3CのWebRTC WGの共同開発によるものでIETF・W3C双方で標準仕様が勧告化されました。このように複数の標準化団体が、それぞれの標準化プロセス上の差異はありながら、協調して齟齬がないウェブプラットフォームを維持・発展させていくという活動が継続して行われています。
ウェブ開発者としての仕様のアップデートに対する対応
では、ウェブプラットフォームを利用するウェブ開発者として、このように開発・更新されていく仕様、そしてChromeやFirefoxのように毎月新しいバージョンが新機能とともにリリースされるブラウザの更新にどのように対応していけばいいのでしょうか。
公開されている仕様書は各標準化団体の仕様策定プロセスに従って改訂されており、またブラウザベンダーも仕様策定に参加しながらブラウザへの実装を行うという並行作業を行っています。先にあげたようにWHATWGのLiving Standardでは、新しい仕様項目については2つ以上のブラウザベンダーからの実装予定のコメントと1つ以上のプロトタイプ実装が必要とされ、長年議論が継続されている仕様項目については2つ以上の実装が必要とされています。逆に言うと、Living StandardのHTMLに掲載されていても全てのブラウザで使えるわけではないとも言えます。そして、W3Cでは勧告仕様となるまでに、草案(WD: Working Draft)、勧告候補(CR: Candidate Recommendation)、勧告案(PR: Proposed Recommendation)といった段階を踏み、各段階での移行条件を満たしながら勧告への仕様開発が行われています。勧告案へ移行する際に仕様書の全ての項目について最低2つの実装が必要とされているため、すでに世間で広く使われているにもかかわらず、とある項目の実装が進まないので仕様書が数年といった長期間にわたり勧告候補の段階にとどまっている仕様書もあります。その中で、W3Cの仕様策定プロセスにも最近になって”candidate change”というLiving Standardに似た更新の手続きが追加され、CSSなどで利用され始めており、より高速な勧告仕様への新機能の追加が実現され始めています。
このように仕様自体も、どの項目がブラウザで実装されて利用可能かという点も変化し続けます。CSS flexboxのような全く新しい機能のパッケージが導入されるのは年に数度あるかという程度ですが、どのブラウザでどの項目が利用可能かという細かい点については、実装の正しさを確認するためのwptやその結果、またMDNのBrowser Compat Dataやcaiuseといった実装状況のまとめが参考になります。CSSについては、毎年年末にCSS Snapshotという形でその時点での実装状況も考慮した安定しているモジュール一覧のまとめも出版されますので、そちらも参照するといいかもしれません。