--- title: 仕様書表 slug: MDN/Structures/Specification_tables tags: - Guide - MDN Meta - Structures translation_of: MDN/Structures/Specification_tables ---
MDN 上のすべてのリファレンスページでは、 API または技術が定義されている仕様書に関する情報を提供するようにしてください。この記事ではこれらの表の外見を示し、構築方法を説明します。
このような表は、少し互換性一覧表 (こちらも仕様書表があるすべてのページで示すようにしてください) と似ています。
仕様書表は、従来から3つの列で構成されています。
MDN で見られる大部分の表は上記の列から構成されていますが、構造を更新する進行中の計画があり、あちこちで異なる構造のものを見かけることがあるかもしれませんが、最終的な目標はブラウザー互換データリポジトリに仕様書の定義のリンクを格納して、そこから表を自動生成させることです。公開議論の文書は Improving MDN Specification tables にあります。
表の中では1行あたり1件の API または技術が基づく仕様書が記述されます。
それぞれの表にどの仕様書を含めるかは、どの機能が当該リファレンスページで記述されているかによります。
AudioContext.close()
の仕様書のような書き方です。「ライブ仕様書」で定義された技術 (例えば、HTML や DOM) の場合、おそらくリンクする必要があるのは単一の仕様書だけであり、その技術が定義されている正式な単一の場所としてのものです。
他の仕様書表 (通常は WebAPI 仕様書) では、常に最新の編集者草稿を指す単一の URL を、仕様書ごとに (同じ仕様書とは限らないが) 入れる必要があるのが普通でしょう。このような場合、普通は最新の編集者草稿にリンクしたほうが、仕様書が変更された時にリンクが正しくあり続けます。 — 最新の編集者草稿は、最新の機能がすべて定義されており、ブラウザーベンダーがよりどころとしているものです。したがって、これはリンクするのに最も興味深い場所であり、多くの場合は最新情報です。この例としては、 IndexedDB draft, Web Audio API draft, 等があります。最新の草稿へのリンクが、仕様書表の一番上に見られます。
他の仕様書表には、一つの仕様書で定義された中心機能がありますが、機能が拡張されることがあり、例えば、 Credential Management 仕様書は Web Authentication 仕様書によって拡張されています (仕様書表を見る)。
CSS の仕様書表については、そのように単純ではありません。 — CSS の仕様書はふつう、新しい機能を導入する複数のレベルに分割されています。 — 例えば、 Media Queries Level 4 と Media Queries Level 5 といった具合です。多くの場合、複数の仕様書にリンクして、機能の動作が定義されているすべての場所を示す必要があります。
MDN に仕様書表を追加するとき (方法は以下参照)、上記の考えを意識しておいてください。ライブの仕様書を表現するには技術の名前のみです (例えば "HTML")。最新の仕様書の草稿は WebAPI 名草稿とします (例えば "IndexedDB 草稿")。複数の仕様書が必要な場合は、仕様書の正確な名前を使用してください。
MDN の多くの仕様書表が、ある機能を定義したすべての仕様書を過去にさかのぼって含めています。例えば、 CSS の color プロパティの仕様書表のようにです。これは CSS レベル1まですべてをさかのぼっていますが、おそらく表の下3行は必要ないでしょう。色がアニメーション可能であることについての部分を除いて、レベル4ですべてが定義されています。
特に、廃止とされた仕様書を参照する必要はありません。これは役に立ちません。
また、 W3C が WHATWG Living Standard で扱っている技術仕様書のスナップショットの発行をやめることに合意しました。 — 両方で扱っていた技術については、 WHATWG の仕様書を並べるだけでよくなります。
これらの表を、適切な書式で標準の書式で構築しやすくするために、 KumaScript マクロを使用しています。使い方を知っておく必要がある物は2つあります。
\{{SpecName}}
{{TemplateLink("SpecName")}} マクロは、「仕様書」列の内容を生成するために使います。3つの引数を受け付けます。
仕様書に指定する名前は、マクロ内の specList
オブジェクトで見られます。リンクしたい仕様書にマクロが対応していない場合、 SpecData ファイルを更新するプルリクエストを提案してください。
\{{Spec2}}
{{TemplateLink("spec2")}} マクロは、指定されれた仕様書の名前から、「状態」列で仕様書の状態を示すウィジェットを生成し挿入します。こちらも SpecData ファイルからデータを取得します。こちらも、リンクしたい仕様書にマクロが対応していない場合は、プルリクエストを提案してください。