<input checked>
対<input checked="checked">
どちらも機能しているようです。w3schoolsでは、最初の構文が存在します。
はい。これは有効です。
ブール属性には、値を付ける必要はありません。単に存在するということは、「真実」を意味します。
値を持つ必要性は、この構文が合法ではない XML/XHTML から来ていますが、それらの場合でも、値は準拠している仕様によって異なりますが、単に存在することは「真」を意味します (ただし、現在の whatwg 仕様ではそれが言われてtrue
おり、false
は有効な値ではありません)。
whatwg の現在の HTML 標準では、ブール属性について次のように述べられています。
多くの属性はブール属性です。要素にブール属性が存在する場合は真の値を表し、属性が存在しない場合は偽の値を表します。
W3 HTML 5 は基本的に、値は属性名自体の小文字の ASCII 値である必要があると述べています。
属性が存在する場合、その値は空の文字列か、大文字と小文字を区別せずに属性の正規名に一致し、先頭または末尾に空白がない値である必要があります。
これは、HTML 4.01 仕様にも反映されています。
ブール属性は、正当に単一の値、つまり属性自体の名前を取ることができます (例: selected="selected")。
(最後の 2 つのリンクについては、Jukka K. Korpela に感謝します)。