* label 要素 for 属性 (HTML, XHTML 1) [1] [[HTML]] の [CODE(HTMLe)[[[label]]]] 要素の [DFN[[CODE(HTMLa)[for]] 属性]]は、 [RUBY[名札][ラベル]]と組になる[[制御子]]を指定します。 [2] 仕様書: - [[HTML 4]] ([[Web Forms 1.0]]) -- [CODE(HTMLe)[label]] 要素 [CODE(HTMLa)[for]] 属性 -- [CITE[17.9.1 The [CODE(HTMLe)[LABEL]] element]] - [[Web Forms 2.0]] -- [CSECTION@en[2.18. Handling unexpected elements and values]] [[#comment]] ** 属性値 [3] この属性は [CODE(SGML)[[[IDREF]]]] です。 大文字・小文字は区別されます [SRC[HTML 4 17.9.1]] が、 それ以前に [[SGML]] 的に大文字化がなされます。 詳しくは[[噂の[CODE(SGML)[ID]]問題]]をご覧ください。 この [CODE(SGML)[ID]] は、同じ文書の[[制御子]]要素の [CODE(HTMLa)[[[id]]]] でなければなりません。 [4] この属性は省略可能です。 省略した場合は、その要素内にある制御子に関連付けられます [SRC[HTML 4 17.9.1]]。 [5] 定義上、 [CODE(HTMLe)[label]] は丁度1つの制御子と関連付けられなければなりませんから、 [CODE(HTMLa)[for]] 属性を指定しない場合には要素の子孫には丁度1つ制御子要素がなければなりません。 [CODE(HTMLa)[for]] 属性を指定する場合には、 要素の子孫に制御子要素があってはならないはずです (但し [CODE(HTMLa)[for]] 属性で指定された要素が子孫にあるという場合は、 定義に反しませんから問題ないと思われます)。 [[#comment]] ** フォーム [21] '''誤り処理 (非フォーム制御子)''' [[参照]]されているのが[[フォーム制御子]]でない場合、 [[利用者エージェント]]はこの[[属性]]を無視[['''しなければなりません''']]。 [CODE(DOMa)@en[[[htmlFor]]]] などではそのままの値が使われますが、 [CODE(DOMa)@en[[[control]]]] は [CODE(DOM)@en[[[null]]]] を返す値と[['''しなければなりません''']]。 [CODE(HTMLe)@en[[[label]]]] を[[活性化]]しても、 関連付けられた[[要素]]に[[焦点]]を送信[['''してはなりません''']]。 [SRC@en[WF2 2.18]] [22] '''空の属性値''' [CODE(HTMLa)@en[[[for]]]] [[属性]]がない場合のように処理[['''しなければなりません''']]。 [SRC@en[WF2 2.18]] [[#comment]] ** 関連 [6] 複数の [CODE(HTMLe)[label]] 要素が同じ [CODE(HTMLa)[for]] 属性を持っていても (同じ制御子を参照していても) 構いません [SRC[HTML 4 17.9.1]]。 ** メモ [[#comment]] * [CODE(HTMLe)[script]] 要素 [CODE(HTMLa)[for]] 属性 (HTML) [7] [[HTML]] の [CODE(HTMLe)[[[script]]]] 要素の [DFN[[CODE(HTMLa)[[[for]]]] 属性]]は、[[スクリプト]]が適用される[[事象]]の対象要素を指定します。 [8] 仕様書: -[[HTML 4]] -- [[厳密DTD]] -- [[移行用DTD]] ** 代替 [9] この属性は'''予約'''機能でしたが [SRC[HTML 4 DTD]]、 その後も正式な HTML の機能として取り入れられることはありませんでした。 代わりに [[XML事象]]で同じ機能が標準化されています。 [[#comment]] ** 属性値 [10] この属性の値は [CODE(SGML)[%[[URI]]]] です。 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。 [SRC[HTML 4 DTD]] [26] 実際には [[WinIE]] では [CODE(SGML)@en[[[IDREF]]]] として実装されており、[[HTML4]] は間違っています。 [11] この属性は省略可能です。 [SRC[HTML 4]] [27] [CODE(HTMLa)@en[[[event]]]] [[属性]]が指定されているときは実質的に [CODE(HTMLa)@en[[[for]]]] も必須になるのだと思いますが、省略されていたらどうなるのでしょうかね。 [[#comment]] ** 他との関係 [13] [CODE(HTMLa)[[[for]]]] 属性は常に [CODE(HTMLa)[[[event]]]] 属性と組で使います。 [15] この属性に対応する [CODE(DOMa)[[[htmlFor]]]] 属性が [[DOM水準1]] HTML および [[DOM水準2]] HTML で予約機能として [CODE(DOMi)[[[HTMLScriptElement]]]] 界面に定義されています。 [[#comment]] ** 実装 [14] この属性ははじめ [[WinIE]] が実装しました。 [[#comment]] ** メモ [12] HTML 4 DTD は ([[厳密DTD]] も[[移行用DTD]] も) [CODE(SGML)[%[[HTML.Reserved]]]] が [CODE(SGML)[[[IGNORE]]]] であってもこの属性を宣言しています。 HTML 4 仕様書のマーク付けされた DTD は [CODE(HTMLa)[for]] 属性を [CODE(HTMLe)[[[label]]]] 要素の [CODE(HTMLa)[for]] 属性にリンクしています。 しかし、属性型も意味も異なりますし、単なる間違いと思われます。 [[#comment]] * [CODE(HTMLe)@en[output]] 要素 [CODE(HTMLa)@en[for]] 属性 (HTML) [16] [[HTML]] の [CODE(HTMLe)@en[[[output]]]] [[要素]]の [DFN[[CODE(HTMLa)@en[[[for]]]] [[属性]]]]は、 [CODE(HTMLe)@en[[[output]]]] [[要素]]の値の源を指定します。 [17] 仕様書: - [[Web Forms 2.0]] -- [CSECTION@en[2.13. The [CODE(HTMLe)@en[[[output]]]] element]] ** 属性値 [18] [CODE(HTMLe)@en[[[output]]]] [[要素]]の[[値]]を制御する[[要素]]の[[識別子]]の[[間隔]]区切りの[[並び]]です。 [SRC@en[WF2 2.13]] [[#comment]] ** レンダリング [19] [[利用者エージェント]]は、この[[属性]]を、 [[値]]を変えたければ[[利用者]]がいじるべき部分を[[利用者]]に示すために使用[['''して構いません''']]。 [SRC@en[WF2 2.13]] [[#comment]] ** 例 [20] [SRC@en[WF2 2.13]] [PRE(HTML example code)[ ...

Your fax number is +1 650 555 1234.

...

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.

]PRE] この例では、 [CODE(HTMLe)@en[[[output]]]] [[要素]]内に [[FAX番号]]が示されており、 [CODE(HTMLa)@en[[[for]]]] [[属性]]はその [[FAX番号]]を変更するための方法が書かれた[[段落]]を指しています。 ;; なお、 [CODE(HTMLe)@en[[[em]]]] [[要素]]により[[国番号]]が[[強調]]されています。 [[#comment]] * メモ [23] [CITE@en[(X)HTML5 Tracking]] ([TIME[2009-10-20 21:59:42 +09:00]] 版) [24] [CITE[Bug 7851 – Some (perhaps all) scripts with a for="" attribute should be ignored]] ([TIME[2009-10-20 22:00:06 +09:00]] 版) [25] [CITE[IRC logs: freenode / #whatwg / 20091009]] ([TIME[2009-12-08 00:45:57 +09:00]] 版) [28] [CITE@en[HTML Speech Incubator Group Final Report]] ( ([TIME[2011-12-05 17:46:22 +09:00]] 版))