checked

checked

input 要素 checked 属性 (HTML, XHTML 1)

[2] HTMLinput 要素の checked 属性は、 ボタンがであることを示します。

この属性は type 属性が checkbox または radio の時使えます。

[3] 仕様書:

属性値

[1] この属性は真偽値属性です。指定すれば ()、指定しなければ () です。

[4] 以前は、 typeradio の時、同じ制御子名checked な制御子が1つも無ければ、 最初のものが checked となるように規定されていましたが、 実装状況からその場合は未定義に変更されました。 詳しくは radio の説明をご覧ください。

UA による利用

[5] UA は、 typecheckboxradio でないときには、この属性を無視しなければなりません。 HTML 4 17.4

[17] HTML 4 DTD の注釈 (参考) にも for radio buttons and check boxes と書かれています。

メモ

[6] この属性とボタンの状態の関係については、 checkboxradio の説明もご覧ください。

HTMLInputElement 界面 checked 属性 (DOM HTML)

[7] DOMHTMLInputElement 界面の checked 属性は、 HTMLinput 要素によるラジオ・ボタン制御子またはチェック箱制御子の選択状態を表します。

[8] 仕様書:

属性値

[9] この属性の型は boolean です。 true が選択されていることを、 false が選択されていないことを示します。

この属性の値は、 typeradio または checkboxinput 要素の場合、 その制御子の現在の選択状態を表します (対話的利用者エージェントの場合)。 この属性を変更しても、 HTMLchecked 属性は変更されません。 DOM 水準 1, 2

[10] DOMchecked 属性も、 HTMLchecked 属性も、関係のない type の制御子である場合にどう扱われるのかは明確に規定されていません。

他との関係

[11] この属性は HTMLinput 要素の checked 属性に対応しますが、 HTMLchecked 属性と DOMchecked 属性は切り離されています。 一方を変更しても、他方はもとのままです。 対話的利用者エージェント利用者が選択状態を変更した時には、 DOMchecked 属性は変更されますが、 HTMLchecked 属性は変更されません。

それに対して、同じ HTMLInputElement 界面で定義されている defaultChecked 属性は、 HTMLchecked 属性と連動しています。

まとめると、 checked 属性関係の DOMの値は、

の2種類に分けられます。

事象発生の時機

[13] 普通視覚UA はラジオ・ ボタン制御子やチェック箱制御子がかちっされると選択状態を変更しますが、 その際に、 click 事象が発生する前に checked を変えるか、後に変えるかという問題があります。

事象の取消しのことを考えると後から変える方が適当に思えるかもしれませんが、 前者なら文章入力制御子における change 事象 (変更が終わった後に発生)value 属性の関係に近くなりますから、一概に悪いとも言えません。

[12] DOM 水準 2 HTML は、次のように述べています。

type 属性の値が radiocheckboxinput 要素でのかちっ事象の扱いに関して、 実装によってはこの特性 (checked 属性) が、事象が文書に発射する前に変更されるかもしれません。 事象の既定動作が取消されたら、特性は元の値に戻されるかもしれません。 つまり、かちっ事象を扱う間のこの特性の値は実装依存ということです。

[14] DOM 水準 3 事象 の 1.7.7.1 には、 次のように書かれています。

実装は、事象を発射する前にこれに反応し、 表示および DOM 木に変更を行うことができます。 そのような場合、 DOM 属性が事象の発される以前に変更されたなら、 その装置事象型を取消すとその変更も戻されることとなります。 その良い例が HTMLInputElement.checked 属性です。 DOM 水準 2 HTML で説明されているように、 この特性の値は事象の発射の前に変更して構いません。 利用者がラジオ・ボタンをかちっすると、 ラジオ・ボタンは表示上チェックされ (またはチェックがはずされ)、 HTMLInputElement.checked 属性も同じように変更され、それから装置事象型 {<http://www.w3.org/2001/xml-events>, click} が発射されます。この装置事象型の既定動作が取消されれば、あるいは {<http://www.w3.org/2001/xml-events>, DOMActivate} 事象型に付された既定動作が取り消されれば、 HTMLInputElement.checked 特性は元の値に戻す必要があります。

[15] Web Forms 2.0 の2004年12月10日の原案には、 次のように書かれています。

type 属性の値が radio または checkboxinput 要素で click 事象を扱う際は、利用者エージェントは、 事象を文書に発射する前に影響を受ける要素の checked 特性の値を変更しなければなりません。 この場合の click 事象の既定動作は DOMActivate 事象を発することであり、 DOMActivate 事象の既定動作は (活性化が値を変更するとして) change 事象を発することです。これらの事象のいずれかの既定動作が取消されたなら、 変更された特性の値は元の値に戻されます。

これは、この動作が任意選択であった DOM 2 HTML からの変更です。

[16] 手元のブラウザで試してみました。 Firefox 0.9, Netscape Navigator 4.78 (Windows 版), WinIE 6 (Windows XP SP2) のいずれも、 click 中は checked が新しい値になっていました。 Firefox 以外は change 事象は発生しませんでした。 3つとも DOMActivate 事象は発生しませんでした。 (名無しさん 2004-12-18 04:57:42 +00:00)

:checked 擬似クラス

[23] :checked 擬似クラスチェックされている要素を表します。

仕様書

意味

[25] 利用者が状態を切り替えられるラジオ・ボタンチェック箱メニュー項目などにおいて、 「入り」状態になっている時、この擬似クラスが適用されます。 >>24

媒体

[26] チェックされたかどうかの状態は対話的なものではありますが、属性によって初期状態を指定することもできることから、 この擬似クラス自体はすべての媒体に適用されます。 >>24

適用対象

[27] 選択子仕様上は適用対象となる要素が明確に規定されていません。例として HTML4checked 属性selected 属性を持つ要素が示されています >>24

HTML

[41] HTML 仕様によれば次の要素一致します >>38

[51] >>50 以前は >>45>>46command 要素でした。

XForms

[47] XForms でも利用できてよさそうなものですが、 XForms 仕様上言及がありません。

歴史

選択子3

[30] >>34, >>36, >>37 では 'user-input' との関係も定義されていました。 しかし >>37 の次の CR では削除されています。

[35] <http://www.w3.org/TR/2000/WD-css3-selectors-20000410#selection> には、 :checked は以前は :selected と呼ばれていたという記述があります。

[48] 定義が選択子3に移った後の CSS3 UI は単に選択子3へのリンクだけになっています。

Web Controls 1.0

[32] :checked:unchecked (と :indeterminate) をWebアプリケーションから自由に設定できるようにする構想がありました。

HTML

[40] HTML に関してははじめ Web Forms 2.0 で、後に HTML Living Standard (Web Applications 1.0) で規定されています。

[52] 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. ( ( 版)) <http://html5.org/r/2778>

[18] Remove the context menu feature (domenic著, ) <https://github.com/whatwg/html/commit/e7e8c88ecdd7cdc96171f05ab6fe23b56dd48d8a>