Accessibility (親合力)簡單解釋:比如地鐵有大通道方便輪椅通過,比如紅綠燈有聲音提示方便盲人通行,比如鼠標有左手模式方便習慣用左手的人使用。讓更廣泛(生理上有所不同)的人群可以使用,就是 Accessibility。aria-label 是一個 HTML attribute 用來告訴讀屏軟件某個元素是什麼。例如一個關閉按鈕「×」,視覺上看來都能理解,但是讀屏軟件並不能正確讀出,這時就可以用 aria-label

1. aria-label是什麼

實際成品

  1. 讀屏軟件(比如說 Voice Over)就會讀出「按鈕,關閉」。圖片 的 alt 屬性亦有此效果,因為圖片本身是沒有辦法被讀出的,所以讀屏軟件會去閱讀 alt 的內容
  2. 假如 <img> 標籤同時有 aria-labelalt 屬性,那麼讀屏軟件應該閱讀哪個的內容呢?答案當然是 aria-label。這裡需要明白 alt 本身還有另一個作用,當圖片無法加載時,瀏覽器會將 alt 的內容展示給用戶。

2. aria-label 與 title

title 是主要是提示與補充用的,讀屏軟件讀不到 title 對於 Accessibility 毫無幫助,可以考慮將 title 換成 aria-label

台灣無障礙還是以 title為主

3. aria-label 與 iconfont

多數網站已經不使用圖片來表示 icon ,轉而使用 iconfont 又或者 svg ,時候需要使用 arial-label 來標注:

aria-hidden="" aria-hidden 字符串。可選值為 true 元素隱藏(不可見) 和 false 表示元素可見

4. aria-label 與表單

placeholder 的出現導致了大量不帶 <label>form 表單,然而讀屏軟件是不會識別 placeholder

讀屏軟件看來它只是兩個輸入框,需要用 aria-label 再次標注

這作法比較近 Bootstrap 的寫法, .sr-only(screen reader only) 這個 class 的標籤,注意不能使用 display: none,否則讀屏軟件會忽略,只在視覺上將其隱藏

資料源:
前端的基礎修養:aria-label