[2] HTML の
input 要素の
checked 属性は、
ボタンが入
であることを示します。
この属性は type 属性が
checkbox または radio
の時使えます。
[3] 仕様書:
[1] この属性は真偽値属性です。指定すれば真
(入
)、指定しなければ偽 (切
) です。
[4] 以前は、 type が radio
の時、同じ制御子名で checked な制御子が1つも無ければ、
最初のものが checked となるように規定されていましたが、
実装状況からその場合は未定義に変更されました。
詳しくは radio の説明をご覧ください。
[5] UA は、 type が checkbox や
radio でないときには、この属性を無視しなければなりません。
HTML 4 17.4
[17]
HTML 4 DTD の注釈 (参考) にも
for radio buttons and check boxes
と書かれています。
HTMLInputElement 界面 checked 属性 (DOM HTML)[7] DOM の
HTMLInputElement 界面の
checked 属性は、
HTML の
input 要素によるラジオ・ボタン制御子またはチェック箱制御子の選択状態を表します。
[8] 仕様書:
click event and input controls
<http://www.whatwg.org/specs/web-forms/current-work/#the-click>[9] この属性の型は boolean です。
true が選択されていることを、
false が選択されていないことを示します。
この属性の値は、 type が
radio または checkbox
の input 要素の場合、
その制御子の現在の選択状態を表します
(対話的利用者エージェントの場合)。
この属性を変更しても、 HTML
の checked 属性は変更されません。
DOM 水準 1, 2
[10] DOM の checked
属性も、 HTML の
checked 属性も、関係のない type
の制御子である場合にどう扱われるのかは明確に規定されていません。
[11] この属性は HTML
の input 要素の checked
属性に対応しますが、 HTML の
checked 属性と DOM
の checked 属性は切り離されています。
一方を変更しても、他方はもとのままです。
対話的利用者エージェントで利用者が選択状態を変更した時には、
DOM の checked
属性は変更されますが、 HTML
の checked 属性は変更されません。
それに対して、同じ HTMLInputElement
界面で定義されている defaultChecked 属性は、
HTML の
checked 属性と連動しています。
HTMLInputElement.defaultCheckedHTMLInputElement.getAttributeNS (null, 'checked')
などで得られる属性節の値の2種類に分けられます。
[13] 普通視覚UA はラジオ・
ボタン制御子やチェック箱制御子がかちっされると選択状態を変更しますが、
その際に、 click 事象が発生する前に
checked を変えるか、後に変えるかという問題があります。
事象の取消しのことを考えると後から変える方が適当に思えるかもしれませんが、
前者なら文章入力制御子における change 事象
(変更が終わった後に発生) と value
属性の関係に近くなりますから、一概に悪いとも言えません。
[12] DOM 水準 2 HTML は、次のように述べています。
type属性の値がradioかcheckboxのinput要素でのかちっ事象の扱いに関して、 実装によってはこの特性 (checked属性) が、事象が文書に発射する前に変更されるかもしれません。 事象の既定動作が取消されたら、特性は元の値に戻されるかもしれません。 つまり、かちっ事象を扱う間のこの特性の値は実装依存ということです。
[14] DOM 水準 3 事象 の 1.7.7.1 には、 次のように書かれています。
実装は、事象を発射する前にこれに反応し、 表示および DOM 木に変更を行うことができます。 そのような場合、 DOM 属性が事象の発される以前に変更されたなら、 その装置事象型を取消すとその変更も戻されることとなります。 その良い例が
HTMLInputElement.属性です。 DOM 水準 2 HTML で説明されているように、 この特性の値は事象の発射の前に変更して構いません。 利用者がラジオ・ボタンをかちっすると、 ラジオ・ボタンは表示上チェックされ (またはチェックがはずされ)、checkedHTMLInputElement.属性も同じように変更され、それから装置事象型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またはcheckboxのinput要素で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] 選択子仕様上は適用対象となる要素が明確に規定されていません。例として HTML4
の checked 属性や selected 属性を持つ要素が示されています
>>24。
[41] HTML 仕様によれば次の要素が一致します >>38。
[30] >>34, >>36, >>37 では 'user-input' との関係も定義されていました。
しかし >>37 の次の CR では削除されています。
:checked は以前は :selected と呼ばれていたという記述があります。[32] :checked と :unchecked (と
:indeterminate) をWebアプリケーションから自由に設定できるようにする構想がありました。
[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>
command要素でした。