HyperText Markup Language label element.
label要素は、フォーム・コントロールのキャプションを表します。label要素を使って関連付けることができる要素は、button要素、input要素、meter要素、output要素、progress要素、select要素、textarea要素です。
label要素のマークアップ例
<p>
<label><input type="radio" name="gender" value="1"> 男性</label>
<label><input type="radio" name="gender" value="2"> 女性</label>
</p>
label要素のマークアップ例のサンプル
このように、label要素の中に、フォーム・コントロールを表す input要素とそのキャプションを表すテキストを入れることで、それらが関連付けられることをセマンティクスとして表すことができます。
ただし、label要素の中に入れたキャプションとは関係がないフォーム・コントロールを、その label要素の中に入れてはいけません。基本的には、label要素の中にフォーム・コントロールを入れる場合は、ラベル付け可能なフォーム関連要素を1つ、そして、それに関連付くキャプションを入れなければいけません。
label要素はセマンティクス上の役割だけではなく、実際のフォーム・コントロールのユーザビリティにも影響します。もし label要素を使わなければ、マウスでチェックを入れるためには、そのラジオボタンの上にマウス・ポインターを移動してからクリックしなければいけません。しかし、label要素でキャプションが関連付けられていれば、そのキャプション上でクリックしても、ラジオボタンにチェックを入れることができます。
ただし、この挙動について、HTML5仕様では、ブラウザはプラットフォーム(OSやデバイス)の慣例に従うべきとしています。そのため、プラットフォーム環境が変われば、その挙動は違ってくるかもしれません。
-
for属性は、フォーム・コントロールを表す要素の id属性を指定して、label要素を、そのフォーム・コントロールと関連付けるために使います。これは、label要素の中にフォーム・コントロールを表す input要素などを入れない場合に使います。
例えば、前述のマークアップは、for属性を使って、次のようにマークアップすることもできます。
for属性のマークアップ例
<p>
<input type="radio" name="gender" value="1" id="gender1"> <label for="gender1">男性</label>
<input type="radio" name="gender" value="2" id="gender2"> <label for="gender2">女性</label>
</p>
for属性のマークアップ例のサンプル