[8] [DFN[[CODE(CSS)@en[[[:indeterminate]]]]]] [[擬似クラス]]は、選択と未選択の中間状態に一致します。

[31] [DFN[[CODE(DOMa)@en[[[indeterminate]]]]]] [[IDL属性]]は選択と未選択の中間状態を表します。

* 仕様書

[REFS[
- [44] [CITE@en[CSS Basic User Interface Module Level 3 (CSS3 UI)]] ([[Tantek Çelik]] 著, [TIME[2012-01-13 20:03:30 +09:00]] 版) <http://www.w3.org/TR/2012/WD-css3-ui-20120117/#indeterminate>
- [36] [CITE@en-US-x-hixie[HTML Standard]] 
-- [24] '''<http://www.whatwg.org/specs/web-apps/current-work/#pseudo-classes>'''
-- [29] '''<http://www.whatwg.org/specs/web-apps/current-work/#dom-input-indeterminate>'''
-- [35] <http://www.whatwg.org/specs/web-apps/current-work/#checkbox-state>
-- [39] <http://www.whatwg.org/specs/web-apps/current-work/#wai-aria>
]REFS]

* 意味

[47] [CODE(CSS)@en[[[:indeterminate]]]] [[擬似クラス]]は[RUBYB[未決定]@en[indeterminate]]状態を表します。
[SRC[>>44]]

[EG[
[48] 例えば、次のような状態を表します。 [SRC[>>44]]

- [49] [[ラジオ・ボタン]]や[[チェック箱]]で、チェックと未チェックのいずれでもない未決定状態
- [50] 進捗メーターで完了度が分からないような未決定状態

[53] 具体的には、1組の[[ラジオ・ボタン]]でいずれもチェックされていない状態は、
[CODE(CSS)@en[[[:indeterminate]]]] であるとして扱うことができます [SRC[>>44]]。
]EG]

** HTML

[26] [CODE(CSS)@en[[[:indeterminate]]]] [[擬似クラス]]は次の[[要素]]と[[一致]]します [SRC[>>24]]。
[FIG[
- [27] [CODE(HTMLe)@en[[[input]]]] [[要素]]で [CODE(HTMLa)@en[[[type]]]] [[属性]]が[[チェック箱]]状態であり、
[CODE(DOMa)@en[[[indeterminate]]]] [[IDL属性]]が[[真]]であるもの
- [54] [CODE(HTMLe)@en[[[input]]]] [[要素]]で [CODE(HTMLa)@en[[[type]]]] [[属性]]が[[ラジオ・ボタン]]状態であり、
当該[[ラジオ・ボタン群]]に1つも[[チェック済み]]状態が[[真]]である [CODE(HTMLe)@en[[[input]]]]
[[要素]]が存在しないもの
- [28] [CODE(HTMLe)@en[[[progress]]]] [[要素]]で [CODE(HTMLa)@en[[[value]]]] [[内容属性]]のないもの
]FIG]

;; [51] [DEL[>>48 によれば意味的に[[ラジオ・ボタン]]の時にも適応されそうですが、 [[HTML]] ではそのようには規定されていません。]] → >>55 で >>54 が追加されました。

* 媒体

[52] [CODE(CSS)@en[[[:indeterminate]]]] [[擬似クラス]]はすべての[[媒体]]に[[適用]]されます。
[[利用者]]が選択状態を変えられない[[静的]]な表示媒体であったとしても、
例えば[[ラジオ・ボタン]]群でいずれも予め選択されていないなど、 [CODE(CSS)@en[[[:indeterminate]]]]
[[擬似クラス]]が適用され得る状況があります。 [SRC[>>44]]

* データ型

[33] [CODE(DOMa)@en[[[indeterminate]]]] [[属性]]の[[データ型]]は [[boolean]] です [SRC[>>29]]。

* 処理モデル

[32] [CODE(DOMa)@en[[[indeterminate]]]] [[IDL属性]]は初期状態は[[偽]]で、値を設定することにより変更できます [SRC[>>29]]。

[34] この [[IDL属性]]は[[チェック箱]][[制御子]]の見た目を変化させますが、それ以外に影響はありません [SRC[>>29]]。

;; [37] 一見[[チェック箱]][[制御子]]は3状態あるようですが、実際には[[チェック]]されているかいないかの本来の状態に、
見た目だけの「未決定」の第3の状態が加わったものとなっています。本当の意味で3状態ではありません [SRC[>>35]]。

[38] [[チェック箱]][[制御子]]は[[活性化]]により状態が変化しますが、これによって
[CODE(DOMa)@en[[[indeterminate]]]] [[属性]]は[[偽]]に変化します。
[CODE(DOMe)@en[[[change]]]] [[事象]]が[[取り消し]]されると元の値に戻されます。 [SRC[>>35]]

* 歴史

** IE

[43] [CODE(DOMa)@en[[[indeterminate]]]] [[IDL属性]]ははじめ [[WinIE]] が実装しました。

** 選択子3

[REFS[
- [9] [CITE@en[User Interface for CSS3]] ([TIME[2000-06-23 03:09:21 +09:00]] 版) <http://www.w3.org/TR/2000/WD-css3-userint-20000216#pseudo-indeterminate>
]REFS]

[10] この [[WD]] が初出ですが、その後[[選択子3]]に移されたようです。

[REFS[
- [13] [CITE@en[CSS3 module: W3C Selectors]] ([TIME[2000-04-11 01:57:05 +09:00]] 版) <http://www.w3.org/TR/2000/WD-css3-selectors-20000410#indeterminate>
- [15] [CITE@en[CSS3 module: W3C Selectors]] ([TIME[2000-10-06 02:05:50 +09:00]] 版) <http://www.w3.org/TR/2000/WD-css3-selectors-20001005/#indeterminate>
- [17] [CITE@en[CSS3 module: W3C Selectors]] ([TIME[2001-01-29 23:57:00 +09:00]] 版) <http://www.w3.org/TR/2001/WD-css3-selectors-20010126/#indeterminate>
]REFS]

[14] [[選択子3]]の初期には [CODE(CSS)@en['[[user-input]]']] との関係も定義されていました。
しかし >>17 の次の [[CR]] >>19 では削除されています。

[REFS[
- [19] [CITE@en[Selectors]] ([TIME[2001-11-15 23:36:43 +09:00]] 版) <http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#indeterminate>
]REFS]

** DOM3

[1]
[CITE@en[Re: Comment from CSS WG on HTML DOM draft]] ([[Philippe Le Hegaret]] 著, [TIME[2002-02-12 03:56:49 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-dom/2002JanMar/0124.html>
([[名無しさん]])

[2]
>>1 結局 [[Gecko]] はその後も [CODE(DOMa)@en[[[indeterminate]]]] を実装していないみたいですね。

** Web Controls 1.0

[REFS[
- [12] [CITE@en-GB-hixie[Web Applications Markup Language 1.0]]
( ([TIME[2004-04-08 02:39:12 +09:00]] 版))
<http://hixie.ch/specs/html/apps/web-apps-1#pseudo-classes>
- [11] [CITE@en-GB-hixie[Web Controls 1.0]]
( ([TIME[2004-11-09 08:49:52 +09:00]] 版))
<http://www.whatwg.org/specs/web-controls/current-work/#pseudo-classes>
]REFS]

[16] [[Webアプリケーション]]から状態を設定できるようにする構想もありました。

** 選択子3からの削除

[7] [[選択子3]]の初期の案では [CODE(CSS)@en[[[:indeterminate]]]] が規定されていましたが、 >>19 の次の [[WD]]
である >>18 以後、
[[DOM]] で規定されていないことなどを理由に、将来の版で定義するかもという注記に差し替えられています。

[REFS[
- [18] [CITE@en[Selectors]] ([TIME[2005-12-15 00:49:29 +09:00]] 版) <http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#indeterminate>
- [20] [CITE@en[Selectors Level 3]] ([TIME[2009-03-10 22:17:53 +09:00]] 版) <http://www.w3.org/TR/2009/WD-css3-selectors-20090310/#indeterminate>
- [21] [CITE@en[Selectors Level 3]] ([TIME[2009-12-15 08:41:18 +09:00]] 版) <http://www.w3.org/TR/2009/PR-css3-selectors-20091215/#indeterminate>
- [22] [CITE@en[Selectors Level 3]] ([TIME[2011-09-29 22:16:17 +09:00]] 版) <http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#indeterminate>
- [6] [CITE@en[Selectors Level 3]] ([TIME[2011-09-29 22:16:17 +09:00]] 版) <http://www.w3.org/TR/selectors/#indeterminate>
]REFS]

** WF2

[REFS[
- [5] [CITE@en-GB-x-Hixie[Web Forms 2.0]]
<http://www.whatwg.org/specs/web-forms/current-work/#relation>
]REFS]

>[CODE(CSS)[:indeterminate]]
Matches radio form control elements when none of the radio buttons in their group are checked.

** HTML5

[3]
最近 (2008年9月) の #whatwg での会話によると、3状態 checkbox の必要性は理解できるものの、
緊急性がなく、どう規定するべきかも十分明確でないので、すぐには [[HTML 5]]
には追加されないようです。

[4]
あと [[Web Forms 2.0]] がまだあまり実装されていないので、も。

** HTML

[25] [[Web Forms 2.0]] が [[HTML5]] にマージされた際に [CODE(CSS)@en[[[:indeterminate]]]]
も [[HTML5]] (→ [[Web Applications 1.0]] → [[HTML Living Standard]]) に移ってきました [SRC[要出典]]。

[REFS[
- [1] [CITE@en[Web Applications 1.0 r6082     make :indeterminate apply to indeterminate <progress> bars]]
( ([TIME[2011-05-05 17:36:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6081&to=6082>
- [23] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2011-11-12 00:22:26 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#pseudo-classes>
]REFS]

[42] [CODE(DOMa)@en[[[indeterminate]]]] [[IDL属性]]も改めて規定されています。

[REFS[
- [41] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2011-11-12 00:22:26 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-input-indeterminate>
- [55] [CITE@en[Web Applications 1.0 r7910     Make :indeterminate match <input type=radio> elements when there's no checked button in the group]] ([TIME[2013-06-06 05:55:00 +09:00]] 版) <http://html5.org/tools/web-apps-tracker?from=7909&to=7910>
]REFS]

** 再び CSS3 UI

[REFS[
- [45] [CITE@en[CSS Basic User Interface Module Level 3 (CSS3 UI)]] ([[Tantek Çelik]] 著, [TIME[2012-01-13 20:03:30 +09:00]] 版) <http://www.w3.org/TR/2012/WD-css3-ui-20120117/#indeterminate>
]REFS]

[46] [[選択子3]]から削除された [CODE(CSS)@en[[[:indeterminate]]]] ですが、改めて [[CSS3 UI]]
に定義が追加されています。 >>28 の用途にも意味が拡張されています。

* 関連

[40] [CODE(DOMa)@en[[[indeterminate]]]] [[IDL属性]]が[[真]]の[[チェック箱]][[制御子]]は [CODE@en[[[aria-state]]]]
状態が [CODE[[[mixed]]]] に設定されます [SRC[>>39]]。

[56] [CITE@en[Web Applications 1.0 r2778 Defined how pseudo-classes match HTML concepts. Redid how rtl/ltr changes are marked. Stopped <legend> centering for <figure>. Removed <multicol> support. Removed <basefont> support. Removed obsolete notes. Fixed minor typos.]]
( ([TIME[2009-02-11 16:36:00 +09:00]] 版))
<http://html5.org/r/2778>

[57] [CITE@en-US[csswg: changeset 14966:d176479b88ff]]
( ([TIME[2014-12-25 13:51:02 +09:00]] 版))
<https://dvcs.w3.org/hg/csswg/rev/d176479b88ffe2dcfa027be6aee807afc0d45bd2>