W3C 仕様書の読み方

W3C 仕様書とは

W3C 仕様書とは、W3C (World Wide Web Consortium) がインターネット上で使用される各種技術を仕様化したドキュメントです。W3C は、それらの各種技術の標準化を推進するために設立された非営利の標準化団体です。Tim Berners-Lee によって 1994 年に創立し、多くの企業や団体、および個人のクリエイターやエンジニアなどが会員として加入しています。専任スタッフと、それらの会員が WWW の標準策定を行っています。策定している主な規格は以下のとおりです。

  • CSS
  • CGI
  • DOM
  • HTML
  • MathML
  • OWL
  • RDF
  • SVG
  • SOAP
  • SPARQL
  • SMIL
  • VoiceXML
  • WSDL
  • XAdES
  • XForms
  • XHTML
  • XLink
  • XML
  • XML Schema
  • XPath
  • XPointer
  • XQuery
  • XSL
  • XSLT

W3C は Web 技術の仕様を議論する場の提供や、仕様書の作成も行っています。仕様書は、いくつかの段階を踏んで正式に決定します。正式に決定した仕様書は、W3C 勧告 と言い、その状態に至るまでには以下のステップがあります。

close[1] 最終草案 (Last Call Working Draft)
2014 年 8 月版から最終草案は、次の勧告候補に統合されました。
  1. 初期草案 (First Public Working Draft:FPWD)
  2. 作業草案 (Working Draft:WD)
  3. 最終草案 (Last Call Working Draft:LC) [1]
  4. 勧告候補 (Candidate Recommendation:CR)
  5. 勧告案 (Proposed Recommendation:PR)
  6. 勧告 (W3C Recommendation:Rec)

W3C では、常に新しい Web 技術の仕様検討を行っています。それらの検討結果は、すべて技術文章 (Technical Report:TR) として公開されています。どのような技術文章でも作業草案から始まり、仕様が完全に決まって正式に公表されると勧告になる流れは変わりません。W3C が公開している技術文章の一覧は以下から参照できます。

勧告された技術文章は、W3C のレビューとテストが繰り返され、すべてを通過したものだけが仕様書として扱われます。十分な品質が担保され勧告済みの仕様書は、国際的な標準技術として認められます。一方で、勧告に至らなかった技術文章は作業グループノート (Working Group Note) として公開されます。W3C 勧告までの作業フローは、成熟レベルに応じて初期草案から W3C 勧告まで以下のプロセスで行われます。

W3C 勧告までの作業フロー
W3C 勧告までの作業フロー

作業草案は、W3C の専任スタッフ、公的機関、その他の技術系組織によるコミュニティによるレビューのために発行される文章です。また、最初の公開草案は初期草案と呼ばれ、作業草案とは区別されます。作業草案はそれらのメンバーによって何度もレビューを行い、基本的に 3 ヶ月に 1 回のペースで改訂 (Revising) されます。その過程で勧告に進めないものは、作業グループノートとして公開されます。

勧告候補は、作業グループの要件を満たし、レビュー済みであるため、勧告として承認されることが期待される文書です。ただし、その状態では品質が十分ではないため勧告候補のステップでは、実装も含めたレビューを行い情報を収集します。また、諮問委員会による公式レビューも開始され、W3C 勧告として公開される文章として推奨できるか、作業草案に戻すべきか、または中止するべきかなどが判断されます。

勧告案は、十分な品質があり W3C のディレクターから W3C 勧告に推薦できると認められた文書です。勧告案のステップでは、大幅な修正を行うことはできません。もしも大幅修正を行う場合は、作業草案や勧告候補のステップまで差し戻すことになります。

W3C 勧告は、規格策定の最終段階であり W3C のメンバーとディレクターの承認を受けた仕様・指針・要件の文書です。W3C 勧告は、理論面と実用面において幅広いレビューとテストを受けていることが保証されています。

規格文書の策定状況はタイトルのすぐ下、または左の目次サイドバーの 2 箇所に書かれています。以下は勧告済みの HTML 5.2 と、草案段階の HTML 5.3 の例です。

HMTL 5.2 の策定状況 (Rec)
HMTL 5.2 の策定状況 (Rec)
HMTL 5.3 の策定状況 (WD)
HMTL 5.3 の策定状況 (WD)

作業グループノート (Working Group Note) は、アイデア、コメント、もしくは仕様の要件や補足情報の文書です。W3C では、以下のような文章が作業グループノートとして公開されています。

  • 勧告に向けた作業の途中で、別の文書に統合されたり作業が打ち切られた文書
  • 最初から作業グループノートとして作成される参考資料としての文章
  • W3C 外部で開発された内容を手続きを経て W3C の資料として公開する文章

上記以外にも、編集者の草案 (Editor's drafts:ED) という非公式な文章が作成されている場合もあります。この文章は、作業グループノートや、作業草案に入る前の状態の文章で、目次のサイドバーに帯が異なる点や favicon が赤色である点が公式文章と異なります。策定状況が W3C 勧告になっても残存しているため、間違えて参考にしないように注意が必要です。

HMTL 5.3 の Editor's drafts (ED)
HMTL 5.3 の Editor's drafts (ED)

W3C 仕様書を読むメリット

W3C の仕様書は英語ベースであり、表現も難しく、前提知識を多く必要とします。そのため、何かしらの問題が起こった場合でさえも積極的に読もうとする人は少ないように思えます。多くの場合は個人サイトや MDN など他の信頼できる情報で済ませてしまいます。

しかし、W3C の仕様書を読むことはメリットがあります。最大のメリットは、技術仕様が正しく理解できるという点です。ブラウザの仕様は W3C に準拠しており、HTML の構造や CSS の描画など、すべては W3C の仕様書をもとに実装されます。

どのような信頼性の高いサイトであっても W3C 以上に正確な技術仕様を定義することはできません。個人サイトで説明している技術仕様は、誤っていたり情報が古くなっている場合があります。そのため、本当の意味で技術仕様を理解するためには W3C を参照する必要があります。

W3C の文章は、少なくとも 3 ヶ月に 1 回以上のペースで更新されているため、作業草案の文章などは高頻度で更新されています。開発者の方であれば、勧告前の文章に目を通すこともあります。一方で、デザイナーやブロガーであったとしても技術仕様を知るために W3C のサイトで仕様を確認する姿勢が求められます。

W3C 仕様書の見つけ方

まずは読みたい仕様書を見つけましょう。以下のページには W3C が公開している技術文章の一覧があり、タイトル、タグ、ステータス、バージョンから探すことができます。以下は HTML 5.2 の W3C 勧告済みの文章をフィルタリングしている例です。

W3C 仕様書を探す
W3C 仕様書を探す

仕様書の改訂履歴は、各文章の errata から参照できます。

W3C 仕様書の読み方

文章は基本的に英語ですが、有志の方が日本語訳を行っている文章も存在します。ここでは、公式文章である英語の HTML 5.2 の W3C 勧告済み文章を例に読み方を説明します。

以下は、HTML の要素である a タグの概要例です。HTML の文章では、要素の説明は概要とサンプルコード、そして補足や注意事項などがあります。

a タグの概要
a タグの概要

Categories では、その要素がどのカテゴリに属するかを示します。a タグの場合、Flow content, Phrasing content, Interactive content, Palpable content の 4 つのカテゴリに属することを表しています。このカテゴリリストは、各要素に対するコンテンツモデルを定義する際に使用されます。コンテンツモデルとは、対象の要素の子に特定の要素 (コンテンツ) を期待するモデルのことです。例えば、a タグの場合、子の要素に p タグなどを期待しますが、title タグなどは期待しないモデルになります。このように、各要素には何らかのモデルが採用されており、子の要素には特定の要素を期待することになります。

コンテンツモデル
コンテンツモデル

Contexts in which this element can be used では、対象の要素が使用できるコンテキストを表します。例えば、a タグの場合、Phrasing content が期待される場所に配置するように書かれています。Phrasing content はコンテンツモデルのひとつで、文書のテキスト、および段落内レベルでそのテキストをマークアップする要素の集合です。例えば、p タグや em タグなどが含まれるコンテンツです。

Content model では、対象の要素のコンテンツモデルを表します。例えば、a タグの場合、親要素のコンテンツモデルを引き継ぐ Transparent のコンテンツモデルであると説明されています。ただし、interactive content、または子孫となる a 要素が存在しないことと書かれています。つまり、a タグは子孫の要素までハイパーリンクが有効になり、a タグの中に a タグを含めてはいけないことを表します。

Tag omission in text/html では、対象の要素の開始タグと終了タグの省略可否を表します。例えば、a タグの場合、どちらのタグも省略できないことが書かれています。一部のタグでは両方、または終了タグが省略できるため、このような定義が設けられています。

<!-- 開始タグと終了タグは省略不可 -->
<a href="..."></a>
開始タグと終了タグの省略可否

Content attributes では、対象の要素に定義できる属性を表します。例えば、a タグの場合、hreftarget などの属性を定義できます。

<a href="https://murashun.jp/" target="_blank"></a>
hreftarget の属性を定義した例

DOM interface では、対象の要素が実装するインターフェースを提供します。例えば、a タグの場合、HTMLAnchorElement としてまとめられており、以下のように hreftext を定義することができます。

var element = document.createElement("a");
element.href = "https://murashun.jp/"; // 定義済みの DOM interface
element.text = "ホームページ";          // 定義済みの DOM interface
console.log(element);
// 実行結果 (成功)
// <a href="https://murashun.jp/">ホームページ</a>

var element = document.createElement("a");
element.hoge = "https://murashun.jp/"; // 未定義の DOM interface
console.log(element);
// 実行結果 (失敗)
// <a></a>
DOM interfaceHTMLAnchorElement を操作する例

まとめ

W3C 仕様書は、W3C 勧告までの作業フローが別れており、各ステータス毎の状態も公開されているため、どの仕様書を見れば良いのか分からない場合があります。しかし、作業フローとステータス、そして仕様書の見かたさえ分かれば、すべての技術情報が無料で読めます。専門的な知識を必要とするため、Web 開発者以外はあまり参照されない文章ですが、なぜそのような仕組みになっているのかを理解するために読んでみることには意義があります。特に HTML 5.1 から HTML 5.2 に改版された変更点には、<menu> タグが廃止になったりなど、重要な情報が含まれています。すべてを把握する必要はありませんが、W3C 仕様書の歩き方は覚えておくと良いでしょう。

Category:
その他
公開日:
更新日:
Pageviews:
217
Shares:
11
Tag:
W3C
HTML
コンテンツ制作
hatebu icon
hatebu