回答:
<label>
タグには、ラベルをクリックすることができ、そしてそれは、関連する入力要素をクリックすると同じように扱われます。この関連付けを作成するには、2つの方法があります。
1つの方法は、入力要素の周りにラベル要素をラップすることです。
<label>Input here:
<input type='text' name='theinput' id='theinput'>
</label>
もう1つの方法は、for
属性を使用して、関連付けられた入力のIDを指定することです。
<label for="theinput">Input here:</label>
<input type='text' name='whatever' id='theinput'>
これは、ボックス自体を押す必要がなく、関連するテキストをクリックすることでボックスをチェックできることを意味するため、チェックボックスとボタンを使用する場合に特に便利です。
この要素の詳細については、MDNをご覧ください。
select
のみ関連付けられているラベルをクリックすると、オプションが展開されるのではなく、選択にフォーカスが置かれます。
このfor
属性label
は、HTML 4.01仕様の説明で定義されているように、ラベルをコントロール要素に関連付けます。これは、とりわけ、label
要素が(たとえば、クリックされることによって)フォーカスを受け取ったときに、その要素に関連付けられたコントロールにフォーカスを渡すことを意味します。ラベルとコントロール間の関連付けは、音声ベースのユーザーエージェントでも使用できます。これにより、コントロールを処理するときに、関連付けられたラベルが何であるかをユーザーが確認できるようになります。(関連付けは、視覚的なレンダリングほど明白ではない場合があります。)
質問の最初の例(なしfor
)では、label
マークアップを使用しても論理的または機能的な影響はありません。CSSまたはJavaScript でマークアップを使用しない限り、マークアップは役に立ちません。
HTML仕様では、ラベルをコントロールに関連付ける必要はありませんが、Webコンテンツアクセシビリティガイドライン(WCAG)2.0では必須です。これは、技術的なドキュメントに記述されているフォームのコントロールに関連付けるテキストラベルにラベル要素を使用して:H44、また、(例えばネストすることにより、暗黙的な関連性と説明してinput
内部がlabel
)として広く明示経由協会としてサポートされていないfor
とid
、属性
一言で言えば、それはid
入力のを参照することです、それだけです:
<label for="the-id-of-the-input">Input here:</label>
<input type="text" name="the-name-of-input" id="the-id-of-the-input">
<label>
タグのfor属性は、それらを一緒にバインドするために、関連する要素のid属性と等しい必要があります。
for属性は、このラベルが関連する入力フィールド、またはチェックボックスまたはラジオボタン、またはそれに関連付けられた他のデータ入力フィールドを表すことを示します。例えば
<li>
<label>{translate:blindcopy}</label>
<a class="" href="#" title="{translate:savetemplate}" onclick="" ><i class="fa fa-list" class="button" ></i></a>  
<input type="text" id="BlindCopy" name="BlindCopy" class="splitblindcopy" />
</li>
これは、for
属性のパラメーターであるすべての入力にラベルを付けます。
<input id='myInput' type='radio'>
<label for='myInput'>My 1st Radio Label</label>
<br>
<input id='input2' type='radio'>
<label for='input2'>My 2nd Radio Label</label>
<br>
<input id='input3' type='radio'>
<label for='input3'>My 3rd Radio Label</label>