10步大幅提升網站可訪問性

tencent發表於2014-12-03

入職四週年,送上乾貨,10步大幅提升網站可訪問性。每一步都可以在20分鐘內完成。這篇文章也可以在20分鐘內看完。

第一步,檢查<title></title>,不允許空,不允許過長,簡潔明瞭。<title></title>是第一個可以訪問到內容的元素,所以一定要非常重視。當使用者切換瀏覽器Tab標籤的時候,一定最先聽到<title></title>標記的內容。Title一定要能代表當前頁面的主題。這裡的要求和SEO最佳實踐幾乎一致。

10步大幅提升網站可訪問性

第二步,提供文字替代方案。走查網頁上所有的圖片、iframe、object,檢查這些元素是否填寫了適當的alt屬性或者title屬性的值,看看這些值是否可以描述這些元素的內容或者目的;heading元素是否標記了內容,而不僅僅是圖片或者背景圖片。比如,下圖可以標記為“騰訊ISUX公共帳號二維碼”。

10步大幅提升網站可訪問性

第三步,檢查表單。是否有label標籤,這些label的for屬性是否通過填寫相應表單元素的id來彼此繫結;label的標籤包裹的範圍是否足夠大,一致滑鼠很容易的就能操作到;表單元素在被聚焦的時候是否有清晰的視覺反饋;提交和重置按鈕以及圖片按鈕是否標記了文字或者在title中寫明瞭該按鈕的作用。強調一下,比如一個按鈕的樣式是一個放大鏡,那麼替代文字的內容一定不是“放大鏡”,而是“搜尋”。

10步大幅提升網站可訪問性

第四步,使用heading做資訊架構。輔助技術,特別是讀屏軟體,一般都會提供一個快捷鍵h,按h按鍵,焦點即可在heading之間切換,從而提高瀏覽效率。減輕讀屏軟體使用者瞭解當前頁面內容的障礙。雖然HTML5允許heading之間的巢狀,但是我絕對不推薦。

10步大幅提升網站可訪問性

第五步,是否有blur()。輔助技術一般都是依靠焦點來獲取內容,所以這個事件從本質上就使得輔助內容無法獲得應用了此方法的元素。this.onfocus=this.blur()這個是最傻的一句程式碼了。

10步大幅提升網站可訪問性

第六步,按Ctrl+或者command+檢視頁面是否可以被縮放。也許你因為某個效果使用了font-size-adjust:none,或者在viewport中設定了禁止使用者縮放,從而使得頁面無法縮放。老年人和使用11寸高檔筆記本的老闆可是非常喜歡使用放大頁面的功能的。

第七步,新增landmark角色。這個是成本最低的方法了,新增的方法就是給相應功能的元素新增role這個屬性,並賦予響應的landmark值。一共有8個值,一般你只能用到6個:banner(banner)、complementary(輔助內容區)、contentinfo(網站資訊和版權)、form(表單)、main(主內容區)、navigation(導航區)、search(搜尋區)。如果一個表單,他僅僅是提供搜尋功能,那麼就將role設定為search,而不是form。

10步大幅提升網站可訪問性

第八步,設定快捷鍵。1是指向首頁的那個連結。Esc是停止播放音視訊,是停止,不是暫停。這兩個按鍵是迄今為止最能達成共識的快捷鍵了。另外,挖掘當前頁面的最重要的一個功能,是最重要的。然後在這個功能開始的元素或者包裝元素上設定一個快捷鍵,按照順序的話,就是2吧。accesskey=2。不要將同一個值設定給多個元素,也不要使用字母作為快捷鍵。另外聚焦的事件不要單單依賴瀏覽器本身,請使用js或者相應的鍵盤事件,然後聚焦給相應的元素。

第九步,觸發介面轉換需設定焦點。比如,點選一個按鈕,彈出了一個模態或者非模態的彈窗(不是瀏覽器彈窗),利用js把焦點移動到這個視窗的第一個有內容的DOM上;再比如,點選“返回首頁”按鈕,如果僅僅是連結的是#或者改變類似scrollTop的值,那麼也一定利用js將焦點移動到這個頁面的第一個有內容的DOM上。如果你通過一個按鈕觸發了一個元件視窗,在關閉這個元件視窗的時候,請把焦點重新移動回到觸發這個視窗的按鈕上。

第十步,填寫一個簡單的連結到之後,作為第一個內容元素。標記的內容是簡要的說明,說明你在這個頁面上提供的快捷鍵。然後這個連結可以指向一個更加豐富的無障礙幫助頁面,並且給這個連結設定accesskey=0。

相關文章