[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]] 版) - [36] [CITE@en-US-x-hixie[HTML Standard]] -- [24] '''''' -- [29] '''''' -- [35] -- [39] ]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]] 版) ]REFS] [10] この [[WD]] が初出ですが、その後[[選択子3]]に移されたようです。 [REFS[ - [13] [CITE@en[CSS3 module: W3C Selectors]] ([TIME[2000-04-11 01:57:05 +09:00]] 版) - [15] [CITE@en[CSS3 module: W3C Selectors]] ([TIME[2000-10-06 02:05:50 +09:00]] 版) - [17] [CITE@en[CSS3 module: W3C Selectors]] ([TIME[2001-01-29 23:57:00 +09:00]] 版) ]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]] 版) ]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]] 版) ([[名無しさん]]) [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]] 版)) - [11] [CITE@en-GB-hixie[Web Controls 1.0]] ( ([TIME[2004-11-09 08:49:52 +09:00]] 版)) ]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]] 版) - [20] [CITE@en[Selectors Level 3]] ([TIME[2009-03-10 22:17:53 +09:00]] 版) - [21] [CITE@en[Selectors Level 3]] ([TIME[2009-12-15 08:41:18 +09:00]] 版) - [22] [CITE@en[Selectors Level 3]] ([TIME[2011-09-29 22:16:17 +09:00]] 版) - [6] [CITE@en[Selectors Level 3]] ([TIME[2011-09-29 22:16:17 +09:00]] 版) ]REFS] ** WF2 [REFS[ - [5] [CITE@en-GB-x-Hixie[Web Forms 2.0]] ]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 bars]] ( ([TIME[2011-05-05 17:36:00 +09:00]] 版)) - [23] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2011-11-12 00:22:26 +09:00]] 版) ]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]] 版) - [55] [CITE@en[Web Applications 1.0 r7910 Make :indeterminate match elements when there's no checked button in the group]] ([TIME[2013-06-06 05:55:00 +09:00]] 版) ]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]] 版) ]REFS] [46] [[選択子3]]から削除された [CODE(CSS)@en[[[:indeterminate]]]] ですが、改めて [[CSS3 UI]] に定義が追加されています。 >>28 の用途にも意味が拡張されています。 * 関連 [40] [CODE(DOMa)@en[[[indeterminate]]]] [[IDL属性]]が[[真]]の[[チェック箱]][[制御子]]は [CODE@en[[[aria-state]]]] 状態が [CODE[[[mixed]]]] に設定されます [SRC[>>39]]。