可訪問性 標籤
為什麼
標籤對於盲人使用者、低視力使用者、行動不便使用者以及有記憶障礙的使用者都至關重要。缺少標籤將導致許多使用者無法訪問表單。
什麼
視覺標籤是位於表單控制元件附近的文字,用於描述哪些資訊屬於給定的表單欄位或一組欄位。每個標籤必須以程式設計方式與表單控制元件或控制元件組關聯。標籤不一定是 <label> 元素。
如何操作
你將學習如何使用 <label>、aria-label 和 <legend>。
The <label>
<label> 標籤定義了多個元素的標籤,例如 <input>、<select> 和 <textarea>。
在這個 Vodafone 的示例中,我們有一個 <select> 和一個 <input type="email">,每個都帶有一個描述性的 <label>
<label for="customerType">今天你是為誰購買?</label>
<select name="customerType" id="customerType">
請注意上面示例中 <label> 元素的使用。
<label> 元素對螢幕閱讀器使用者很有用,因為當用戶將焦點放在輸入元素上時,螢幕閱讀器會朗讀標籤。
<label> 元素還有助於那些難以點選很小區域(如單選按鈕或複選框)的使用者——因為當用戶點選 <label> 元素內的文字時,它會切換單選按鈕或複選框。
<label> 標籤的 for 屬性應等於 <input> 元素的 id 屬性,以便將它們繫結在一起。
必填欄位
表單標籤通常包含“*”或“required”字樣,以指示該欄位是必填的。這兩種方法都可以。但是,如果你使用星號(*),建議將 required 和 aria-required="true" 新增到表單控制元件中。
<label for="email">你的電子郵件地址 *</label>
<input id="email" name="email" required aria-required="true" placeholder="Email" required="">
The aria-label
沒有視覺標籤的欄位仍然需要標籤。如果無法使用 <label>,一種選擇是使用 aria-label。
此搜尋欄位有佔位符,但沒有標籤。佔位符不是有效的可訪問名稱。你不能依賴它作為替代。一個簡單的解決方案是新增 aria-label="Enter search term"
<input placeholder="Enter search term" aria-label="Enter search term">
The <legend>
表單控制元件組,如複選框和單選按鈕,通常除了 <label> 之外,還需要更高級別的“標籤”。這個高級別的“標籤”是用 <fieldset> 和 <legend> 建立的。
此登錄檔單包含三個用於提供出生日期的表單控制元件。視覺上,讓日、月、年都與“你的出生日期”相關是合理的。對於螢幕閱讀器使用者來說,這種關聯並不明顯。我們不能在這裡使用 <label>。標籤是日、月、年。解決方案是新增一個 <fieldset> 和一個 <legend>
<fieldset>
<legend>你的出生日期</legend>
<label for="dobDay">日</label>
<select id="dobDay">…</select>
<label for="dobMonth">月</label>
<select id="dobMonth">…</select>
<label for="dobYear">年</label>
<input id="dobYear" type="text" placeholder="YYYY">
</fieldset>
想製作高效的表單?瞭解 autocomplete。