最近在給一個項目作移入開發環境以前的收尾工做,其中一項就是無障礙設計測試。公司內部有專業的無障礙設計把控人員,可是基本的常識仍是零零總總須要學一些,看了一些資料總結了基礎的一些須要知識點。web
避免使用顏色傳遞信息
確保文字大小用戶能夠調節,帶有信息的元素需加上aria標籤,這樣用戶能夠在屏幕讀取器的幫助下獲取信息瀏覽器
之帶用音頻傳遞信息的元素,須要加上文字信息
確保用戶在不使用音頻的狀況,也能獲取相同信息iphone
用戶能夠在不使用鼠標,屏幕的狀況下,僅憑鍵盤也能完成在頁面上移動
僅鍵盤完成整個頁面的瀏覽操做
若是任何一個動做必須使用到鼠標,即爲不合理設計
全部的可編輯區域須要按序排列,確保tab鍵能夠所有鍵入
合理設計鍵盤快捷鍵幫助用戶快速移動ide
應用需能在使用屏幕讀取器等協助工具下正常運做
避免使用屏幕閃爍等設計
避免使用基於時間的設計(由於有的協助工具須要花更長的時間讀取屏幕信息)工具
高對比度模式下,也能方便地讀取信息
非文字信息有文字信息爲輔
使用屏幕讀取器時,能正常瀏覽獲取信息
黑白顯示下,也能正常讀取信息測試
<a>
標籤<a>
標籤提示信息是否合理(例如,有的標籤使用’點擊這裏’,在一屏有多個’點擊這裏’的狀況下,用戶沒法判斷各標籤分別跳轉到哪裏)字體
按鈕儘可能使用 button 標籤,避免用 img, div, span 等標籤作按鈕 (button標籤自帶可點擊,tab, focus等功能,且在屏幕讀取器使用時讀取按鈕內容)
若是須要使用非 button 的標籤作按鈕,加入 role =」button」
屬性網站
表單使用 form 標籤 (自帶enter鍵鍵入表單的功能)
input 使用aria-label
與placeholder
(屏幕讀取器讀取aria-label
)
input 與label一塊兒使用 (屏幕讀取器能夠根據label直接計算出Input name)google
// best practice 1 <input id="check" type-"checkbox" checked> <label for="check">input name</label> //best practive 2 <label> <input type="checkbox" checked> input name </label>
確保校驗信息設計合理,好比有的驗證碼信息沒法被屏幕讀取器讀取spa
其餘經常使用的aria屬性
aria-describedby
aria-label
aria-labelledby
aria-disabled
aria-hidden
tab排序標籤
tabindex
<a href="https://www.w3schools.com/" tabindex="2">W3Schools</a> <a href="http://www.google.com/" tabindex="1">Google</a> <a href="http://www.microsoft.com/" tabindex="3">Microsoft</a>