Web技術の仕様書の探し方

Web技術の仕様書の探し方

[27] 本項では、 Web 技術を規定する仕様書の探し方をご紹介します。

特に必要がなければ、開発者向けドキュメントを読みましょう

[1] たまに仕様書を読めと意味もなく言っている人もいますが、仕様書は開発者向けドキュメントではありません。 一般開発者に理解しやすいことを目的に書かれたものではありません。 前提知識がなく間違った解釈をして、仕様書を読んだから正しいと勘違いしてしまうのは、 変な自信を持ってしまう分、厄介です。仕様書を読むのが偉いということはありません。

[4] ドキュメントとしては MDN (>>3) がおすすめです。 Mozilla の運営するサイトですが、 他のWebブラウザーの情報もあります。

[10] どの Webブラウザーがどの機能を実装しているかは、 caniuse (>>9) を見ましょう。 仕様書には書いていない有用な情報です。

英語の原文を読みましょう

[2] Web の技術は日進月歩です。残念ながら、日本語で得られる正しい情報はほとんどありません。

[5] たまに仕様書日本語に翻訳したものが公開されていることがありますが、 翻訳が正しいかどうかはっきりしないものばかりですし、 原文の更新に追従できていないものが多いです。

[6] 日本語で読みたいなら、仕様書ではなく開発者向けドキュメントを読みましょう。 最新の生の情報が知りたいなら、がんばって英文を読んでください。 日本語訳された仕様書は、どちらの役にも立ちません (むしろ有害です)。

最新版を読みましょう

[23] Web の技術は日進月歩です。仕様書もかなり頻繁に更新されます。 分野によっては一日に何度も更新されています。

[24] そんなに変化が速いと追いつけないという人もいますが、 何もかもがランダムに変化するわけではありません。 華のある新機能もそこまで頻繁に追加されるわけではありません。 多くの変更はバグ修正や明確化や、失敗して使われていない機能の削除のような、 地味なものです。 ですから、最新版ほど厳密で、現実に近いものとなっているはずです。

[25] ページの最初の方に更新日が記載されているはずですから、 まずそこを確認しましょう。ごく最近に更新されたものか、 せめて数ヶ月以内に更新されたものでなければ、間違ったものを読んでいる可能性があります。

[26] 間違って古い版を見ているのかもしれませんし、 何かの理由で他の URL仕様書が移動したのかもしれませんし、 捨てられた技術なのかもしれません。

主要な仕様書の一覧

[8] 現在有効なほとんどの仕様書はここに掲載されています。

探し方

[12] Mozilla の新レンダリングエンジンプロジェクトの ServoWiki に参照するべき仕様書の見つけ方をまとめられています。

[13] いくつかの仕様書WHATWG 版と W3C 版があります。 WHATWG 版がよくメンテナンスされているので、そちらを見ましょう。

[22] HTMLDOMWHATWG にあります。

[17] CSS 関係の仕様書は、 CSS WG の文書一覧 (>>18) からリンクされています。 複数あるときは、 Current Work と書かれているものを読むと良いでしょう。

[20] 単独の CSS 仕様書が見つからない機能は CSS 2.2 に含まれています。 (単独の CSS 仕様書にあるのか CSS 2.2 にあるのかは、 >>19 に表があります。)

>>18 の一覧では CSS 2.1 と書かれているのが CSS 2.2 です。

[14] その他 W3C仕様書は、 Editor's Draft と書かれているものをみましょう。 Editor's Draft でないものを見ている場合は、 ページの最初の方に並んでいるリンクからたどれます。

[15] URL/TR/ と入っているものや、 ページの最初の方に Recommendation と大書きされているものは、 古い版である可能性が高いです。最近のほとんどの W3C仕様書GitHub Pages にあります。

仕様書の読み方

[29] 仕様書を読む上での注意は色々ありますが、 HTML Standard は次のような方法を提示しており >>28、これは他の仕様書を読む時にも必要なことです。

[30]

この仕様書は、他のあらゆる仕様書と同じように読むべきです。 まず、最初から最後まで、何度も読むべきです。 次に、少なくても1回は、逆向きに読むべきです。 更に、目次から適当な章節を選んで読んで、 すべての相互参照をたどって読むべきです

[31] つまり、一度や二度読んだだけで満足しては駄目で、何度も隅から隅まで読み込む必要があります。