[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.defaultChecked
HTMLInputElement.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 で説明されているように、 この特性の値は事象の発射の前に変更して構いません。 利用者がラジオ・ボタンをかちっすると、 ラジオ・ボタンは表示上チェックされ (またはチェックがはずされ)、checked
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
または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。
[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
要素でした。