HTML Living Standardに対応した構文チェッカーと更新内容の確認方法

HHTML5が廃止になり、HTML Living Standardが標準仕様になってから仕様変更の情報が追いづらくなったと感じます。
仕様変更のチェックは、情報収集の際たまたま見かけるか、たまに既存要素の内容変更をまとめてくれた記事があるか検索するくらい。
致命的な文法崩れを防ぐためにW3Cバリデーター(The W3C Markup Validation Service)を引き続き使用していたものの、厳密にHTML Living Standardに対応した構文チェックツールなのかどうかも把握していないままという体たらく。

とある記事を見て気にかかったので、W3Cバリデーターの中身がどうなっているか、どのチェックツールを使うべきなのか、どのような方法でHTML Living Standardの最新情報・差分を確認すればいいのか、といったあたりを自身で調べてみました。
個人的な憶測・解釈が入りますが、わかったこと・考えたことをまとめていきます。

※ 間違っている部分があったら教えてもらえると嬉しいです
※ 2022/8/11執筆時点の情報です。

W3Cバリデーターはどういう状態?

前述W3Cバリデーターは使用するとhttps://validator.w3.org/nu/でバリデーションが実行されます。
https://validator.w3.org/nu/は「Nu Html Checker」のインスタンスをサービスとして提供しているもの(参照)なので、チェッカーの中身はNu Html Checkerということ。

中身はNu Html Checkerで、HTML Living Standardも参照している

Nu Html CheckerはW3Cでも使用されていますが、WHATWG公式がHTML Living Standardで参照しているバリデーターでもあります。

This section is non-normative.

Authors are encouraged to make use of conformance checkers (also known as validators) to catch common mistakes. The WHATWG maintains a list of such tools at: https://whatwg.org/validator/
1.10.3 How to catch mistakes when writing HTML: validators and conformance checkers

「1.10.3 HTMLを書くときに間違いを発見する方法」に、バリデーターおよび準拠チェッカーを掲載しているWHATWGのURLを紹介しており、そちらに飛ぶとNu Html Checkerのみ書かれています。
(入力欄にURLをいれてCheckボタンをクリックすると、https://validator.w3.org/nu/に飛ぶ)


HTML Conformance Checkers — WHATWG
“現在知られている、HTML規格を追跡するオンラインコンフォーマンス(準拠)チェッカーは以下の通りです。”

Nu Html CheckerはHTML Living Standardの更新が常に反映されている訳ではなさそう

今回調べるきっかけになったこちらの記事であげられていた”Source タグにおいて width / height 属性が指定可能になった“という仕様変更に関して、あげられているリンクを元に規格の変更時期とチェッカーの対応時期を見てみました。
比較してみると結構ズレがある様子。

▼仕様の変更:Source タグにおいて width / height 属性が指定可能

他の仕様の追加タイミングを調べてないので例外だった可能性はありますが、厳密に同期されている訳ではなさそう。

Nu Html CheckerはローカルやHTTP サービスでも自由に使用することができる

いろんなドメインでNu Html Checkerを見かけるなぁと思っていたんですが、Nu Html CheckerはHTTP サービスとしても自由に使用できます。

これらは管理者の更新タイミングだったりでバージョンが異なっているようで、バージョンが異なるとチェッカーの挙動も変わってきます。
実際にいくつか見てみます。

A. https://validator.w3.org/nu/ →バージョン22.8.8
B. https://validator.nu/ →バージョン22.3.8
C. (おまけ)ローカルで試したNu Html Checker →バージョン22.6.19

先ほどのSource タグに関する仕様で試してみる。

<picture>
//検証コード(bodyタグ内)
<source media="(max-width:767px)" width="320" height="480" srcset="sample_small.jpg">
<source media="(min-width:768px)" width="1920" height="1080" srcset="sample_large.jpg">
<img src="sample_large.jpg" width="1920" height="1080" alt="">
</picture>

Nu Html CheckerでSource タグにおける width / height 属性の指定に対応した(エラーにならなくなった)のは2022/4ごろ。
上3つで試したところ、A・Cは問題なく、Bのバージョン22.3.8のみエラーが表示されました。

Error: Attribute width not allowed on element source at this point.Error: Attribute height not allowed on element source at this point.
Bの結果画面

バージョンの命名規則は更新された年月日のようで、Bだけそのアップデートの前のバージョンだったためにエラーが出たことが推測できます。

どのチェックツールを使えばいい?

以上から、

バージョンがなるべく最近の日付のNu Html Checker

を使うのが比較的最新のHTML Living Standardに沿ったチェックができると言えそうです。

さきほど書いたWeb上にあるNu Html Checkerをあらためて記載。

https://validator.w3.org/nu/
https://validator.nu/

ローカルで最新版使えば早いんじゃ無いかと思ったんですが、8/11時点でlatestバージョンを指定して使用したところ、前述Cに記載したとおりバージョンが22.6.19。
なぜvalidator.w3.org/nu/よりバージョンが下なのかちょっとよくわかっていません、、dockerコマンドを使用したので、他の方法なら最新版が用意されていたということか?
色々試してみたいところです。

ひとまず、さしあたっては

Nu Html CheckerでHTML Living Standardの最新版に沿ってチェックすることは難しいことを抑えつつ、その一方で、双方の更新頻度からNu Html CheckerとHTML Living Standardがものすごく剥離しているということもなさそうなので、最新ではないが、Nu Html Checkerで比較的最近の仕様までチェックできる可能性が高い

という認識で使っていこうと思います。(ソースが英語ばっかりだったので端々がぼんやり)

HTML Living Standardの最新の変更点を追うには

とはいえ、仕様の変更点を追う具体的な方法は知っておきたいところ。
随時変更内容をまとめているようなサイトは見つけられなかったので、自分でHTML Living StandardのGitHubのコミット情報を見て変更点を拾いにいく、という形になりそうです。

GitHubに詳しくないのでこちらを参考にさせてもらいました。

  • 何が変わったか、何が減ったかを見るには以下が最適
    https://github.com/whatwg/html/commits/main
  • 以下のURLで、特定の日付以降の”normative change”ラベルのものを確認することができる。
    https://github.com/whatwg/html/pulls?q=merged:%3E2019-06-20+label:%22normative+change%22
    →”normative change”、”addition/proposal”、”remove/deprecation”ラベルあたりでおおよその仕様変更を追っていける

topic:xxx(変更が加えられた特定のセクション)ラベルを目印にしつつ、ざっくり近年の日付を指定して追っていけばおおよそチェックできそうです。


以上、標準規格の構文チェッカーと更新内容の確認方法についてでした。

更新されつづけるHTML Living Standardの最新版に合わせるというのは無理な話なので、仕事ではクリアするNu Html Checkerのバージョンを設定して、それを対応するように進めていく方法が現実的だなと思いました。

他のNu Html Checker関連の記事もあるのでよければどうぞ!