こんにちは。齋藤(@wtoddev)です。
今回は、最近業務でフォームのマークアップをする機会があり、改めてlabel
要素の重要性を考えさせられたため、記事投稿キャンペーン「アクセシビリティの知見を発信しよう!」に参加して備忘録を記したいと思います。
そもそもlabel
要素とは
label
タグは、主にフォームの項目について、ユーザーに対して入力する内容を説明するキャプションを示すために使われるHTMLの要素です。
<div>
<input type="checkbox" id="agreement" name="agreement" />
<label for="agreement">利用規約に同意する</label>
</div>
label
要素は通常、input
やtextarea
などのフォーム要素と組み合わせて利用されます。
その際、label
タグのfor
属性にinput
タグなどのid
を指定すると紐づけができます。
label
タグを使用してマークアップすると何が良いのか
フォーム内の項目のキャプションを示すためにlabel
タグを使用すると、アクセシビリティの観点では以下のような利点があります。
input
要素などにフォーカスするとスクリーンリーダーがキャプションを読み上げてくれる
画像のような場合、キャプション部分をlabel
タグを用いてマークアップし、for
属性を用いてinput
要素などと紐づけることにより、チェックボックス部分にフォーカスすると、スクリーンリーダーがlabel
要素に記述したキャプションを読み上げてくれます。
このことにより、視覚にハンディキャップのあるユーザーが入力項目を理解しやすくすることができます。
クリック可能領域が拡大して入力しやすくなる
画像のような場合、for
属性を使用してinput
要素とlabel
要素を紐づけることにより、チェックボックス部分だけではなく、「利用規約に同意する」の部分もクリック可能領域になります。
このことにより、チェックボックスの操作をしやすくでき、特にタッチデバイスを使用する場合や、精密なマウス操作が難しい場合の利便性を向上させることが可能になります。
ID = log_2(\frac{2D}{W})
目標が小さければ小さいほどユーザーはその目標への到達が困難になってしまう(フィッツの法則1)ため、クリック可能領域を十分に確保することはユーザー体験の向上にも資することになります。
さいごに
今回は、キホンのキかつn番煎じな内容ではありますが、フォームのマークアップをするうえで意識しておきたい label
要素についてお話しました。
フォームをマークアップする方の一助となれば幸いです。
-
UIにおけるユーザーの動作をモデル化したもの。目標に到達する時間は、目標の大きさと近さに反比例するという法則(ID = 目標到達の困難さ / W = 動きの方向に測った目標の幅 / D = 開始点から目標の中心までの距離) ↩