先決條件: | 熟悉核心 HTML , CSS 和 JavaScript 語言; 高級(jí)跨瀏覽器測(cè)試原則的概念。 |
---|---|
目的: | 能夠診斷常見的輔助功能問題,并使用適當(dāng)?shù)墓ぞ吆图夹g(shù)來解決這些問題。 |
當(dāng)我們?cè)赪eb技術(shù)的上下文中描述輔助功能時(shí),大多數(shù)人立即想到確保網(wǎng)站/應(yīng)用程序可供殘疾人使用,例如:
然而,說可及性只是關(guān)于殘疾是錯(cuò)誤的。 真正的,無障礙的目的是使您的網(wǎng)站/應(yīng)用程序可以盡可能多的人在盡可能多的情況下使用,而不只是那些用戶使用大功率的臺(tái)式電腦。 極端的例子可能包括:
在某種程度上,這個(gè)整個(gè)模塊是關(guān)于輔助功能 - 跨瀏覽器測(cè)試確保您的網(wǎng)站可以盡可能多的人使用。 什么是輔助功能?定義的輔助功能比本文更完整和全面。
也就是說,本文將介紹關(guān)于殘疾人的跨瀏覽器和測(cè)試問題,以及他們?nèi)绾问褂肳eb。 我們已經(jīng)討論過其他領(lǐng)域,例如自適應(yīng)設(shè)計(jì)和性能 a>在模塊中的其他地方。
注意:與網(wǎng)絡(luò)開發(fā)中的很多事情一樣,輔助功能并不是100%的成功與否; 100%的可訪問性幾乎不可能實(shí)現(xiàn)所有內(nèi)容,特別是當(dāng)網(wǎng)站變得更復(fù)雜。 相反,它更多是為了盡可能多的內(nèi)容,盡可能多的人,通過防御性的代碼,堅(jiān)持最好的做法。
在本節(jié)中,我們將詳細(xì)介紹與網(wǎng)絡(luò)可訪問性相關(guān)的一些主要問題,以及與特定技術(shù)相關(guān)的最佳做法,以及一些快速測(cè)試,以了解您的網(wǎng)站是否朝著正確的方向進(jìn)行。
注意:輔助功能在道德上是正確的做法,對(duì)商業(yè)有利(禁用用戶數(shù)量,移動(dòng)設(shè)備上的用戶等)呈現(xiàn)重要的細(xì)分市場(chǎng),但它也違反了許多法律 部分地區(qū),使殘疾人無法使用網(wǎng)絡(luò)資源。 有關(guān)詳細(xì)信息,請(qǐng)閱讀輔助功能指南和法律。
語義HTML(其中元素用于它們的正確目的)可以直接訪問 - 這樣的內(nèi)容是可見的觀看者可讀的(只要你不做任何愚蠢的使文本方式太小或使用CSS隱藏它) ,但也可以通過諸如屏幕閱讀器(向用戶逐字地讀出網(wǎng)頁(yè)的應(yīng)用)等輔助技術(shù)使用,并且還具有其他優(yōu)點(diǎn)。
語義HTML中最重要的快速勝利是為您的內(nèi)容使用標(biāo)題和段落的結(jié)構(gòu); 這是因?yàn)槠聊婚喿x器用戶傾向于使用文檔的標(biāo)題作為路標(biāo)來更快地找到他們需要的內(nèi)容。 如果你的內(nèi)容沒有標(biāo)題,他們會(huì)得到一個(gè)巨大的文本墻,沒有路標(biāo)找到任何東西。 壞的和好的HTML的示例:
<font size="7">My heading</font> <br><br> This is the first section of my document. <br><br> I'll add another paragraph here too. <br><br> <font size="5">My subheading</font> <br><br> This is the first subsection of my document. I'd love people to be able to find this content! <br><br> <font size="5">My 2nd subheading</font> <br><br> This is the second subsection of my content. I think is more interesting than the last one.
<h1>My heading</h1> <p>This is the first section of my document.</p> <p>I'll add another paragraph here too.</p> <h2>My subheading</h2> <p>This is the first subsection of my document. I'd love people to be able to find this content!</p> <h2>My 2nd subheading</h2> <p>This is the second subsection of my content. I think is more interesting than the last one.</p>
此外,你的內(nèi)容應(yīng)該在源順序上有邏輯意義 - 你總是可以把它放在你希望使用CSS的地方,但你應(yīng)該得到開始的源順序。
作為一個(gè)測(cè)試,你可以關(guān)閉一個(gè)網(wǎng)站的CSS,看看它是如何可以沒有它。 您可以通過從代碼中刪除CSS手動(dòng)執(zhí)行此操作,但最簡(jiǎn)單的方法是使用瀏覽器功能,例如:
某些HTML功能只能使用鍵盤來選擇 - 這是默認(rèn)行為,從網(wǎng)絡(luò)的早期可用。 具有此功能的元素是允許用戶與網(wǎng)頁(yè)互動(dòng)的常見元素,即鏈接, "title ="HTML按鈕元素表示一個(gè)可點(diǎn)擊的按鈕。>> < button>
,并且形成 / zh-CN / docs / Web / HTML / Element / input"title ="HTML輸入元素用于為基于Web的表單創(chuàng)建交互式控件,以便接受來自用戶的數(shù)據(jù)。 其type屬性的值"> < input>
。
您可以使用我們的 "> native-keyboard-accessibility.html 示例(請(qǐng)參閱 accessibility / native-keyboard-accessibility.html"class ="external">源代碼) - 在新標(biāo)簽頁(yè)中打開,然后嘗試按Tab鍵; 幾個(gè)按下后,你應(yīng)該看到標(biāo)簽焦點(diǎn)開始移動(dòng)通過不同的可聚焦元素; 焦點(diǎn)元素在每個(gè)瀏覽器中都有一個(gè)突出顯示的默認(rèn)樣式(它在不同瀏覽器之間略有不同),以便您可以知道所關(guān)注的元素。
height:39px; margin:0px auto; width:288px;">
然后,您可以按Enter / Return鍵以關(guān)注焦點(diǎn)鏈接或按下按鈕(我們已包含一些JavaScript以使按鈕發(fā)出警告消息),或開始輸入以在文本輸入中輸入文本(其他表單元素具有不同的控件, 例如 > < select>
元素可以使用向上和向下箭頭鍵顯示和循環(huán)選項(xiàng))。
請(qǐng)注意,不同的瀏覽器可能有不同的鍵盤控制選項(xiàng)。 大多數(shù)現(xiàn)代瀏覽器都遵循上述的選項(xiàng)卡模式(您也可以通過Shift + Tab向后移動(dòng)可聚焦元素),但某些瀏覽器具有自己的特性:
重要:您應(yīng)該對(duì)您撰寫的任何新網(wǎng)頁(yè)執(zhí)行此類測(cè)試,確保鍵盤可以訪問該功能。
此示例強(qiáng)調(diào)了為正確的作業(yè)使用正確的語義元素的重要性。 可以將任何元素設(shè)置為類似于具有CSS的鏈接或按鈕,并且表現(xiàn)得像帶有JavaScript的鏈接或按鈕,但它們實(shí)際上不是鏈接或按鈕, 失去了很多的可訪問性這些元素給你免費(fèi)。 所以,不要這樣做,如果你可以避免它。
另一個(gè)提示 - 如我們的示例所示,您可以使用 >:focus 偽類。 這是一個(gè)好主意,加倍的焦點(diǎn)和懸停樣式,所以你的用戶得到的視覺線索,控件將做什么時(shí)激活,無論他們是使用鼠標(biāo)或鍵盤:
a:hover, input:hover, button:hover, select:hover, a:focus, input:focus, button:focus, select:focus { font-weight: bold; }
注意:如果您決定使用CSS刪除默認(rèn)焦點(diǎn)樣式,請(qǐng)確保將其替換為更適合您的設(shè)計(jì)的其他東西 - 這是一個(gè)非常有價(jià)值的可訪問性工具,不應(yīng)該 刪除。
有時(shí),不可能避免失去鍵盤輔助功能。 你可能已經(jīng)繼承了一個(gè)語義不是很好的網(wǎng)站(也許你最終會(huì)遇到一個(gè)可怕的CMS,它產(chǎn)生用< div>
s制作的按鈕),或者你使用一個(gè)復(fù)雜的控件 其中沒有內(nèi)置鍵盤輔助功能,例如HTML5 將視頻內(nèi)容嵌入到文檔中。"> < video>
元素(令人驚訝的是,Opera是唯一允許您通過< video>
>元素的默認(rèn)瀏覽器控件)。 這里有幾個(gè)選項(xiàng):
<button>
elements (which we can tab to by default!) and JavaScript to wire up their functionality. See Creating a cross-browser video player for some good examples of this.<div>
buttons the ability to be focused (including via tab) by giving each one the attribute tabindex="0"
(see WebAIM's tabindex article for more really useful details). This allows us to tab to the buttons, but not to activate them via the Enter/Return key. To do that, we had to add the following bit of JavaScript trickery: document.onkeydown = function(e) { if(e.keyCode === 13) { // The Enter/Return key document.activeElement.onclick(e); } };Here we add a listener to the
document
object to detect when a button has been pressed on the keyboard. We check what button was pressed via the event object's keyCode property; if it is the keycode that matches Return/Enter, we run the function stored in the button's onclick
handler using document.activeElement.onclick()
. activeElement
gives us the element that is currently focused on the page.注意:只有通過事件處理程序?qū)傩?例如 onclick
)設(shè)置原始事件處理程序時(shí),此技術(shù)才有效。 addEventListener
將無法工作。 這是一個(gè)很多額外的麻煩,建立的功能回來。有一定的其他問題。 更好地只是使用正確的元素為正確的工作在第一位。
文本替代對(duì)于可訪問性是非常重要的 - 如果一個(gè)人有視覺或聽力障礙,阻止他們能夠看到或聽到一些內(nèi)容,那么這是一個(gè)問題。 最簡(jiǎn)單的文本替代方法是謙遜的 alt
屬性,我們應(yīng)該在包含相關(guān)內(nèi)容的所有圖片上添加。 這應(yīng)該包含成功傳達(dá)其在頁(yè)面上的含義和內(nèi)容的圖像的描述,由屏幕讀取器拾取并讀出給用戶。
注意:有關(guān)詳情,請(qǐng)閱讀替代文字。
缺少替代文字可以通過多種方式測(cè)試,例如使用輔助功能審核工具。
缺少替代文字可以通過多種方式測(cè)試,例如使用輔助功能審核工具。...
在HTML中有一些特性和最佳實(shí)踐,旨在提供上下文以及其他不存在的元素之間的關(guān)系。 三個(gè)最常見的示例是鏈接,表單標(biāo)簽和數(shù)據(jù)表。
可訪問鏈接文本的關(guān)鍵是,使用屏幕閱讀器的人通常會(huì)使用一個(gè)共同的功能,他們拉起頁(yè)面上的所有鏈接的列表。 在這種情況下,鏈接文本需要使文本超出內(nèi)容。 例如,標(biāo)記為"點(diǎn)擊這里","點(diǎn)擊這里"等的鏈接的列表對(duì)于可訪問性是非常糟糕的。 鏈接文本在上下文和上下文中更有意義。
接下來,我們的列表中顯示 用戶界面。"> < label>
元素是允許我們使表單可訪問的核心功能之一。 表單的麻煩是你需要標(biāo)簽來說明應(yīng)該在每個(gè)表單輸入中輸入什么數(shù)據(jù)。 每個(gè)標(biāo)簽都需要包含在 "> < label>
將其明確鏈接到其合作伙伴表單輸入(每個(gè)< label>
代碼>屬性值需要匹配表單元素
id
值),即使源順序不完全合乎邏輯(這是公平的)應(yīng)該是有意義的。
注意:有關(guān)鏈接文字和表單標(biāo)簽的詳情,請(qǐng)閱讀有意義的文字標(biāo)簽。
最后,一個(gè)關(guān)于數(shù)據(jù)表的快速詞。 基本數(shù)據(jù)表可以用非常簡(jiǎn)單的標(biāo)記來編寫(參見 bad-table.html
table.html"class ="external"> live 和 class ="external"> source ),但這有問題 - 屏幕閱讀器用戶沒有辦法將行或列組合在一起作為數(shù)據(jù)分組 - 為此,您需要知道標(biāo)題行是什么 ,并且如果它們向上行,列等。這只能對(duì)于這樣的表可視地進(jìn)行。
如果您改為查看我們的 external"> punk bands table example ,您可以在這里看到一些輔助工具,例如表頭( / HTML / Element / th"title ="HTML元素將一個(gè)單元格定義為一組表格單元格的標(biāo)題,這個(gè)組合的屬性由范圍和標(biāo)題屬性定義。"> < th>
和 scope
屬性), "HTML caption元素表示表的標(biāo)題,雖然它始終是表的第一個(gè)后代,但它的樣式,使用CSS,可以放置在相對(duì)于表的其他地方。"> < caption>
代碼> 元素等。
注意:有關(guān)可訪問表的詳細(xì)信息,請(qǐng)閱讀可訪問數(shù)據(jù)表。
CSS傾向于提供比HTML更少的基本可訪問性功能,但是如果使用不正確,它仍然可以對(duì)可訪問性造成同樣多的損害。 我們已經(jīng)提到了幾個(gè)涉及CSS的無障礙提示:
font-size
, not an <h1>
element.還有一些其他注意事項(xiàng),你應(yīng)該考慮。
當(dāng)為您的網(wǎng)站選擇配色方案時(shí),應(yīng)確保文本(前景)顏色與背景顏色形成良好對(duì)比。 你的設(shè)計(jì)可能看起來很酷,但如果有視覺障礙(如色盲)的人無法讀取你的內(nèi)容,那就不好了。 使用WebAIM的顏色對(duì)比檢查器等工具檢查您的方案是否足夠?qū)Ρ取?/span>
另一個(gè)提示是不僅僅依賴于顏色單獨(dú)用于路標(biāo)/信息,因?yàn)檫@對(duì)于不能看到顏色的人來說是沒有好處的。 而不是將所需的表單字段標(biāo)記為紅色,例如,用星號(hào)和紅色標(biāo)記。
注意:高對(duì)比度還可以允許任何使用智能手機(jī)或平板電腦屏幕的用戶在明亮的環(huán)境(例如陽光)下更好地閱讀頁(yè)面。
在許多情況下,視覺設(shè)計(jì)將要求不是一次顯示所有內(nèi)容。 例如,在我們的標(biāo)簽信息 框示例(請(qǐng)參閱 ="external">源代碼),我們有三個(gè)面板的信息,但我們定位它們之間的頂部,并提供選項(xiàng)卡 可以點(diǎn)擊顯示每一個(gè)(它也可以鍵盤訪問 - 您也可以使用Tab和Enter / Return選擇它們)。
;">
屏幕閱讀器用戶不關(guān)心任何這些 - 他們對(duì)內(nèi)容感到滿意,只要源順序有意義,他們可以得到所有。 絕對(duì)定位(如本示例中所使用的)通常被視為隱藏視覺效果的內(nèi)容的最佳機(jī)制之一,因?yàn)樗粫?huì)阻止屏幕閱讀器到達(dá)它。
另一方面,您不應(yīng)使用 "> visibility
:hidden
或 https://developer.mozilla.org/zh-CN/docs/Web/CSS/display"title ="display CSS屬性指定用于元素的呈現(xiàn)框的類型。在HTML中,默認(rèn)顯示屬性值取自 在HTML規(guī)范或?yàn)g覽器/用戶默認(rèn)樣式表中描述的行為。XML中的默認(rèn)值是內(nèi)聯(lián)。"> display
:none
隱藏屏幕閱讀器的內(nèi)容。 除非當(dāng)然,有一個(gè)很好的理由,你希望這個(gè)內(nèi)容從屏幕閱讀器中隱藏。
注意: 僅供屏幕閱讀器用戶使用的隱形內(nèi)容 有關(guān)此主題的更多實(shí)用細(xì)節(jié)。
JavaScript在可訪問性方面與CSS有相同的問題 - 如果使用不當(dāng)或過度使用,可能會(huì)使災(zāi)難性的可訪問性。 我們已經(jīng)暗示了與JavaScript相關(guān)的一些輔助功能問題,主要是在語義HTML領(lǐng)域 - 您應(yīng)該始終使用適當(dāng)?shù)恼Z義HTML來實(shí)現(xiàn)功能,無論它在哪里可用,例如使用鏈接和按鈕適當(dāng)。 不要使用具有JavaScript代碼的< div>
元素來偽造功能,如果可能的話 - 它是容易出錯(cuò),比使用免費(fèi)功能HTML給你更多的工作。
通常,簡(jiǎn)單的功能應(yīng)該僅僅使用HTML - JavaScript只應(yīng)該用于增強(qiáng)功能,而不是完全建立。 JavaScript的良好用途包括:
<video>
s that are accessible to keyboard-only users (as we said earlier, the default browser controls aren't keyboard-accessible in most browsers).注意:WebAIM的可訪問JavaScript 提供了有關(guān)可訪問JavaScript的一些有用的進(jìn)一步詳細(xì)信息 。
更復(fù)雜的JavaScript實(shí)現(xiàn)可以提供可訪問性的問題 - 你需要做你能做的。 例如,期望您制作使用 WebGL 100撰寫的復(fù)雜3D游戲是不合理的 盲人可訪問的百分比,但您可以實(shí)施鍵盤控制,以便 可由非鼠標(biāo)用戶使用,并且使得顏色方案足夠?qū)Ρ纫员阌删哂蓄伾毕莸念伾桨缚捎谩?/span>
可訪問性的主要問題之一是復(fù)雜的應(yīng)用程序,其涉及復(fù)雜的表單控件(例如日期選擇器)和經(jīng)常和增量更新的動(dòng)態(tài)內(nèi)容。
非本地復(fù)雜的表單控件是有問題的,因?yàn)樗鼈儍A向于涉及大量嵌套的< div>
,并且瀏覽器默認(rèn)不知道如何處理它們。 如果你自己發(fā)明它們,你需要確保它們是鍵盤可訪問的; 如果您使用某種第三方框架,請(qǐng)仔細(xì)查看可用的選項(xiàng),以了解他們?cè)谶M(jìn)入之前的可訪問性。 Bootstrap a>看起來對(duì)于輔助功能來說相當(dāng)不錯(cuò),例如,雖然 /"class ="external">使Bootstrap更容易訪問 Rhiana Heath探討了它的一些問題(主要與顏色對(duì)比有關(guān)),并查看一些解決方案。
定期更新的動(dòng)態(tài)內(nèi)容可能是一個(gè)問題,因?yàn)閟creenreader用戶可能會(huì)錯(cuò)過它,特別是如果它意外更新。 如果您的單頁(yè)應(yīng)用具有主內(nèi)容面板,并且使用 XMLHttpRequest >或提取,屏幕閱讀器用戶可能會(huì)錯(cuò)過這些更新。
你需要使用這樣復(fù)雜的功能,還是普通的舊語義HTML? 如果您確實(shí)需要復(fù)雜性,則應(yīng)考慮使用 WAI-ARIA (可訪問富 互聯(lián)網(wǎng)應(yīng)用程序),一種為諸如復(fù)雜表單控件和更新面板之類的項(xiàng)目提供語義(以新HTML屬性的形式)的規(guī)范,大多數(shù)瀏覽器和屏幕閱讀器都可以理解。
要處理復(fù)雜的窗體小部件,您需要使用ARIA屬性,如 roles
來說明不同元素在窗口小部件中具有什么樣的作用(例如,它們是一個(gè)制表符還是制表符面板?), > aria-disabled
來說明控件是否被禁用等。
要處理復(fù)雜的窗體小部件,您需要使用ARIA屬性,如 roles
來說明不同元素在窗口小部件中具有什么樣的作用(例如,它們是一個(gè)制表符還是制表符面板?), > aria-disabled
來說明控件是否被禁用等。...
off:
The default. Updates should not be announced.polite
: Updates should be announced only if the user is idle.assertive
: Updates should be announced to the user as soon as possible.rude
: Updates should be announced straight away, even if this interrupts the user.這里有一個(gè)例子:
<p><span id="LiveRegion1" aria-live="polite" aria-atomic="false"></span></p>
您可以在Freedom Scientific的 ARIA(可訪問的富互聯(lián)網(wǎng)應(yīng)用)直播區(qū)域 示例 - 突出顯示的段落應(yīng)該每10秒更新一次內(nèi)容,屏幕閱讀器應(yīng)該向用戶顯示此內(nèi)容。 ARIA Live Regions - Atomic 提供了另一個(gè)有用的示例。
我們?cè)谶@里沒有詳細(xì)討論WAI-ARIA的空間,您可以在 WAI-ARIA基礎(chǔ)知識(shí)中了解更多內(nèi)容。
現(xiàn)在我們已經(jīng)介紹了不同Web技術(shù)的輔助功能考慮,包括一些測(cè)試技術(shù)(例如鍵盤導(dǎo)航和顏色對(duì)比檢查器),讓我們來看看其他可以在進(jìn)行輔助功能測(cè)試時(shí)使用的工具。
有許多可用的審核工具,您可以指向您的網(wǎng)頁(yè),它們將查看它們,并返回頁(yè)面上存在的輔助功能問題列表。 示例包括:
讓我們看一個(gè)例子,使用Tenon。
593px; margin:0px auto; width:870px;">
您還可以瀏覽一些選項(xiàng)(請(qǐng)參閱頁(yè)面頂部附近的顯示選項(xiàng)鏈接),以及使用Tenon以編程方式使用的API。
注意:此類工具不夠好,無法自行解決您的所有輔助功能問題。 您將需要這些,知識(shí)和經(jīng)驗(yàn),用戶測(cè)試等的組合,以獲得全面的圖片。
Deque的斧頭工具比我們上面提到的審核工具更進(jìn)一步。 像其他人一樣,它檢查頁(yè)面并返回可訪問性錯(cuò)誤。 它最直接有用的形式可能是瀏覽器擴(kuò)展:
這些向?yàn)g覽器開發(fā)人員工具添加了一個(gè)無障礙選項(xiàng)卡。 例如,我們安裝了Firefox版本,然后用它來審核我們的 bad-table.html 示例。 我們得到以下結(jié)果:
>
ax也可以使用 npm
安裝,并且可以與任務(wù)運(yùn)行器(如 Grunt 和 class ="external"> Gulp ,自動(dòng)化框架如 Selenium 和 Cucumber ,單元測(cè)試框架如 Jasmin ,以及更多其他內(nèi)容(同樣,請(qǐng)參閱主軸頁(yè)面 了解詳情)。
這絕對(duì)值得用屏幕閱讀器來測(cè)試,以習(xí)慣視障人士使用網(wǎng)絡(luò)的嚴(yán)重程度。 有許多屏幕閱讀器可用:
通常,屏幕閱讀器是在主機(jī)操作系統(tǒng)上運(yùn)行的單獨(dú)應(yīng)用,并且不僅可以讀取網(wǎng)頁(yè),而且可以讀取其他應(yīng)用中的文本。 這并不總是這樣(ChromeVox是一個(gè)瀏覽器擴(kuò)展),但通常。 屏幕閱讀器傾向于以稍微不同的方式操作并具有不同的控件,因此您必須查閱所選屏幕閱讀器的文檔以獲取所有詳細(xì)信息 - 說它們都以基本相同的方式工作。
讓我們通過幾個(gè)不同的屏幕閱讀器進(jìn)行一些測(cè)試,給你一個(gè)大致的想法,他們?nèi)绾喂ぷ?,如何與他們測(cè)試。
注意:WebAIM的設(shè)計(jì)屏幕閱讀器兼容性提供了有關(guān)屏幕閱讀器使用情況的一些有用信息 和什么最適合屏幕閱讀器。 另請(qǐng)參閱屏幕閱讀器用戶調(diào)查#6結(jié)果,了解一些有趣的屏幕閱讀器使用情況統(tǒng)計(jì)信息。
VoiceOver(VO)隨您的Mac / iPhone / iPad免費(fèi),所以如果你使用蘋果產(chǎn)品,它是有用的測(cè)試桌面/移動(dòng)。 我們將在Mac OS X的Mac OS X上測(cè)試它。
要打開它,請(qǐng)按Cmd + Fn + F5。 如果你以前沒有使用過VO,你會(huì)得到一個(gè)歡迎屏幕,在那里你可以選擇啟動(dòng)VO或不,并運(yùn)行一個(gè)相當(dāng)有用的教程,以了解如何使用它。 要再次關(guān)閉它,請(qǐng)?jiān)俅伟碈md + Fn + F5。
注意:您應(yīng)該至少進(jìn)行一次教程 - 這是一個(gè)非常有用的方式來學(xué)習(xí)VO。
當(dāng)VO打開時(shí),顯示器將看起來大體相同,但是您將在屏幕的左下方看到一個(gè)黑色框,其中包含有關(guān)當(dāng)前所選擇的VO的信息。 當(dāng)前選擇也將突出顯示,帶有黑色邊框 - 此突出顯示稱為 VO光標(biāo)。
margin:0px auto; width:800px;">
要使用VO,你將大量使用"VO修改器" - 這是一個(gè)鍵或鍵組合,你需要按除了實(shí)際的VO鍵盤快捷鍵,讓他們工作。 使用這樣的修飾符對(duì)于screenreaders是常見的,以使它們能夠保持其命令不與其他命令沖突。 在VO的情況下,修飾符可以是CapsLock或Ctrl + Option。
VO有很多鍵盤命令,我們不會(huì)在這里列出。 網(wǎng)頁(yè)測(cè)試所需的基本功能如下表所示。 在鍵盤快捷鍵中,"VO"表示"VoiceOver修改器"。
鍵盤快捷鍵 | 描述 |
---|---|
VO +光標(biāo)鍵 | 向上,向右,向下,向左移動(dòng)VO光標(biāo)。 |
VO +空格鍵 | 選擇/激活由VO光標(biāo)突出顯示的項(xiàng)目。 這包括在轉(zhuǎn)子中選擇的項(xiàng)目(見下文)。 |
VO + Shift +向下光標(biāo) | 移動(dòng)到一組項(xiàng)目(例如HTML表或表單等)。一旦進(jìn)入組,您可以移動(dòng),并使用上述命令正常選擇該組中的項(xiàng)目。 |
VO + Shift +向上光標(biāo) | 離開組。 |
VO + C | (當(dāng)在表中時(shí))讀取當(dāng)前列的標(biāo)題。 |
VO + R | (在表中時(shí))讀取當(dāng)前行的標(biāo)題。 |
VO + C + C(兩個(gè)Cs連續(xù)) | (當(dāng)在表中時(shí))讀取整個(gè)當(dāng)前列,包括標(biāo)題。 |
VO + R + R(兩個(gè)Rs連續(xù)) | (在表中)讀取整個(gè)當(dāng)前行,包括對(duì)應(yīng)于每個(gè)單元格的標(biāo)題。 |
VO +左光標(biāo),VO +右光標(biāo) | (當(dāng)在一些水平選項(xiàng)內(nèi)時(shí),如日期或時(shí)間選擇器)在選項(xiàng)之間移動(dòng)。 |
VO +向上光標(biāo),VO +向下光標(biāo) | (當(dāng)在某些水平選項(xiàng)內(nèi)時(shí),如日期或時(shí)間選擇器)更改當(dāng)前選項(xiàng)。 |
VO + U | 使用Rotor,顯示標(biāo)題,鏈接,表單控件等的列表,以方便導(dǎo)航。 |
VO +左光標(biāo),VO +右光標(biāo) | (在轉(zhuǎn)子內(nèi)時(shí))在轉(zhuǎn)子中可用的不同列表之間移動(dòng)。 |
VO +向上光標(biāo),VO +向下光標(biāo) | (在Rotor中時(shí))在當(dāng)前Rotor列表中的不同項(xiàng)目之間移動(dòng)。 |
Esc | (轉(zhuǎn)子內(nèi))退出轉(zhuǎn)子。 |
Ctrl | (當(dāng)VO正在講話時(shí))暫停/恢復(fù)講話。 |
VO + Z | 重新啟動(dòng)語音的最后一位。 |
VO + D | 進(jìn)入Mac的Dock,所以你可以選擇應(yīng)用程序在其中運(yùn)行。 |
這似乎很多命令,但它并沒有那么糟糕,當(dāng)你習(xí)慣它,和VO定期給你提醒什么命令在某些地方使用。 現(xiàn)在有一個(gè)玩VO! 您可以在屏幕閱讀器測(cè)試部分中繼續(xù)使用我們的一些示例。
NVDA僅限Windows,您需要安裝它。
NVDA現(xiàn)在將在您的計(jì)算機(jī)上處于活動(dòng)狀態(tài)。
要使用NVDA,您將大量使用"NVDA修改器" - 這是一個(gè)鍵,除了實(shí)際的NVDA鍵盤快捷鍵,您需要按下,以使他們工作。 使用這樣的修飾符對(duì)于screenreaders是常見的,以使它們能夠保持其命令不與其他命令沖突。 在NVDA的情況下,修飾符可以是Insert(默認(rèn))或CapsLock(可以通過選中NVDA歡迎對(duì)話框中的第一個(gè)復(fù)選框,然后按確定選擇)。
注意:NVDA比VoiceOver更明顯,就如何突出顯示它的位置以及它正在做什么。 當(dāng)您滾動(dòng)標(biāo)題,列表等時(shí),您選擇的項(xiàng)目通常會(huì)突出顯示一個(gè)微妙的輪廓,但這并不總是適用于所有情況。 如果完全丟失,可以按Ctrl + F5刷新當(dāng)前頁(yè)面,然后再次從頂部開始。
NVDA有很多鍵盤命令,我們不會(huì)在這里列出。 網(wǎng)頁(yè)測(cè)試所需的基本功能如下表所示。 在鍵盤快捷鍵中,"NVDA"表示"NVDA修改器"。
描述 | 描述 |
---|---|
NVDA + Q | 啟動(dòng)NVDA后再次關(guān)閉。 |
NVDA +向上光標(biāo) | 讀取當(dāng)前行。 |
NVDA +向下光標(biāo) | 開始讀取當(dāng)前位置。 |
向上光標(biāo)和向下光標(biāo),或Shift + Tab和Tab | 移動(dòng)到頁(yè)面上的上一個(gè)/下一個(gè)項(xiàng)目并讀取它。 |
左光標(biāo)和右光標(biāo) | 移動(dòng)到當(dāng)前項(xiàng)目中的上一個(gè)/下一個(gè)字符并讀取它。 |
Shift + H和H | 移動(dòng)到上一個(gè)/下一個(gè)標(biāo)題并閱讀。 |
Shift + K和K | 移動(dòng)到上一個(gè)/下一個(gè)鏈接并讀取它。 |
Shift + D和D | Move to previous/next document landmark (e.g. <nav> ) and read it. |
Shift + 1-6和1-6 | 移動(dòng)到上一個(gè)/下一個(gè)標(biāo)題(1-6級(jí))并讀取它。 |
Shift + F和F | 移動(dòng)到上一個(gè)/下一個(gè)表單輸入并對(duì)其進(jìn)行聚焦。 |
Shift + T和T | 移動(dòng)到上一個(gè)/下一個(gè)數(shù)據(jù)表,并對(duì)其進(jìn)行聚焦。 |
Shift + B和B | 移動(dòng)到上一個(gè)/下一個(gè)按鈕并讀取其標(biāo)簽。 |
Shift + L和L | 移動(dòng)到上一個(gè)/下一個(gè)列表,并讀取其第一個(gè)列表項(xiàng)。 |
Shift + I和I | 移動(dòng)到上一個(gè)/下一個(gè)列表項(xiàng)并讀取它。 |
Enter/Return | (當(dāng)選擇鏈接/按鈕或其他可激活項(xiàng)目時(shí))激活項(xiàng)目。 |
NVDA +空間 | (當(dāng)選擇表單時(shí))輸入表單,以便可以選擇單個(gè)項(xiàng)目,或者如果已經(jīng)在表單中,則離開表單。 |
Shift標(biāo)簽和Tab鍵 | (當(dāng)在內(nèi)部形式時(shí))在表單輸入之間移動(dòng)。 |
向上光標(biāo)和向下光標(biāo) | (當(dāng)在內(nèi)部形式時(shí))更改表單輸入值(在選擇框等情況下)。 |
Spacebar | (當(dāng)在內(nèi)部形式時(shí))選擇所選值。 |
Ctrl + Alt +光標(biāo)鍵 | (當(dāng)選擇表時(shí))在表單元格之間移動(dòng)。 |
現(xiàn)在你已經(jīng)習(xí)慣了使用屏幕閱讀器,我們希望你使用它來做一些快速的輔助功能測(cè)試,以了解屏幕閱讀器如何處理好的和壞的網(wǎng)頁(yè)功能:
<label>
elements properly. In bad-form.html, they get an unhelpful label along the lines of "blank".如上所述,您不能僅依靠自動(dòng)化工具來確定您網(wǎng)站上的輔助功能問題。 建議您在制定測(cè)試計(jì)劃時(shí),應(yīng)盡可能包含一些輔助功能用戶組(請(qǐng)參閱我們的用戶測(cè)試部分) 在一些更多的上下文中)。 嘗試讓一些screenreader用戶參與,一些僅鍵盤用戶,一些非聽覺用戶,也可能是其他組,以滿足您的要求。
以下列表提供了一個(gè)清單,您可以按照此清單來確保您已為項(xiàng)目執(zhí)行了建議的輔助功能測(cè)試:
還有許多其他問題,你會(huì)遇到無障礙; 最重要的事情,知道真正是如何在網(wǎng)上找到答案。 有關(guān)一些好的指標(biāo),請(qǐng)參閱HTML和CSS文章的查找?guī)椭糠?/a>。
希望這篇文章給你一個(gè)很好的基礎(chǔ)在主要的可訪問性問題,你可能會(huì)遇到,以及如何測(cè)試和克服他們。
在下一篇文章中,我們將更詳細(xì)地介紹特性檢測(cè)。
更多建議: