HTML, CSS, JavaScriptの標準の仕様書はどこにあるのか
HTML, CSS, JavaScript の書き方・使い方等を調べる時、初心者の方は、検索して出てくる解説記事やMDNの解説を参照する方が多いと思います。しかし、そうした解説の根拠となっている標準仕様について理解し、必要に応じて参照できるようになると、Web開発者としての基礎となり、中級者・上級者へのステップアップに繋がります。
この記事では2022年現在の HTML, CSS, JavaScript の標準仕様について簡単に解説します。
先にまとめ
技術 | 標準化団体 | URL |
---|---|---|
HTML | WHATWG | https://html.spec.whatwg.org/ |
CSS | W3C |
https://www.w3.org/Style/CSS/specs.en.html https://www.w3.org/Style/CSS/current-work |
JavaScript - ECMAScript | TC39 | ECMAScript: https://tc39.es/ecma262/ Intl API: https://tc39.es/ecma402/ Proposals:https://github.com/tc39/proposals |
JavaScript - ブラウザAPI | WHATWG |
https://html.spec.whatwg.org/ https://dom.spec.whatwg.org/ https://fetch.spec.whatwg.org/ など(一覧) |
HTML
HTMLの仕様策定には複雑な歴史があります。詳細は他の解説記事に譲りますが、簡単に述べるとW3CとWHATWGのダブルスタンダード状態が長い間続いていました。2022年現在はWHATWGによってLiving Standardとしてまとめられた仕様が実質的な標準となっています。Living Standardという名前が示す通り、バージョンはなくエディターによって随時更新されています。
CSS
CSSの仕様はW3Cが策定しています。現在は、CSSとして1つの標準仕様があるわけではなく、数多くのモジュールに分かれて標準仕様の策定が進められています。草案、勧告候補などを経て勧告に至るプロセスと、Levelという概念で整理されたバージョン管理が特徴です。年に1度、SnapShotとしてその時点での標準化の概況が公開されています。
JavaScript
JavaScriptは主にWebブラウザで広く使われるプログラミング言語ですが、Node.jsなどWeb以外の環境でも使われることがあります。一般にJavaScriptとされるものは、以下に大別できます。
- 言語自体の仕組み(言語仕様などWebブラウザでもNode.jsでも変わらないもの)
- ECMAScriptと呼ばれます
- Webブラウザ環境が提供するAPI(DOMを中心としたWebサイトを動的に操作する仕組み)
- Node.jsではNode.jsで、例えばOSの機能を利用するためのAPIなどがあります
このうち、前者のECMAScriptについてはEcma Internationalという団体のTC39と呼ばれる委員会で標準化が進められています。プロポーザルとステージに基づく策定プロセスが特徴で、年に一度ES20XXとしてまとめてリリースされます。
後者のブラウザAPIに関しては、HTMLと同じくWHATWGによってLiving Standardとして策定されています。APIごとにDOM Standard、Fetch Standardなどといった形でまとめられており、LocationやHistoryなど HTML Standardに含まれているものもあります。WHATWGのウェブサイトから仕様の一覧が確認できます。
最後に
各項目の簡単な整理は冒頭に掲載しました。困った時の仕様を当たる際の参考にして頂けると幸いです。また、各項目については簡潔な説明に留めていますが、それぞれの歴史や策定プロセス、構成メンバーなどについても抑えておくと、より一層深い理解に繋がると思います。お読みいただきありがとうございました。
Discussion