ARIA:表單角色
form 角色可用於識別頁面上的一組元素,這些元素提供與 HTML 表單等效的功能。除非表單具有可訪問名稱,否則表單不會作為地標區域顯示。
<div role="form" id="contact-info" aria-label="Contact information">
<!-- form content -->
</div>
這是一個收集並儲存使用者聯絡資訊的表單。
警告:使用 HTML <form> 元素包含您的表單控制元件,而不是 ARIA form 角色,除非您有充分的理由。HTML <form> 元素足以告訴輔助技術存在表單。
描述
form 地標 標識內容區域,該區域包含專案和物件的集合,這些專案和物件作為一個整體組合在一起,在沒有其他命名地標合適的情況下(例如 main 或 search)建立表單。
注意:使用 <form> 元素會自動將內容部分作為 form 地標進行通訊,如果它提供了可訪問名稱。開發人員應始終優先使用正確的語義 HTML 元素,而不是使用 ARIA。
如果可能,請使用 HTML <form> 元素。<form> 元素在具有可訪問名稱(例如 aria-labelledby、aria-label 或 title)時定義 form 地標。確保文件中的每個表單都有一個唯一的標籤,以幫助使用者瞭解表單的目的。此標籤應向所有使用者可見,而不僅僅是輔助技術使用者。當表單用於搜尋功能時,請使用 search 地標而不是 form 地標。
使用 role="form" 標識頁面區域;不要使用它來標識每個表單欄位。即使您使用表單地標而不是 <form>,也建議您使用原生 HTML 表單控制元件,如 <button>、<input>、<select> 和 <textarea>。
關聯的 WAI-ARIA 角色、狀態和屬性
無角色特定狀態或屬性。
鍵盤互動
無角色特定鍵盤互動
必需的 JavaScript 功能
示例
<div role="form" id="send-comment" aria-label="Add a comment">
<label for="username">Username</label>
<input
id="username"
name="username"
autocomplete="nickname"
autocorrect="off"
type="text" />
<label for="email">Email</label>
<input
id="email"
name="email"
autocomplete="email"
autocapitalize="off"
autocorrect="off"
spellcheck="false"
type="text" />
<label for="comment">Comment</label>
<textarea id="comment" name="comment"></textarea>
<input value="Comment" type="submit" />
</div>
建議使用 <form>。
<form id="send-comment" aria-label="Add a comment">…</form>
無障礙問題
謹慎使用
地標角色 用於識別文件中較大的整體部分。使用過多的地標角色可能會在螢幕閱讀器中產生“噪音”,從而難以理解頁面的整體佈局。
輸入不是表單
搜尋
如果表單用於搜尋,則應使用更專業的 role="search" 值。
標記地標
每個需要作為地標顯示的 <form> 元素和表單 role 必須具有可訪問名稱。此名稱將允許輔助技術使用者能夠快速瞭解表單地標的目的。
在賦予 role="form" 的同一元素上使用 aria-labelledby、aria-label 或 title 為其提供可訪問名稱。
使用 role="form"
<div role="form" id="gift-cards" aria-label="Purchase a gift card">
<!-- form content -->
</div>
冗餘描述
螢幕閱讀器會宣佈地標的角色型別。因此,您無需在地標的標籤中描述地標是什麼。例如,role="form" 以及 aria-label="Contact form" 的宣告可能會被冗餘地宣佈為“聯絡表單表單”。
最佳實踐
優先使用 HTML
使用 <form> 元素會自動傳達一個部分具有 form 的角色。如果可能,請優先使用它。
規範
| 規範 |
|---|
| 可訪問的富網際網路應用程式 (WAI-ARIA) # 表單 |
| 未知規範 |