6 個常見的可訪問性問題及解決方案

2020-12-15 InfoQ技術實驗室

「Web 的力量來自於它的普適性。關鍵在於所有人,包括殘障人士,都能使用 Web。」——W3C 主任兼全球資訊網發明者 Tim Berners-Lee

在過去的兩年中,WebAIM 對前 1,000,000 個網站的主頁進行了可訪問性評估。他們的結果表明,即使在主流網站上,可訪問性錯誤仍然非常常見。

「在一百萬個主頁中,我們檢測到了 60,909,278 個可訪問性錯誤——平均每頁 60.9 個錯誤。」「每 14 個殘障用戶會交互的主頁元素中,就有 1 個能檢測出錯誤。」總計 98.1%的主頁檢測出了 WCAG 2 故障——比去年的 97.8%有所增加。

在分析報告中,WebAIM 分享了六個最常見的 WCAG 故障。

在這篇文章中,我將具體介紹這六種故障,告訴大家為什麼我們要重視它們,以及如何解決這些問題。讀者可以通過演示應用查看每種故障的實時演示。

低對比度文字

「平均而言,每個網站主頁上有 36 種低對比度文本實例。」——WebAIM Million

網站的所有文本和文本後面的背景顏色之間都應有較高的顏色對比度。換句話說,文字的亮度不應太接近背景亮度。

低對比度的文本會讓讀者更難區分字符的形狀和邊緣,結果影響閱讀速度和理解力。文本尺寸越小,這個問題也就會越嚴重,所以隨著移動用戶的數量不斷增長,這個問題也愈加突出。

對於視力受損的用戶來說,低對比度文字讀起來也會更困難。有十二分之一的人類是色盲。許多老年人的對比度敏感度會因身體老化而下降。視力受損的用戶在文字和背景沒有足夠對比度的情況下將無法閱讀。

如何修復

之所以低對比度文字的問題如此常見,一個原因是這個問題很難被發現。在編寫或查看某些代碼時,你可能會看到文本的色彩十六進位值為#f2f2f2,而背景的值為#808dd1。它們之間的對比度夠高嗎?那就難說了。就算開發人員檢查實際的顯示效果,也很難確定對比度是否足以滿足弱視或使用較小屏幕的用戶的需要。

還好,有幾種工具可以自動測量顏色對比度,並高亮顯示那些不符合成功標準的內容。

Lighthouse 是谷歌創建的工具,如果你使用的是谷歌 Chrome 瀏覽器,它已經內置在瀏覽器中了(它也有針對其他瀏覽器的擴展)。用它運行審核程序將生成一份報告,標記出網站上的可訪問性問題。它將列出檢測到的所有文本背景和前景色沒有足夠高對比度的元素。

知道哪些元素不符合成功條件之後,你就可以調整背景和前景色,以增加對比度。

還有多種顏色對比度分析器可以幫助你找到具有足夠對比度的兩種顏色。如果你使用的是谷歌Chrome 瀏覽器,則可以使用Chrome DevTools 的顏色選擇器,其會顯示兩條白線,分別是AA 和AAA 閾值。

WCAG 將文本對比度的成功標準定義為 4.5:1 的對比度。對於上面的「Hello World」示例,我們可以看到顏色對比度僅為 2.82,未達到閾值。增加對比度後,我們就可以提高元素的可讀性和可訪問性。

缺少圖片的替代文本

「所有主頁圖像中有 31.3%(平均每頁 12 張)缺少替代文本……「這些數據表明,Web 上有近半圖像缺少替代文本,或者替代文本有問題或重複。」——WebAIM Million

所有圖像都應有替代文本,以將其含義傳達給屏幕閱讀器用戶。

屏幕閱讀器是供盲人或視力障礙者使用的。它以另一種形式傳遞屏幕上的視覺信息,例如大聲朗讀文本。

屏幕閱讀器無法將圖像翻譯成文字。因此,有必要給每張圖像都提供簡短的描述性替代文本,屏幕閱讀器將使用它們來向用戶傳達圖像的內容和目的。

如何修復

替代文字應簡短且具有描述性。它應該描述圖片的內容和目的,同時避免無關緊要的細節,以免稀釋有用的細節。

將替代文本添加到圖像有三大方法:

如果使用 img 標籤顯示圖像,則可以使用 alt 屬性。如果顯示的圖像帶有另一個標籤,例如 div 的背景圖像,則可以使用 aria-label 屬性。如果圖像是由另一個元素的內容描述的,則可以使用 aria-labelledby 屬性。<!-- Missing alternative text --> <img src="cow.jpg" /> <div /> <div aria-labelledby="non-existent" /> <!-- With alternative text --> <img src="cow.jpg" alt="a sad seal" /> <div aria-label="an angry alligator" /> <div aria-labelledby="my-label" /> <div id="my-label">a happy hyena</div> 如果圖片是純裝飾性的,則可以給圖片加上替代文字"",以指示屏幕閱讀器不要讀出它。這樣屏幕閱讀器就不會讀出無用的信息了。

<img src="decoration.jpg" alt="" /> 空連結和空按鈕

連結和按鈕文本應該能被屏幕閱讀器識別。當圖像用作連結或按鈕時,圖像的替代文本也應該能被識別。

在 Web 上,連結和按鈕通常顯示為符號或圖像。當空間有限時(例如在較小的屏幕和行動裝置上),這一特性特別有用。但是,屏幕閱讀器就很難將這些元素的目的傳達給用戶。

例如,我們習慣用帶有「+」號的按鈕表示向列表中添加內容的目的,或者用帶有徽標的按鈕來表示連結。

<!-- Missing descriptive labels --> <button>+</button> <a href="..."> <img src="twitter.svg" /> </a> 通過屏幕閱讀器閱讀時:

該按鈕將被讀為「加號按鈕」。該連結將被讀為圖像文件名,或所連結頁面的 URL。如果你可以看到整個屏幕,並了解按鈕 / 連結的上下文,那麼這些描述理解起來是會很容易的;但是屏幕閱讀器無法提供這麼多細節。

如何修復

可以使用 aria-label 和 aria-labelledby 屬性向按鈕和連結添加說明。然後,屏幕閱讀器將讀取這些說明,從而使用戶對元素的用途有更清晰的理解。

<!-- With descriptive labels --> <button aria-label="Add a playlist">+</button> <a href="..." aria-label="View our Twitter page"> <img src="twitter.svg" /> </a> 缺少表單輸入標籤

「420 萬份表單輸入中有 55%沒有正確地 [標記]」——WebAIM Million

表單中的每個元素都應具有以編程方式關聯的標記(label)元素。

要理解每個表單元素的目的,就需要清晰的表單標記。用戶通常可以根據標記與元素的接近程度或元素的佔位符之類的信息來推斷出這些目的。但是,屏幕閱讀器無法做出這些假設,因此需要標記以編程方式與對應的元素相關聯。

單擊以編程方式關聯的標記元素也會激活該控制項。如果能提供較大的可點擊區域,就可以讓運動技能受損的用戶或使用小屏幕的用戶受益。

如何修復

將標記添加到表單元素的方法主要有以下三種:

將輸入元素嵌套在標記元素內。為標記提供一個 for 屬性,該屬性等於輸入元素的 ID。給輸入元素一個 aria-labelledby 屬性,該屬性等於充當標記的元素 id。<!-- Missing input labels --> <label>Name</label> <input /> <div>Name</div> <input /> <!-- With input labels --> <label>Name: <input /></label> <label for="name">Name</label> <input id="name" /> <div id="name">Name</div> <input aria-labelledby="name" /> 缺少文檔語言

HTML 文檔元素應包含有效的 lang 屬性。

用戶配置屏幕閱讀器時會選擇默認語言。如果開發人員未指定網站的語言,則屏幕閱讀器將使用用戶設置的默認語言。

如果用戶會說多種語言,則他們可能會訪問那些與屏幕閱讀器默認語言不同的網站。如果開發人員使用了錯誤的語言庫,那麼閱讀器的單詞發音會很奇怪,讓用戶無法使用網站。

如何修復

將 lang 屬性添加到 html 元素,該元素的值表示網站的主要語言。該屬性的可能值可以在 IANA 語言子標籤註冊表中找到,也可以使用語言子標籤查找工具找到。

<!-- Missing lang attribute --> <html> <!--document head and body--> </html> <!-- With lang attribute --> <html lang="en"> <!--document head and body--> </html> 如果網站中的語言發生變化,則可以使用另一個 lang 屬性來明確。如果語言是從右到左書寫的,則還應使用 dir 屬性來明確。

<p>Text in one language <span lang="es">texto en otro idioma</span></p> <p lang="ar" dir="rtl"> </p> 小結

「對於希望創建高質量網站和 Web 工具,並且不排斥人們使用其產品和服務的開發人員和組織來說,可訪問性是至關重要的。」——W3C,可訪問性簡介

在構建網站時,開發人員往往很難想起來在網站中包含輔助功能,尤其是當開發人員自己並不會從這些功能中受益時更是如此。所幸我們有很多工具和資源可以提供幫助。

如上所述,Lighthouse 是用於檢查網站質量的優秀工具。它可以創建多個類別的審核,包括性能、SEO 和可訪問性等。它還提供了很多瀏覽器擴展,如果你使用的是谷歌 Chrome 瀏覽器,則它已經內置在 Chrome DevTools 中了。

Deque 還提供了適用於 Chrome 和 Firefox 的 Axe 瀏覽器擴展。與 Lighthouse 一樣,這個擴展程序也能列出當前頁面的可訪問性問題。選擇一個問題後,它就會高亮顯示問題的每個要素。它還提供了諸如問題所在和問題嚴重性之類的細節信息,並提供了一個連結供你了解更多信息。

在這些工具的幫助下,我們就可以輕鬆地改善網站的可訪問性,並幫助實現 Web「為所有人服務,不管他們的硬體、軟體、語言、位置或能力如何都不影響」這個目標。

原文連結:https://blog.scottlogic.com/2020/07/02/6-most-common-accessibility-problems.html

關注我並轉發此篇文章,私信我「領取資料」,即可免費獲得InfoQ價值4999元迷你書!

相關焦點

  • 顏色對比可訪問性的常見誤解
    黑馬家族 @黎沫limo 翻譯https://www.zcool.com.cn/article/ZMTA4NjU4OA==.html---本文講述關於色彩對比可訪問性的常見誤解因此,設計師常感覺需要關注可訪問性並被誤以為他們設計的界面實際上是不可訪問的。本文揭露並糾正了關於色彩對比可訪問性的誤解。誤解1:WCAG始終是最佳選擇Web內容可訪問性指南(WCAG)被用作確定色彩對比可訪問性的標準。但是,這些準則在實際應用中並不總是符合需求的。
  • 沙發八大常見問題及解決方案
    實踐經驗中,各大檢測機構總結了沙發常見的幾個問題,有利於沙發品質的保障。常見問題1:沙發泡沫塑料理化性能的取樣方式是怎麼樣的?解決方案:經過與多家權威機構確認,結合行業中其他類似的標準,制定如下海綿取樣原則。a).
  • 5個常見的Microsoft Outlook問題及其解決方案
    用戶使用的時候依舊面臨許多體驗問題。以下是Microsoft Outlook的常見問題及其最佳解決方法。注意:由於市場上有各種Outlook版本,因此有多種方法可以解決常見問題。我們的解決方案在Outlook 2016及更高版本中效果最佳。1.
  • 3C鋰電池pack測試常見問題分析和解決方案
    打開APP 3C鋰電池pack測試常見問題分析和解決方案 發表於 2020-04-15 14:02:36 怎麼解決這個難題呢?首先就需要對3C鋰電池pack的常見問題作出分析,再在成品測試中選擇合適的連接模組進行電流導通和信號傳輸,以驗證其品質是否達標。大電流彈片微針模組能在3C鋰電池pack測試中提供穩定可靠的解決方案。
  • 解決6個常見的問題,讓你拍攝的相片不再模糊
    有幾個常見的原因會對圖像清晰度造成不利影響。因此,我們必須找到確定的原因才能解決問題,制定獲得更清晰圖像的解決方案。1.被攝體運動或者照相機震動(快門速度太慢)圖像模糊最常見的來源之一是運動造成的模糊,可能是由於主體移動或相機抖動而引起的。解決這個問題的方法非常簡單。解決問題的方法也很簡單:使用更快的快門速度。快速的運動可能需要1/500-1/2000秒的快門速度。
  • 項目管理常見的六個問題及解決方案
    項目管理中的問題非常複雜,下面介紹項目經理在項目管理中經常遇到的問題和解決這些問題的經驗,與大家一起分享交流。 要使項目成功實施,就必須在合同約定目標基礎上對項目目標進行再次定義,項目經理需要運用必要的辦法,在項目周期內不斷去尋求客戶可接受的最小或最優的目標邊界。 但是如果項目經理一開始就想動項目目標,容易引起客戶的反感。因此需要先與客戶建立彼此的基本信任。在充分了解客戶的需求後,拿出有理有據的方案說服客戶調整項目目標邊界。
  • Java vs C++:子類覆蓋父類函數時縮小可訪問性的不同設計
    子類對父類函數覆蓋時,擴大可訪問性,通常都不是問題。本文要講的是,當子類對父類函數覆蓋的可訪問性縮小時,Java 和 C++ 採取了不同的策略。因為 Java 不允許子類在覆蓋父類函數時,縮小函數的可訪問性,至於原因,我們可以用一個例子來說明。
  • 常見問題&解決指引
    由於遊戲還在研發過程中,可能大家在體驗時會遇到一些異常情況,我們匯總了一些常見問題&解決方案,供大家參考: 【任務無法正常進行類問題】 1、到達任務指引位置找不到任務目標的問題; 2、任務NPC未正常顯示的問題;
  • 矽膠復模生產廠家及常見問題解決方案
    遇到的常見問題:一、尺寸偏差產品變形產生原因及解決方案:跟復模生產工藝特別是模具的溫度控制有很大關係。其他的原因比如原型的縮放比例及材料的縮水也應該控制好。長度超過1米5的產品需要使用加固模具製作.三、成品變脆、開裂產生原因及解決方案:主要是使用了國產劣質材料和復模工藝的缺陷導致,解決辦法首先是確保材料採購的渠道是有保障的,如果材料沒有問題,在工藝上面去改進,注意控制烤箱溫度和加熱時間,冷卻時間,冷卻方式等。
  • 醫用防護服熱熔膠條在使用中常見問題的解決方案
    本篇我們特地整理了醫用防護服熱熔膠條在使用中的常見問題以及解決方案,希望對從事防護服生產的企業能夠有幫助。一般在壓膠過程中出現的問題是:面料不耐溫,壓膠過程中產生破洞、粘補助感覺沒黏性、壓住後第三天又輕鬆開膠。這些原因都會導致壓膠失敗,測試水壓不過關。
  • 中考複習常見的問題及解決方案
    中考網整理了關於中考複習常見的問題及解決方案,希望對同學們有所幫助,僅供參考。   喜歡鑽研偏難怪題   表現:許多同學認為攻堅階段就必須要有大量的偏題、怪題、難題才能顯示出自己的水平,才能拿下中考中的壓軸題。   解藥:考試說明明確提出,不考偏難、怪題,建議大家別做無用功。
  • 仿石漆施工常見問題(起皮、開裂)解決方案
    5D潔淨隔熱仿石漆效果做外牆仿石漆最常見的問題有幾個:起皮,開裂,翹邊,而引起這些問題的原因,無非是兩個方面,一個方面是用材料不對,另外一個方面就是施工的工藝有問題。作為一個年施工面積超過五百萬平米仿石漆的品牌,解決這些問題一般都是駕輕就熟,只要材料選對,工藝做到位,做出來的仿石漆一個是美觀大氣,細節處理極為到位,抗汙和耐用性能不低於石材。
  • 國有企業改制上市常見問題的法律分析和解決方案
    發布部門: 信息來源:國資委 發布時間:2008-03-23 瀏覽次數:307次 國有企業改制上市常見問題的法律分析和解決方案
  • 移動端開發一些常見問題的解決方案
    放到平板下樣式就亂了:而且現在手機與手機之間的差異也很大,需要寫很多 @media 來解決適配的問題。一個可行的解決方案我覺得有一個比較可行的解決方案,對於適配多種行動裝置有一定的幫助。那就是整體布局使用 vw、百分比 % 作為計量單位,內容樣式上使用 px 作為計量單位。
  • 25個CAD應用常見問題解決方案
    這個問題也比較常見,系統變量dragmode ON勾選即可解決。12、鏡像過來的的字體保持不旋轉怎麼辦?值為0時,可保持鏡像過來的字體不旋轉,1時,進行旋轉。而且沒有備份文件,這時我們可以試試下面的方法恢復:1.在「文件(File)」菜單中選擇「繪圖實用程序/修復(Drawing Utilities/Recover)」項,在彈出的「選擇文件(Select File)」對話框中選擇要恢復的文件後確認,系統開始執行恢復文件操作;2.如果用「Recover」命令不能修復文件,則可以新建一個圖形文件,然後把舊圖用圖塊的形式插入在新圖形中,也能解決問題
  • 前端中臺系統常見問題剖析與解決方案
    此文凝結了我在中臺領域所有的思考和探索,相信讀完此文,能夠讓你對中臺領域的常見業務場景和解決方法有著全新的認知。此文轉載請註明出處。在2019年5月11日的那個周末,我在FDCon 2019大會上進行一次有關中臺領域的分享,分享的標題是《業務實現標準化在中臺領域的探索》,並在現場發布了RCRE這個庫,並介紹了如何使用RCRE來解決中臺業務開發所面臨的各種問題。
  • 常見的兒童行為問題及其解決方案
    區分撒謊的原因可以幫助您確定最佳的行動方案。當您把孩子撒謊時,問:「是真的發生了什麼,還是你希望發生的?」 給你的孩子撒謊時多個正確的選擇。通過建立一個說「說實話」 的家庭規則來強調誠實的重要性。當孩子說出真相時,尤其是當真相可能給她帶來麻煩時,要讚美您的孩子。說些類似的話,「我為你說實話而感到開心,我為您感到驕傲。
  • 《怪物獵人世界》冰原遊戲內常見問題怎麼辦 遊戲內常見問題解決方案
    ,今天就為大家匯總了遊戲內常見的問題及解決方案,希望能夠幫助到大家,一起來看看吧. 1.獨顯未被識別... 由於卡普空的優化不到位,導致許多剛剛入手Steam版怪物獵人世界冰原的玩家們才遊戲中遇到了許多問題,今天就為大家匯總了遊戲內常見的問題及解決方案,希望能夠幫助到大家,一起來看看吧. 1.獨顯未被識別,遊戲使用集成顯卡加載導致崩潰
  • 水龍頭的常見問題,水量小,流速慢,解決方案都在這裡了!
    水龍頭的常見問題,水量小,流速慢,解決方案都在這裡了!文|家丁快修在我們的日常生後中,水龍頭的使用頻率是很高的,使用頻率高損耗就會更快,因此出現問題也更多,水龍頭這麼一個小東西,但是真的出現了問題對我們的日常生活也有很大的影響,那麼今天家丁小編就來給大家介紹幾種常見的水龍頭會出現的問題,以及解決方案,建議收藏哦!
  • 復盤node項目中遇到的13+常見問題和解決方案
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫筆者之前陸陸續續接手過幾個nodejs項目, 也參與過幾個有點意思的nodejs開源項目, 最近把其中遇到的一些問題和解決方案做一個梳理, 避免大家繼續踩坑.