htmlFor

for 属性 (HTML)

[30] for 属性は、 適用対象となる要素識別子を指定するものです。

label 要素
フォーム制御子に対するラベルを指定します。 識別子を1つだけ指定できます。
output 要素
出力の元となる要素を指定します。 識別子はいくつでも指定できます。
script 要素
イベント対象を指定するものとして、 かつて IE が実装していました。現在は廃止されています。

仕様書

label 要素 for 属性 (HTML, XHTML 1)

[1] HTMLlabel 要素の for 属性は、 名札 (ラベル) と組になる制御子を指定します。

[2] 仕様書:

属性値

[3] この属性は IDREF です。 大文字・小文字は区別されます HTML 4 17.9.1 が、 それ以前に SGML 的に大文字化がなされます。 詳しくは噂のID問題をご覧ください。

この ID は、同じ文書の制御子要素の id でなければなりません。

[4] この属性は省略可能です。 省略した場合は、その要素内にある制御子に関連付けられます HTML 4 17.9.1

[5] 定義上、 label は丁度1つの制御子と関連付けられなければなりませんから、 for 属性を指定しない場合には要素の子孫には丁度1つ制御子要素がなければなりません。 for 属性を指定する場合には、 要素の子孫に制御子要素があってはならないはずです (但し for 属性で指定された要素が子孫にあるという場合は、 定義に反しませんから問題ないと思われます)。

フォーム

[21] 誤り処理 (非フォーム制御子)

参照されているのがフォーム制御子でない場合、 利用者エージェントはこの属性を無視しなければなりませんhtmlFor などではそのままの値が使われますが、 controlnull を返す値としなければなりませんlabel活性化しても、 関連付けられた要素焦点を送信してはなりませんWF2 2.18

[22] 空の属性値

for 属性がない場合のように処理しなければなりませんWF2 2.18

関連

[6] 複数の label 要素が同じ for 属性を持っていても (同じ制御子を参照していても) 構いません HTML 4 17.9.1

output 要素 for 属性 (HTML)

[16] HTMLoutput 要素for 属性は、 output 要素の値の源を指定します。

[17] 仕様書:

属性値

[18] output 要素を制御する要素識別子間隔区切りの並びです。 WF2 2.13

レンダリング

[19] 利用者エージェントは、この属性を、 を変えたければ利用者がいじるべき部分を利用者に示すために使用して構いませんWF2 2.13

[20] WF2 2.13

...
<p>Your fax number is <output for="fax"><em>+1</em> 650 555 1234</output>.</p>
...
<p id="fax">To change your fax number, you must send us a fax
from your new number with a signed request that your fax number
details be changed. We will then call you to confirm the
change.</p>

この例では、 output 要素内に FAX番号が示されており、 for 属性はその FAX番号を変更するための方法が書かれた段落を指しています。

なお、 em 要素により国番号強調されています。

歴史

[36] IDL属性は、当時の W3C DOM の方針で主要なプログラミング言語予約語との衝突を避けるようにしていたため、 内容属性とは異なる htmlFor という名前にしたと思われます。 (IE4 DOM 時代に既にあったのかどうかは不明。)

script 要素 for 属性 (HTML)

[7] HTMLscript 要素の for 属性は、スクリプトが適用される事象の対象要素を指定します。

代替

[9] この属性は予約機能でしたが HTML 4 DTD、 その後も正式な HTML の機能として取り入れられることはありませんでした。 代わりに XML事象で同じ機能が標準化されています。

属性値

[10] この属性の値は %URI です。 SGML 的には CDATA です。 HTML 4 DTD

[26] 実際には WinIE では IDREF として実装されており、HTML4 は間違っています。

[11] この属性は省略可能です。 HTML 4

[27] event 属性が指定されているときは実質的に for も必須になるのだと思いますが、省略されていたらどうなるのでしょうかね。

処理

[32] スクリプトの準備を参照。

HTMLScriptElement インターフェイス htmlFor 属性

[33] HTMLScriptElement インターフェイスhtmlFor IDL属性は、 for 内容属性文字列として反映しなければなりません >>35

[34] このIDL属性廃止状態にあります >>35。 しかし利用者エージェントは互換性のために実装しなければなりません。

関連

[13] for 属性は常に event 属性と組で使います。

[15] この属性に対応する htmlFor 属性が DOM水準1 HTML および DOM水準2 HTML で予約機能として HTMLScriptElement 界面に定義されています。

歴史

IE

[14] この属性ははじめ WinIE が実装しました。

HTML4

[8] 仕様書:

[12] HTML 4 DTD は (厳密DTD移行用DTD も) %HTML.ReservedIGNORE であってもこの属性を宣言しています。

HTML 4 仕様書のマーク付けされた DTD は for 属性を label 要素の for 属性にリンクしています。 しかし、属性型も意味も異なりますし、単なる間違いと思われます。

HTML5

[38] HTML5 で正式に廃止されました >>37

[23] (X)HTML5 Tracking Make <script for> block script execution. ( 版) <http://html5.org/tools/web-apps-tracker?from=4202&to=4203>

[24] Bug 7851 – Some (perhaps all) scripts with a for="" attribute should be ignored ( 版) <http://www.w3.org/Bugs/Public/show_bug.cgi?id=7851>

[25] IRC logs: freenode / #whatwg / 20091009 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20091009#l-210>

[29] Fixes #253: Make script element IDL attributes reflect content attrib… · whatwg/html@6c635b1 ( 版) <https://github.com/whatwg/html/commit/6c635b1ca71ab6b12d1e3ad2438457778554eabd>

メモ

[28] HTML Speech Incubator Group Final Report ( ( 版)) <http://www.w3.org/2005/Incubator/htmlspeech/XGR-htmlspeech-20111206/#dfn-htmlFor>

[31] Adding [SameObject] to DOMTokenLists · whatwg/html@ec1dc4d ( 版) <https://github.com/whatwg/html/commit/ec1dc4d4571c61cf0c0dfe3e562898635886b412>

[39] Make forms work in shadow trees ( (annevk著, )) <https://github.com/whatwg/html/commit/927fda0f305452a9c54a25d3ebf9a6ed5ae29fd3>

[40] Remove <keygen> (domenic著, ) <https://github.com/whatwg/html/commit/5baa38720f6e83c94a50018c4565808ad548d69c>

[41] Tweak [CEReactions] definition and usage (domenic著, ) <https://github.com/whatwg/html/commit/c422734d44ae9897c1700daf08bd415e0dc5f9e1>