在Web前端開發界,有三個詞經常被提及:可用性(Usability)、可訪問性(Accessibility)和可維護性(Maintainability)。
可用性指的是:產品是否容易上手,使用者能否完成任務,效率如何,以及這過程中使用者的主觀感受可好,是從使用者的角度來看產品的品質。可用性好意味著產品品質高,是企業的核心競爭力。
可維護性一般包含兩個層次,一是當系統出現問題時,快速定位並解決問題的成本,成本低則可維護性好。二是代碼是否容易被人理解,是否容易修改和增強功能。可維護性和可複用性、可擴充性等有交叉的地方。構建可維護性好的代碼,對企業的長期發展非常重要。
可用性和可維護性定義比較清晰,在軟體界研究也非常多,在此不展開討論。我們來看看可訪問性。
什麼是可訪問性?很難給出嚴格的定義。在《Web Content Accessibility Guidelines 1.0(Web內容可訪問性指南)》裡,對可訪問性的描述是:Web內容對於殘障使用者的可閱讀和可理解性。同時指南裡還特別指明:提高可訪問性也能讓普通使用者更容易理解Web內容。具體而言,要考慮以下兩方面:
- 無論使用者是否殘障,都得通過使用者代理程式(User Agent)來訪問Web內容。因此要提高可訪問性,首先得考慮各種使用者代理程式 :案頭瀏覽器、語音瀏覽器、行動電話、車載個人電腦等等。在Google, 專門聘請了一些殘障僱員,來協助提高產品的可訪問性。
- 還得考慮使用者訪問Web內容時的環境限制 。比如:嘈雜的環境、過暗或過亮的房間、或者是免提等各種情況。這是更高一層次的可訪問性要求,做到了,能造就產品在特定領域的核心競爭力。
理解以上兩點,能解答不少疑惑。比如Web開發社區經常討論的話題:我們真的要考慮瀏覽器禁用JavaScript/CSS的情形嗎?我的理解是,要考慮的其實不是禁用了JavaScript/CSS的瀏覽器,而是那些對JavaScript/CSS不支援或支援不好的使用者代理程式。比如語音閱讀器,手機瀏覽器等,JavaScript提供的是一層可訪問性,不能代替內容本身。當然,從漸進增強角度講,鼓勵使用進階特性,只是同時要做到優雅降級,讓低端使用者代理程式上,也能保留低傳真的體驗。
理解可訪問性,同時能有助於更好地理解語義的重要性。為何要看重em和strong的區別?因為在語音閱讀器上,對這兩個標籤的理解是不一樣的,錯誤使用會導致語調的錯誤變化和重音的位置不對。這對盲人使用者來說,是極大的不尊重。
關注可訪問性,是網路上的尊老愛幼,體現的是前端開發工程師對社會的道義感和關愛度。