可訪問名稱
可訪問名稱是使用者介面元素的名稱;它是與 HTML 元素關聯的文字,為輔助技術使用者提供了元素的標籤。
可訪問名稱傳達了元素的用途或意圖。這有助於使用者理解元素的作用以及他們如何與它互動。通常,元素的可訪問名稱在頁面上應該是唯一的。這有助於使用者區分一個元素與另一個元素,並幫助使用者識別他們想要互動的元素。
根據元素和 HTML 標記,可訪問名稱的值可能來源於可見內容(例如,<figcaption> 中的文字)或不可見內容(例如,在元素上設定的 aria-label 屬性),或兩者的組合。元素的可訪問名稱是如何確定的,是基於可訪問名稱計算,這對於不同的元素是不同的。
最好使用可見文字作為可訪問名稱。許多元素,包括<a>、<td>和<button>,可以從其內容獲取可訪問名稱。例如,給定<a href="foo.html">Bar</a>,此超連結的可訪問名稱是“Bar”。
其他元素從關聯元素的內容中獲取其可訪問名稱。例如,當<fieldset>或<table>元素分別包含後代<legend>或<caption>元素時,提供父元素可訪問名稱的巢狀元素的關聯是自動的。對於像<textarea>和<input>這樣的表單元素,可訪問名稱來自關聯的<label>元素。需要透過設定<label>元素的for屬性來匹配表單元素的id來明確定義關聯。或者,當表單控制元件直接巢狀在<label>元素中時,會建立一個隱式關聯。
對於某些元素,可訪問名稱來自元素的屬性;例如,<img> 的 alt 屬性。給定 <img src="grape.jpg" alt="banana"/>,影像的可訪問名稱是“banana”。
要建立可見內容與元素或多個文字節點與元素之間的關聯,可以使用aria-labelledby屬性。如果沒有可見文字可與需要可訪問名稱的 UI 元素關聯,可以使用aria-label屬性。不應將名稱新增到標記內聯文字的元素中,例如<code>、<del>和<mark>。
許多元素,如文字內容部分,不需要可訪問名稱。所有控制元件都應具有可訪問名稱。所有傳達資訊且並非純粹展示的影像也應如此。
輔助技術向用戶提供可訪問名稱屬性,其中包括可訪問名稱和元素的角色。雖然許多元素不需要可訪問名稱,但提供可訪問名稱以覆蓋或補充具有指定角色的元素內容是必要的。例如,tabpanel是使用者啟用具有tab角色的關聯元素後出現的內容部分。此角色可以設定在不需要名稱的元素上,例如<div>元素。tab是控制元件,必須具有可訪問名稱。tabpanel是tab的子級(內容部分)。將aria-labelledby新增到tabpanel是最佳實踐。