[13] [DFN[[RUBYB[奇癖モード]@en[Quirks Mode]]]]は、2000年頃の[[Webブラウザー]]の挙動に基づく 
[[HTML]] や [[CSS]] の解釈モードです。現在でも [[Webブラウザー]]が実装していますが、
[[著者]]がこのモードを用いるのは[[不適合]]とされています。また、[[奇癖モード]]と[[無奇癖モード]]の区別を設けたこと自体、
現在では失敗だったと考えられています。

* 仕様書
[REFS[
- [14] [CITE@en-US[DOM Standard]] ([TIME[2012-11-19 13:07:43 +09:00]] 版) <http://dom.spec.whatwg.org/#concept-document-quirks>
- [10] [CITE@en-US[Quirks Mode Standard]]
( ([TIME[2012-11-13 08:54:35 +09:00]] 版))
<http://quirks.spec.whatwg.org/>
- [33] [CITE@en[CSS Syntax Module Level 3 (CSS3 Syntax)]] ([TIME[2012-11-22 18:39:04 +09:00]] 版) <http://dev.w3.org/csswg/css3-syntax/#quirks-mode>
- [54] [CITE@en[CSS Cascading and Inheritance Level 3]] ([TIME[2013-08-09 23:50:23 +09:00]] 版) <http://dev.w3.org/csswg/css-cascade/#content-type>
]REFS]

* 呼称

[15] [[奇癖モード]]は歴史的には[DFN[[RUBYB[互換モード]@en[compatibility mode]]]]とも呼ばれました。
また [CODE(DOMm)@en[[[compatMode]]]] [[属性]]では [CODE(DOM)@en[[[BackCompat]]]] という値で表されています。

* 奇癖モードの挙動の一覧

[FIG(list)[
* HTML

- [39] [[奇癖モード]]、[[限定奇癖モード]]、[[無奇癖モード]]のいずれであるかは [CODE(HTML)@en[[[DOCTYPE]]]] 
により決まります [SRC[HTML]]
- [40] (奇癖) [CODE(HTMLe)@en[[[table]]]] [[開始タグ]]の挙動が異なります [SRC[HTML]]
- [46] (奇癖) [CODE(HTMLe)@en[[[img]]]] [[要素]]が[[利用可能]]でない時の[[レンダリング]]が異なります [SRC[HTML]]
- [51] (奇癖) [[[CODE(HTML)@en[rowspan=0]]奇癖]]
- [48] 廃止されたもの
-- [49] (無奇癖のみ?) [[注釈]]の構文解析方法が異なる ([[Gecko]])
-- [50] (奇癖、限定奇癖、無奇癖) [CODE[<% ... %>]] の構文解析方法が異なる ([[IE]], [[WebKit]])

* CSS

- [19] (奇癖、限定奇癖) [[行高計算奇癖]] [SRC[>>10]]
- [20] (奇癖、限定奇癖) [[ブロックのline-height無視奇癖]] [SRC[>>10]]
- [21] (奇癖) [[パーセントheight計算奇癖]] [SRC[>>10]]
- [22] (奇癖) [[表こま幅奇癖]] [SRC[>>10]]
- [23] (奇癖) [[表こまnowrap最小幅計算奇癖]] [SRC[>>10]]
- [24] (奇癖) [[結合表奇癖]] [SRC[>>10]]
- [25] (奇癖) [[テキスト装飾が表に伝播しない奇癖]] [SRC[>>10]]
- [26] [DEL[(奇癖、限定奇癖、無奇癖) [[font要素テキスト装飾色奇癖]] [SRC[>>10]]]] ([[HTML Standard]] に移動)
- [27] (奇癖) [[表が色をbodyから継承する奇癖]] [SRC[>>10]]
- [28] (奇癖) [[表こま高さ箱サイズ決定奇癖]] [SRC[>>10]]
- [31] (奇癖) [[無ハッシュ十六進数色奇癖]] [SRC[>>33]]
- [32] (奇癖) [[無単位長奇癖]] [SRC[>>33]]
- [36] (奇癖) [CODE(HTML)@en[<[[link]] [[rel]]=[[stylesheet]]>]] は[[MIME型]]を半ば無視します [SRC[HTML]]
- [55] (奇癖) [CODE(CSS)@en[[[@import]]]] は[[MIME型]]を半ば無視します [SRC[>>54]]
- [41] (奇癖) [[余白結合奇癖]] [SRC[HTML]]
- [42] (奇癖) [CODE(HTMLe)@en[[[form]]]] の[[余白]]が異なります [SRC[HTML]]
- [43] (奇癖) [CODE(HTMLe)@en[[[table]]]] で[[テキスト]]系の[[特性]]が[[初期値]]にリセットされます [SRC[HTML]]
- [44] (奇癖) [CODE(HTMLa)@en[[[nowrap]]]] の挙動が異なります [SRC[HTML]]
- [45] (奇癖) [CODE(HTMLe)@en[[[input]]]] [[要素]]はすべて [CODE(CSS)@en[[[box-sizing]]: [[border-box]]]] です 
[SRC[HTML]]
- [47] (奇癖) [[浮動]]させた [CODE(HTMLe)@en[[[img]]]] [[要素]]の[[余白]]が異なります [SRC[HTML]]

* 選択子

- [29] (奇癖) [[[CODE(CSS)@en[:active]]と[CODE(CSS)@en[:hover]]の奇癖]] [SRC[>>10]]
- [37] (奇癖) [[HTML要素]]の[[ID]]は[[ASCII大文字・小文字不区別]]となります [SRC[HTML]]
- [38] (奇癖) [[HTML要素]]の [CODE(HTMLa)@en[[[class]]]] は[[ASCII大文字・小文字不区別]]となります [SRC[HTML]]

* DOM

- [34] (奇癖) [CODE(DOMa)@en[[[compatMode]]]] [[属性]]は[[奇癖モード]]とそれ以外で異なる値を返します。 [SRC[DOM]]
- [35] (奇癖) [CODE(DOMm)@en[[[getElementsByClassName]]]] [[メソッド]]は[[ASCII大文字小文字不区別]]になります。 [SRC[DOM]]
]FIG]

* 関連

[61] [[互換性標準]]の規定は[[奇癖モード標準]]と趣旨は似ていますが、
[[モード]]に関わらず常に適用されるものです。

* 歴史

[30] [SEE[ [[DOCTYPEスイッチ]] ]]

** Gecko

[REFS[
- [1] [CITE[Mozilla's quirks mode]] <http://www.mozilla.org/docs/web-developer/quirks/>
- [2] [CITE[Mozilla Quirks Mode Behavior - MDC]] <http://developer.mozilla.org/en/docs/Mozilla_Quirks_Mode_Behavior>
- [3] [CITE[Mozilla's Quirks Mode - MDC]] <http://developer.mozilla.org/en/docs/Mozilla%27s_Quirks_Mode>
]REFS]

** IE

@@ XXX

** WHATWG

[16] 「[[奇癖モード]]」自体の定義は [[HTML Living Standard]] ではじめて規定されましたが、後に
[[DOM Living Standard]] に移動しました。 [[HTML]] の構文解析の挙動など、 [[HTML]]
の動作に関する規定は引き続き [[HTML Living Standard]] に含まれています。

[REFS[
- [11] [CITE[Quirks Mode Standard]]
( ([TIME[2012-02-09 23:33:50 +09:00]] 版))
<http://simon.html5.org/specs/quirks-mode>
- [9] [CITE[''''''[''''''whatwg'''''']'''''' Quirks Mode Standard]]
( ([TIME[2012-02-10 08:04:44 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-February/034802.html>
- [12] [CITE[Bug 15950 – Rename no-quirks mode and limited quirks mode]]
( ([TIME[2012-02-18 10:43:30 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=15950>
- [7] [CITE[''''''[''''''whatwg'''''']'''''' Quirks Mode Standard]]
( ([TIME[2012-03-15 07:32:25 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-March/035062.html>
- [8] [CITE[IRC logs: freenode / #whatwg / 20121031]]
( ([TIME[2012-11-23 14:34:19 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20121031#l-754>
]REFS]

[17] [[CSS]] や[[選択子]]に関する[[奇癖モード]]の規定はその後も仕様化されないままでしたが、
2012年2月に [[WHATWG]] で [[Simon Pieters]] によって仕様化されました。
当初は Simon のサイト、後に [[W3C]] のサイトに仕様が置かれ、 [[WHATCG]] 
でも出版されましたが、2012年11月に [[WHATWG]] のサイトに置かれました。

[18] また [[CSS]] の構文解析の規定は [[css3-syntax]] に移されています。

* メモ

[REFS[
-[4]
[CITE@en-US[What happens in Quirks Mode in web browsers?]] ([CODE[2007-04-15 21:28:57 +09:00]] 版) <http://www.cs.tut.fi/~jkorpela/quirks-mode.html>
-[5]
[CITE@ja[IE5.xとIE6互換モードがidやclass名の大文字小文字を区別しない件を利用する | Blog hamashun.com]] ([CODE[2007-10-24 23:58:58 +09:00]] 版) <http://www.hamashun.com/blog/2007/10/ie5xie6idclass.html>
--[6]
>>5 [[Firefox]] も[[奇癖モード]]では区別しないのですが。。。
]REFS]

[52] [CITE[IRC logs: freenode / #whatwg / 20130420]]
( ([TIME[2013-05-01 23:37:56 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20130420#l-57>

[53] [CITE[IRC logs: freenode / #whatwg / 20120705]]
( ([TIME[2012-07-17 22:28:19 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20120705#l-452>

[56] [CITE@en[Web Applications 1.0 r7123     import the lone HTML quirk from zcorpan's draft]]
( ([TIME[2012-06-07 09:24:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7122&to=7123>


[57] [CITE@en[Interoperable Quirks Mode (Windows)]]
( ([TIME[2013-11-13 13:45:34 +09:00]] 版))
<http://msdn.microsoft.com/en-us/library/ie/hh673550(v=vs.85).aspx>

[58] [CITE@ja[Internet Explorer の ''''''[''''''互換表示'''''']'''''' の問題を解決する - Gmail ヘルプ]]
( ([TIME[2014-01-10 03:08:19 +09:00]] 版))
<https://support.google.com/mail/answer/181472?hl=ja>

[59] [CITE@ja[VBScriptでIE10を互換モードに変更する | 株式会社システムキューブ]]
( ([TIME[2014-01-10 03:14:42 +09:00]] 版))
<http://www.sys-cube.co.jp/blog/3386.html>

[60] [CITE@en[Make type and mode explicit concepts of documents. Fixes https://www.… · whatwg/dom@8f812e6]]
([TIME[2015-08-04 13:53:45 +09:00]] 版)
<https://github.com/whatwg/dom/commit/8f812e6b16ba31270ba60568fb0bdbb78949348e>

[62] [CITE@en[Mention that initial about:blank also results in quirks]]
([[annevk]]著, [TIME[2016-07-05 18:22:15 +09:00]])
<https://github.com/whatwg/dom/commit/42f01fbea381e8103e9a42db2bba51edf5388926>

[63] [CITE@en[Review Draft Publication: August 2018]]
([[annevk]]著, [TIME[2018-08-22 01:51:53 +09:00]])
<https://github.com/whatwg/quirks/commit/603a9405cf16b016b72f1a894e430a5aa767387c>

[64] [CITE@en[Review Draft Publication: August 2018 by annevk · Pull Request #32 · whatwg/quirks]]
([TIME[2018-09-04 16:23:45 +09:00]])
<https://github.com/whatwg/quirks/pull/32>

[65] [CITE@en[Quirks Mode Standard Review Draft August 2018]]
([TIME[2018-08-22 04:59:12 +09:00]])
<https://quirks.spec.whatwg.org/review-drafts/2018-08/>

[66] [CITE@en[Review Draft Publication: August 2018]]
([[annevk]]著, [TIME[2018-08-22 01:51:53 +09:00]])
<https://github.com/whatwg/quirks/commit/603a9405cf16b016b72f1a894e430a5aa767387c>

[67] [CITE@en[Review Draft Publication: August 2018 by annevk · Pull Request #32 · whatwg/quirks]]
([TIME[2019-03-04 16:39:41 +09:00]])
<https://github.com/whatwg/quirks/pull/32>

[68] [CITE@en[WebKit/Quirks.cpp at main · WebKit/WebKit · GitHub]], [TIME[2022-10-17T05:45:32.000Z]] <https://github.com/WebKit/WebKit/blob/main/Source/WebCore/page/Quirks.cpp>