label要素
要素名 | バージョン | 開始タグ | 終了タグ | 分類/親 | 中身 |
---|---|---|---|---|---|
label | 4.0, X1.0, X1.1 | 必須 | 必須 | %formctrl; | (%inline;)* -(label) |
属性名 | バージョン | 属性値 | 既定値 | 備考 |
---|---|---|---|---|
for | 4.0, X1.0, X1.1 | IDREF | #IMPLIED | matches field ID value |
accesskey | 4.0, X1.0, X1.1 | %Character; | #IMPLIED | accessibility key character |
onfocus | 4.0, X1.0, X1.1 | %Script; | #IMPLIED | the element got the focus |
onblur | 4.0, X1.0, X1.1 | %Script; | #IMPLIED | the element lost the focus |
共通属性 …… %coreattrs;, %i18n;, %events;
labelの解説
label要素を使うと、文字列をコントロールに関連づけることができます。
押しボタンなどは value属性の値がラベルとしてボタン表面に表示されますが、文字入力欄などはラベルを持ちません。特に非視覚系の環境では、その入力欄が何を意味するのか判別するのは困難です。そのような場合、label要素でラベルとなる文字列をコントロールと関連づけておけば、コントロールが何なのかを判別する助けになります。
また、視覚系のブラウザを使っている場合でも、小さなラジオボタンやチェックボックスを正確にポイントしてクリックするのはなかなか骨の折れる作業です。ラベルが付いていると、ラベルをクリックするだけで選択できるようになりますので、クリックするのが非常に楽になります。
ラベルとコントロールを関連づける方法は二通りあります。
一つは for属性を使う方法です。コントロールにあらかじめ id属性を指定しておき、対応する labelの for属性にその ID を指定します。たとえば以下のようにします。
<input type="checkbox" name="option" id="option1" value="1">
<label for="option1">URL をリンクにする</label>
もう一つは、一つの label要素 の中にラベルとコントロールを入れてしまう方法です。その時、label要素内には一つのコントロールしか入れられません。そのコントロールと、label要素内のテキストとが関連づけられます。
<label>
<input type="checkbox" name="option" value="1">
URL をリンクにする
</label>
なぜか MSIE は前者にしか対応していなかったりしますので、前者の方がお勧めです。
label要素には accesskey属性を指定することができます。これによってフォーカスを受け取ったラベルは、対応するコントロールにフォーカスを渡します。
※……ということになっているのですが、Mac IE などではラベル自体が単独でフォーカスを持ってしまったりしてうまく動作しなかったりします。これはバグ以外のなにものでもないのですが、非常に残念な感じです。
- 「label要素」にコメントを書く