Skip to content

HTML 欄位說明 label:for 與巢狀寫法

HTML 欄位說明 label:與表單控制項的關聯

<label> 可以用來做 表單 元素的說明,且可加強使用體驗。就規格而言它不是必要的元素,但為了無障礙與操作體驗,每個表單欄位都建議配上一個 label。寫法有兩種:for 對應欄位的 id,或直接把欄位包在裡面。

屬性

for

將此屬性的值設定為某表單元素的 id 值,可以擴大點擊區域。也就是說,點擊 <label> 的說明區域,等同於點擊表單元素。

若不想使用 nameid 相互配合,亦可使用標籤巢狀包覆的方式來達成此效果。

兩種寫法

html
<!-- 用 for 對應欄位的 id -->
<label for="account">帳號</label>
<input type="text" id="account" name="account">

<!-- 直接包覆,不必給 id -->
<label>
  帳號
  <input type="text" name="account">
</label>

for 對應的是欄位的 id不是 name。用 for 時版面配置比較自由,是較通用的做法。

小提醒

placeholder 不能取代 <label>。使用者開始輸入後提示就消失了,螢幕閱讀器對它的支援也不一致。

常見問題

label 的 for 要對應欄位的什麼?

對應欄位的 id,不是 name。兩者一致時,點擊說明文字就等同點擊該欄位,核取方塊與單選按鈕特別受用。

for 和巢狀包覆該用哪一種?

兩種都有效。用 for 時版面配置比較自由,是較通用的做法;巢狀包覆不必給 id,適合結構單純的欄位。同時使用時,for 要指向被包住的那個欄位。

沒有 label 會怎樣?

螢幕閱讀器讀到那格時只會說是一個輸入框,卻說不出要填什麼。這是無障礙檢測中最常見的錯誤之一,表單欄位請一律配上 <label>

延伸閱讀