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部分はまたどっか違う組織が仕様を定義している、という話なのでしょうか?
No.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 に一本化し、それ以外についてはやりたい人がやってくれ、という形に落ち着きました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- 一戸建て 準耐火構造で、かつ透湿性のある【壁の構造】について質問させてください。 現在、東京都の風致地区で、高 1 2023/07/22 02:56
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- その他(業種・職種) 様々な仕事の経験がある方、職種・業種に詳しい方に質問です。 現在20代で初めての仕事探しをしているの 5 2022/09/28 13:22
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- Instagram HTML5の廃止とJavaScript 2 2022/04/13 21:05
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
- その他(ブラウザ) ブラウザでの音量(YouTubeなどの視聴)が自動的に下がってしまう。(できれば直したいです。) 2 2023/07/15 08:52
- 筋トレ・加圧トレーニング プロテインの事で質問です。 ちょっとした倉庫内での力仕事でして、ほんのたま~に力仕事があるぐらいで、 3 2022/06/22 14:22
- デスクトップパソコン HPの法人用パソコンに個人用のゲーミングモニターは対応しますか? 3 2022/08/10 20:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダ内のファイル名を取得...
-
javaScriptでグローバル変数に...
-
Webページ中の javascript をVB...
-
event.srcElementの動的設定
-
クラス デフォルトプロパティの...
-
javascript 親オブジェクトと子...
-
JSPの処理の途中で、JavaScript...
-
Vba SelStart、SelLen教えてく...
-
デザイン時のVisible=Falseは実...
-
ASP(VBS) ←→ JavaScript の変数...
-
C#でTextBoxに数値のみ入力可能...
-
フォルダを自動で開く
-
初心者です。gulpでコンパイル...
-
リクエスト結果が一瞬しか表示...
-
resizeToメソッドが動作しません
-
1つのVBAコードをすべてのコア...
-
VC#でテキストボックスに変数の...
-
JavaScriptで ブラウザの閉じる...
-
正整数の半角数字かどうか判定する
-
独自の検索エンジンを作るには!?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
jquery か javascript で json ...
-
エクセル2010のvbaについて
-
javaScriptでグローバル変数に...
-
画面間でのJavaScrip...
-
文字を移動させその位置を表示...
-
オライリーのプログラミングPHP...
-
フォルダ内のファイル名を取得...
-
ASP.NETでURLにマッピングされ...
-
CSSのクラスを動的に変更 classで
-
イベントevt?evt.target:event....
-
一定時間経つと画像を消す方法
-
クラス デフォルトプロパティの...
-
strictモードでなぜエラーにな...
-
JSの「document.getElementById...
-
event.srcElementの動的設定
-
VBAの引数の指定 カッコとイコ...
-
Shell.ApplicationでのIEオブ...
-
「リンク」と「ハイパーリンク...
おすすめ情報