僅使用標(biāo)準(zhǔn) HTML,現(xiàn)代網(wǎng)絡(luò)應(yīng)用程序可能會(huì)將有輔助功能需求的用戶(hù)拒之門(mén)外。
HTML 是主要的在線標(biāo)記語(yǔ)言,近 83% 的現(xiàn)有網(wǎng)站都在使用。盡管自創(chuàng)建以來(lái) 25 年來(lái)發(fā)生了一些變化,但即使是較新的迭代,例如 HTML5 和 AMP,也有很多不足之處,尤其是在可訪問(wèn)性方面。這就是 ARIA 的用武之地。在本教程中,我將討論 ARIA 是什么、為什么它對(duì)您的網(wǎng)站有用,以及將其添加到您的網(wǎng)站的幾種方法。
p>
什么是 ARIA?
ARIA,也稱(chēng)為 WAI-ARIA,代表 Web Accessibility Initiative 的可訪問(wèn)富互聯(lián)網(wǎng)應(yīng)用程序。完整的規(guī)格文檔可以在這里找到。請(qǐng)注意,完整的規(guī)范文檔相當(dāng)密集,因此最好先閱讀這篇文章并查看下面鏈接的其他一些資源。
ARIA 的主要目的是允許 HTML 中的高級(jí)語(yǔ)義結(jié)構(gòu)作為 HTML 語(yǔ)法繁重性質(zhì)的對(duì)應(yīng)物。換句話說(shuō),HTML 告訴瀏覽器事物的走向,而 ARIA 告訴瀏覽器它們?nèi)绾谓换ァ?/p>
誰(shuí)負(fù)責(zé) ARIA?
ARIA 是由 W3C(萬(wàn)維網(wǎng)聯(lián)盟)主辦的項(xiàng)目。該項(xiàng)目遵循與其他計(jì)劃相同的更新和編輯標(biāo)準(zhǔn)。他們還提供了一個(gè) GitHub 存儲(chǔ)庫(kù),其中包含多個(gè)測(cè)試,您可以運(yùn)行這些測(cè)試來(lái)確保您的頁(yè)面正常運(yùn)行。
我當(dāng)前的網(wǎng)站標(biāo)記有什么問(wèn)題?
大多數(shù)具有結(jié)構(gòu)化、深思熟慮設(shè)計(jì)的網(wǎng)站在自適應(yīng)技術(shù)(即屏幕閱讀器)方面都做得足夠好。然而,讓用戶(hù)能夠弄清楚如何使用您的網(wǎng)站和讓它易于使用是不同的事情。低視力用戶(hù)占人口的近 2%,對(duì)于他們來(lái)說(shuō),這種差異可能意味著在嘗試執(zhí)行基本在線任務(wù)時(shí)節(jié)省大量時(shí)間和偵查工作。這可能是為游客提供壯觀的體驗(yàn)和為他們提供迷宮般的導(dǎo)航之間的區(qū)別。
除了傳統(tǒng)的可訪問(wèn)性之外,ARIA 正在尋找一種技術(shù),為標(biāo)準(zhǔn)交互提供新的視角。越來(lái)越多的語(yǔ)音系統(tǒng)、聚合瀏覽(例如汽車(chē)嵌入式計(jì)算機(jī))和其他創(chuàng)新正在利用 ARIA,利用其增強(qiáng)的語(yǔ)義功能。
好的,但是它有什么作用呢?
總體而言,ARIA 以語(yǔ)義上有意義的方式將元素連接在一起。它為用戶(hù)提供了有關(guān)交互的附加含義。以下是一些如何使用它的實(shí)際示例:
- 關(guān)聯(lián)非嵌套元素:使用純 HTML,用戶(hù)的瀏覽器只能看到基于父/子關(guān)系的關(guān)系。然而,在某些情況下,我們可能需要一系列與 HTML 層次結(jié)構(gòu)中的內(nèi)容平行的按鈕。借助 ARIA,我們可以定義每個(gè)按鈕的控制器類(lèi)型,以及它在文檔其他位置控制什么元素。
聲明交互元素:雖然 HTML 提供了一些用于交互的元素,但 ARIA 定義了更多元素,從而可以更精細(xì)地描述頁(yè)面每個(gè)元素的功能。此外,這些可以分配給 HTML 標(biāo)記,這些標(biāo)記通常不用于此類(lèi)目的,但在您的特定情況下可能有意義。例如,您可以將
標(biāo)記用于一系列您不希望由表單元素組成的復(fù)選框。實(shí)時(shí)區(qū)域更新通知:ARIA 提供的另一個(gè)功能是“實(shí)時(shí)”內(nèi)容區(qū)域的定義。當(dāng)以這種方式定義內(nèi)容區(qū)域時(shí),只要該元素內(nèi)的內(nèi)容發(fā)生更改,ARIA 就會(huì)通知用戶(hù)。當(dāng)確保弱視用戶(hù)知道您的頁(yè)面上發(fā)生了某些變化時(shí),這非常有用。
將 ARIA 添加到您的網(wǎng)頁(yè)
我們已經(jīng)討論了 ARIA 的功能,現(xiàn)在讓我們看一些最常見(jiàn)的示例。我們將在每個(gè)部分開(kāi)始時(shí)簡(jiǎn)要說(shuō)明我們希望實(shí)現(xiàn)的目標(biāo),然后是如何實(shí)現(xiàn)該目標(biāo)的代碼示例。
使用 ARIA 創(chuàng)建替代標(biāo)簽
說(shuō)到替代標(biāo)簽,大多數(shù)開(kāi)發(fā)人員都熟悉 alt
屬性,該屬性常用于 標(biāo)簽。該標(biāo)簽有一個(gè)重要的用途:描述它所附加的圖像以提高可訪問(wèn)性(或作為常見(jiàn)的 SEO 策略,具體取決于您的觀點(diǎn))。
ARIA 提供了一個(gè)名為 aria-label
的類(lèi)似屬性,該屬性可以附加到任何 HTML 元素,不僅提高了圖像的可訪問(wèn)性,還提高了網(wǎng)站部分、表單控件等的可訪問(wèn)性。下面是一個(gè)示例:
<!-- adding alternative labeling to an image (with non-visible text) --> <img aria-label="Descriptive image text" src="#" /> <!-- adding alternative labeling to an image (with visible text) --> <img aria-labelledby="image-text-desc" src="#" /> <div id="image-text-desc">A text description of the image, visible on the screen</div>
登錄后復(fù)制
定義 ARIA 特定的 UI 元素
HTML 已經(jīng)提供了許多用于創(chuàng)建網(wǎng)頁(yè)的元素,但它們的主要焦點(diǎn)通常是一般性地定義一個(gè)區(qū)域并向用戶(hù)呈現(xiàn)網(wǎng)站的結(jié)構(gòu)。 ARIA 提供了幾十個(gè)附加元素,這些元素更注重元素的使用方式,例如計(jì)時(shí)器、工具提示或進(jìn)度欄。
此處使用的示例是您可能會(huì)在表單上找到的工具提示。創(chuàng)建模式的方法有很多種,從觸發(fā)一些 JavaScript 的鏈接到懸停在上面時(shí)創(chuàng)建模式的元素。這里缺少的一點(diǎn)是,盡管它可能對(duì)視力正常的用戶(hù)有效,但弱視用戶(hù)可能甚至不知道工具提示的存在。
您可以使用 ARIA 定義工具提示,如下所示:
<!-- Defining a question mark image as a tooltip UI element --> <img src=”questionmark.png” role=”tooltip” />
登錄后復(fù)制
可用的 ARIA 定義
為了擴(kuò)展這些 UI 元素,這里簡(jiǎn)要列出了一些可以定義的最有趣的“角色”。完整的列表可在參考的規(guī)范文檔中找到。
搜索
banner
演示
工具欄
status
menuitem
log
dialog
link
在父/子結(jié)構(gòu)之外建立關(guān)系
現(xiàn)在讓我們擴(kuò)展一下我們之前討論過(guò)的一點(diǎn):HTML 的強(qiáng)制結(jié)構(gòu)。雖然父母/孩子的關(guān)系有利于決定事情應(yīng)該如何排序,但當(dāng)需要更有意義的聯(lián)系時(shí),它就顯得不足了。兄弟元素就是一個(gè)例子。一些庫(kù)添加了遍歷兄弟元素或其他形式的元素關(guān)系的功能,但這通常發(fā)生在 JavaScript 或標(biāo)記之外的其他語(yǔ)言中。
ARIA 使我們能夠在標(biāo)記中直接定義這些關(guān)系,從而更輕松地對(duì)菜單項(xiàng)進(jìn)行分組、創(chuàng)建非標(biāo)準(zhǔn)導(dǎo)航以及將控件附加到通常難以完成的元素區(qū)域。
讓我們看一下如何使用它來(lái)將一些控件連接到內(nèi)容區(qū)域:
<img src=”nextbutton.jpg” role=”button” aria-controls=”tutorial” /> <div id=”tutorial”> Your tutorial's content </div>
登錄后復(fù)制
此代碼段表示 nextbutton.jpg 圖像是一個(gè)按鈕,它是下面教程 div
的控件。
在 ARIA 中創(chuàng)建“實(shí)時(shí)”元素
我們將在此處介紹的 ARIA 的最后一個(gè)功能是 aria-live
屬性。雖然 ARIA 的大多數(shù)其他功能都處理語(yǔ)義連接,但這一功能直接涉及向用戶(hù)提供內(nèi)容或元素更改通知的想法。
對(duì)于許多視力不佳的人來(lái)說(shuō),可能無(wú)法立即清楚他們與您網(wǎng)站的交互是否導(dǎo)致了頁(yè)面其他位置的變化。對(duì)于細(xì)微的變化尤其如此,例如可能會(huì)發(fā)生變化但保持相對(duì)相同長(zhǎng)度的小文本摘要。通過(guò)使用此屬性,每次定義元素內(nèi)的內(nèi)容發(fā)生更改時(shí),您的用戶(hù)都會(huì)收到通知。
我們可以將此屬性添加到元素中,如下所示:
<div aria-live=”true”> Content that updates, ie. guided directions </div>
登錄后復(fù)制
讓網(wǎng)絡(luò)成為所有用戶(hù)更美好的地方
略多于 2% 的美國(guó)人口帶有某種形式的低視力標(biāo)簽,提高網(wǎng)站的可訪問(wèn)性可以顯著提高網(wǎng)站的覆蓋范圍。對(duì)于那些網(wǎng)站覆蓋多個(gè)國(guó)家的公司來(lái)說(shuō),這個(gè)數(shù)字會(huì)更大。除了可訪問(wèn)性之外,ARIA 還為非瀏覽器界面提供了一種利用您的網(wǎng)站的方法,許多基于語(yǔ)音的設(shè)備已經(jīng)提供了支持。
實(shí)施 ARIA 可以幫助您的用戶(hù),也可以幫助您的流量,所以開(kāi)始吧!
我是否遺漏了任何細(xì)節(jié),或者您還有其他問(wèn)題嗎?請(qǐng)?jiān)谙旅姘l(fā)表評(píng)論!
如果您想深入了解完整的 ARIA 文檔或嘗試官方測(cè)試工具,請(qǐng)查看以下鏈接:
ARIA 創(chuàng)作實(shí)踐
完整的 ARIA 規(guī)范文檔
測(cè)試工具示例報(bào)告
以上就是從 ARIA 開(kāi)始:增強(qiáng)網(wǎng)站的可訪問(wèn)性的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!