プロが教える店舗&オフィスのセキュリティ対策術

JavaScriptの仕様について教えてください

■質問1 … 仕様の種類
・JavaScriptの仕様は、以下3つから成立しているという認識で合っているでしょうか?
1.ECMA-262
2.DOM
3.各ブラウザ実装状況

■質問2 … ナビゲーターオブジェクト仕様
・ナビゲーターオブジェクトの仕様はどこにあるのでしょうか?
・ナビゲーターオブジェクト=ブラウザ?
・ナビゲーターオブジェクトは、DOMの一種?

■質問3 … 「W3C」「WHATWG」の違い
・DOM仕様はどこが定めているのでしょうか? W3C?
・HTMLはDOMの一種?
・MOZILLAで「HTML 仕様書での定義」をクリックすると、下記ページへ飛ぶのですが、このページは何ですか?
▽HTML Standard
  http://www.whatwg.org/specs/web-apps/current-wor …
・ベース仕様を「W3C」が決めて、もう少し詳細を「WHATWG」が決めて、その上層のHTML5部分はまたどっか違う組織が仕様を定義している、という話なのでしょうか?

A 回答 (1件)

(1). JavaScript 1.4 以降、DOM は切り離されています。

DOM 自体は言語中立な XML/HTML 用モデル&API として定義され、Java、C++、Python、PHP など各種言語で実装されています。「ブラウザの実装状況」を仕様とは言い難いと思いますが、以下に続きます。

(2). 「ブラウザの実装状況」を見ながら、ブラウザに搭載する DOM その他の仕様を固めていこう、というのが HTML Standard(HTML5)です。JavaScript 1.0 以来慣習的に扱われていた Navigator オブジェクトも、お挙げになったリンク先の 7.5.1 で再定義されています。

なお、Navigator 自体は「ブラウザ情報」を抽象化したものです。HTML Standard 以外の仕様でブラウザ情報を追加したい場合、それぞれの仕様書で Navigator を拡張している場合があります。HTML Standard でも、Navigator は NavigatorID、NavigatorLanguage、NavigatorOnLine、NavigatorContentUtils、NavigatorStorageUtils を全部合わせたものとして定義されています。

(3). (1) で書いたように、DOM は XML/HTML 用モデル、というよりむしろ XML 用モデルとして W3C が定義しました。これは、HTML が役割を終え、今後は XHTML で行こう、という目的があったからです。

ところが、色んなゴタゴタがあって XHTML への移行は失敗しました。それでも XML 路線を貫きたい W3C に対し、Apple、Mozilla、Opera などブラウザベンダが協力して 2004 年に WHATWG を立ち上げ、HTML の再出発を主張しました。HTML5 の canvas 要素などはこのときに導入されたものです。

こうした分裂状態が続き、ついに 2007 年、事実上ストップしていた W3C の XHTML 2.0 の策定が中止されます。同時に、WHATWG が策定を進めていた HTML5(このときは Web Applications 1.0、Web Forms 2.0 などの名前でしたが)が W3C 草案として提出されました。草案の策定は WHATWG が中心となって進め、定期的に W3C 草案もアップデートしていく、という二重構造です。

で、HTML5 はブラウザの実装状況を見ながら修正していく方針ですので、当初は勧告が 2022 年ぐらいだろうと言われていました(1997 年に出た HTML 4.0 のフル実装さえ、未だ存在しないことを思い出して下さい)。しかし、そのように常に現状を見つつ HTML を微調整していくのであれば、もはやバージョンに意味はありません。ということで、2011 年にはバージョン番号が廃止され、単なる「HTML」あるいは現在の「HTML Standard」という名称になりました。

とはいえ、W3C に提出してしまった草案の名前を変えるのは面倒です。なので、W3C 草案の方は名称を変えずに「HTML5」として勧告を早め(遅くとも 2014 年までには出る予定です)、今後のこと、つまり「HTML6」を出すのか出さないのか思案中、というのが現在の状況です。

繰り返しますが、HTML Standard は WHATWG が策定を進めており、日々アップデートされています。W3C 版の方は、WHATWG 版の定期的なスナップショットに過ぎません。このややこしい状況が混乱を招いたため、2012 年、仕様についての窓口は原則として HTML Standard に一本化し、それ以外についてはやりたい人がやってくれ、という形に落ち着きました。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
大変参考になりましたー

お礼日時:2013/03/11 18:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!