(メモ)令和初のHTML Working Groupが始動した

HTMLについて*1高度な政治的レベルでWHATWG HTMLに一本化されるという、今年4月のエントリーで書いてあることがほぼそのままスライドして本決まりになったわけですけれども、そのときにはHTML Working Groupを立ち上げ予定となっていました。そのWorking Groupについて、今月の6日付けでHTML Working Group Charterが承認されたみたいで、あわせてHTML Working Groupのウェブページもできあがっているみたいです。ページにミッションとして

The mission of the HTML Working Group is to give input to and bring the WHATWG HTML and DOM Review Drafts to W3C Recommendations.

とあって、まあとてもシンプルですね、はい。

さて、一本化されるのはわかったけれども、じゃあ技術的にどうなのか?というところは気になるわけで。両者の違いはパッと思いつく限りで

W3C HTML 5.2 WHATWG HTML
hgroup要素 一切の言及なし(廃止されたHTML 5.0では廃止と明言) あり
アウトラインアルゴリズムへの警告 あり なし
「画像代替テキスト要件」*2のセクション数 23 15
img要素のlongdesc属性 矛盾した記述(§4.7.5§11.2 廃止(適合しない)
rb要素、rtc要素 あり 廃止(適合しない)
HTMLAppletElementインターフェイス あり(警告付きで) なし(削除済み)

というような違いがあるわけで(他にも何かあったかもしれないけれども、大きく「あるかないか」レベルだとこんな感じのはず)。WHATWG HTMLを鵜呑みにすればよい箇所もあるだろうし、W3C HTMLが取り込まれた方がいいだろう箇所もあるだろうし、もはや何とも言えないというところもあるだろうし…と、(ここでは書き漏らしているだろう細かい差異もひっくるめると、)一口では語りきれないものがあるのかな…と。どういうふうにW3C側が舵取りするつもりなのかはわかりませんけれども、これからの議論を注視していく必要はありそうです。

ちなみに、HTML Working GroupのChairsとしては、Theresa O'Connor (Apple, Inc.)とLéonie Watson (TetraLogical)が務めるとのこと。TheresaはHTML 5.0の時のEditorとして名を連ねていました。Léonieは旧Web Platform Working Groupのco-chairsに引き続きといったところでしょうか。というか、LéonieはTPGやめてたんですね…。

*1:まあ、DOMもそうなんですけれども、このエントリーではHTMLのみを扱うことにします。そもそもDOMを語れる知識なんて持ち合わせていないので。

*2:WHATWG HTML訳で言うところの4.8.4.4 画像に対して代替として動作するテキストを提供に対する要件のこと

(メモ)DOCTYPEスイッチあるいはウェブ標準としてのQuirks Modeの覚え書き

HTML4世代にとっては何を今更な話題かもですが、とあるQiitaのエントリーを見て*1、最近の人にはきっとわからない話題なんだなということでおさらいのようなエントリーを書いてみようかなと。

導入された当初ではブラウザー独自の挙動でしたが、現在では過去との互換性のために、WHATWG Quirks Modeというウェブ標準でまとめられ定義されたものになっています。

概要を振り返っておくと、2000年代あたりの古いウェブブラウザーで導入されたこの仕組みは、それよりも更に古い歴史的なブラウザーのクセ(つまるところ、仕様をうまく実装できていなかったbuggyな挙動)を模倣するような動作モードを導入しました。これにより、古いブラウザーが、ウェブ標準に忠実に作成されたウェブページと、歴史的なブラウザーのクセにあわせて作成されたウェブページとをうまく切り分けてレンダリングしようとした――今日的にはDOCTYPEの記述で切り分けるのは失敗だったと言えるものの――というものです。

大雑把な分類としては、DOCTYPE宣言がないあるいはHTML4よりも前のDOCTYPE宣言のあるHTML文書を奇癖モード(quirks mode、歴史的には互換モードとも呼ばれていた)、HTML5で定められたDOCTYPE宣言のような特定のDOCTYPE宣言があるHTML文書を無奇癖モード(no-quirks mode、歴史的には標準モード)、XHTML 1.0 TransitionalのDOCTYPE宣言についてはそれらの中間の限定奇癖モード(limited-quirks mode、歴史的にはほぼ標準モード)となります。奇癖モードの大まかな挙動はMozilla Quirks Mode Behavior | MDNあたりが参考になるでしょう。

長々と書きましたが、HTML標準はWHATWG HTML以外に存在せず*2W3C HTML5とそれより前のHTML仕様は全て廃止されてしまったために、これから新しく作るHTML文書のDOCTYPE宣言は<!DOCTYPE html>*3以外にあり得ません。また誤ってDOCTYPE宣言を省略してしまうと、前述のように文書が奇癖モードとして解釈されるので、思わぬところで不都合が起こることがあります。

こういった歴史的事情があるので*4、文書の「最初に」<!DOCTYPE html>を必ず書きましょうということになっているわけです。

*1:まあ一言で言ってしまえば「酷い」内容なのですが、晒してしまうのもそれはそれでかわいそうなので止めておきます

*2:厳密には、現時点ではW3C HTML 5.1や5.2が存在しますが、これも将来廃止予定です

*3:大文字・小文字は区別しません

*4:いちいち説明するのが面倒とも言う