先決條件: | 基本的計(jì)算機(jī)知識(shí),對(duì)HTML,CSS和JavaScript的基本了解,了解課程中的以前的文章。 |
---|---|
目的: | 了解移動(dòng)設(shè)備上的輔助功能存在哪些問題,以及如何克服這些問題。 |
可訪問性的狀態(tài) - 和對(duì)一般的web標(biāo)準(zhǔn)的支持 - 在現(xiàn)代移動(dòng)設(shè)備中是好的。 移動(dòng)設(shè)備運(yùn)行完全不同的網(wǎng)絡(luò)技術(shù)到桌面瀏覽器,迫使開發(fā)人員使用瀏覽器嗅探并為他們完全獨(dú)立的網(wǎng)站(盡管有不少公司仍然檢測(cè)到移動(dòng)設(shè)備的使用并為他們提供單獨(dú)的移動(dòng)域)的日子已經(jīng)過去了。
近來,移動(dòng)設(shè)備一般可以處理"全胖"網(wǎng)站,而主平臺(tái)甚至還內(nèi)置了屏幕閱讀器,以使盲人用戶成功使用它們。 現(xiàn)代移動(dòng)瀏覽器對(duì) WAI-ARIA 也有很好的支持。
要使網(wǎng)站在移動(dòng)設(shè)備上可訪問和可用,您主要只需要遵循一般的良好網(wǎng)絡(luò)設(shè)計(jì)和輔助功能的最佳做法。
有一些例外,需要特別考慮移動(dòng); 主要有:
最常見的移動(dòng)平臺(tái)具有全功能的屏幕閱讀器。 這些功能與桌面屏幕閱讀器的功能大致相同,只是它們主要使用觸摸手勢(shì)而不是按鍵組合來操作。
讓我們來看看主要的兩個(gè) - Android上的TalkBack和iOS上的VoiceOver。
TalkBack屏幕閱讀器內(nèi)置于Android操作系統(tǒng)中。
要開啟此功能,請(qǐng)選擇設(shè)置> 輔助功能> TalkBack ,然后按滑塊開關(guān)將其打開。 按照顯示的任何其他屏幕提示進(jìn)行操作。
注意:舊版的TalkBack已在 class ="external">略有不同的方法。
當(dāng)TalkBack開啟時(shí),您Android設(shè)備的基本控件會(huì)有所不同。 例如:
如果您想關(guān)閉TalkBack:
注意:您可以隨時(shí)向上滑動(dòng)并向左滑動(dòng),隨時(shí)訪問主屏幕。 如果您有多個(gè)主屏幕,您可以通過向左和向右滑動(dòng)兩個(gè)手指在它們之間移動(dòng)。
注意:有關(guān)完整的TalkBack手勢(shì)列表,請(qǐng)參閱使用TalkBack 手勢(shì)。
當(dāng)"話語提示"打開時(shí),解鎖手機(jī)有點(diǎn)不同。
您可以從鎖定屏幕底部向上滑動(dòng)兩個(gè)手指。 如果您已設(shè)置解鎖設(shè)備的密碼或模式,則會(huì)進(jìn)入相關(guān)輸入屏幕進(jìn)行輸入。
您也可以觸摸瀏覽,找到屏幕底部中間的解鎖按鈕,然后點(diǎn)按兩次。
TalkBack允許您訪問全局和本地上下文菜單,無論您在設(shè)備上導(dǎo)航到哪里。 前者提供與設(shè)備整體相關(guān)的全局選項(xiàng),后者提供僅與當(dāng)前應(yīng)用/屏幕相關(guān)的選項(xiàng)。
要訪問這些菜單:
有關(guān)全局和本地上下文菜單下的所有選項(xiàng)的詳細(xì)信息,請(qǐng)參見使用全局和本地上下文 菜單。
您可以在Web瀏覽器中使用本地上下文菜單來查找僅使用標(biāo)題,表單控件或鏈接,逐行瀏覽等導(dǎo)航網(wǎng)頁的選項(xiàng)。
例如,啟用"話語提示"后:
注意:請(qǐng)參見開始使用 Android with TalkBack 以獲得更完整的文檔。
iOS操作系統(tǒng)中內(nèi)置了VoiceOver的移動(dòng)版本。
要開啟此功能,請(qǐng)轉(zhuǎn)到您的設(shè)置應(yīng)用,然后選擇常規(guī)> 輔助功能> VoiceOver 。 按 VoiceOver 滑塊即可啟用(此頁面上還會(huì)顯示與VoiceOver相關(guān)的其他選項(xiàng))。
一旦VoiceOver啟用,iOS基本控制手勢(shì)會(huì)有一點(diǎn)不同:
要再次關(guān)閉它,您必須返回到設(shè)置> 一般> 輔助功能> VoiceOver 使用上述手勢(shì),然后將 VoiceOver 滑塊切換回關(guān)閉。
要解鎖手機(jī),您需要按照主頁按鈕(或滑動(dòng))照常。 如果您設(shè)置了密碼,您可以通過滑動(dòng)/滑動(dòng)(如上所述)選擇每個(gè)號(hào)碼,然后在找到正確的號(hào)碼后雙擊輸入每個(gè)號(hào)碼。
當(dāng)VoiceOver打開時(shí),您有一個(gè)稱為Rotor的導(dǎo)航功能,您可以從中快速選擇一些常見的有用選項(xiàng)。 使用它:
Rotor下可用的選項(xiàng)是上下文相關(guān)的 - 它們將根據(jù)您所在的應(yīng)用程序或視圖而有所不同(參見下面的示例)。
讓我們使用VoiceOver進(jìn)行網(wǎng)絡(luò)瀏覽:
注意:有關(guān)可用的VoiceOver手勢(shì)和其他有關(guān)iOS輔助功能測(cè)試的提示的更完整的參考資料,請(qǐng)參閱 TestingAccessibilityOfiOSApps / TestAccessibilityonYourDevicewithVoiceOver / TestAccessibilityonYourDevicewithVoiceOver.html#// apple_ref / doc / uid / TP40012619-CH3"class ="external">使用VoiceOver在您的設(shè)備上測(cè)試輔助功能。
在我們的CSS和JavaScript無障礙文章中,我們研究了特定類型的控件機(jī)制的事件的概念(請(qǐng)參見鼠標(biāo)特定事件 )。 總而言之,這些引起輔助功能問題,因?yàn)槠渌刂茩C(jī)制無法激活關(guān)聯(lián)的功能。
例如,點(diǎn)擊事件在訪問方面很好 - 相關(guān)聯(lián)的 事件處理程序可以通過單擊處理程序設(shè)置的元素,標(biāo)簽到它并按Enter / Return或在觸摸屏設(shè)備上點(diǎn)擊它來調(diào)用。 請(qǐng)嘗試我們的 simple-button-example.html 示例(查看它正在運(yùn)行 >)看看我們的意思。
另一方面,特定于鼠標(biāo)的事件(如 mousedown 和 "https://developer.mozilla.org/zh-CN/docs/Web/API/GlobalEventHandlers/onmouseup\"> mouseup 創(chuàng)建問題 - 無法使用非鼠標(biāo)控件調(diào)用其事件處理程序。
如果您嘗試控制我們的簡單框 -drag.html ( see example live / a>)示例與鍵盤或觸摸,你會(huì)看到的問題。 這是因?yàn)槲覀兪褂玫拇a如下:
div.onmousedown = function() { initialBoxX = div.offsetLeft; initialBoxY = div.offsetTop; movePanel(); } document.onmouseup = stopMove;
要啟用其他形式的控制,您需要使用其他等效事件,例如觸摸事件在觸摸屏設(shè)備上工作:
div.ontouchstart = function(e) { ? initialBoxX = div.offsetLeft; ? initialBoxY = div.offsetTop; ? positionHandler(e); ? movePanel(); } panel.ontouchend = stopMove;
我們提供了一個(gè)簡單的示例,說明如何同時(shí)使用鼠標(biāo)和觸摸事件 - 請(qǐng)參閱 -box-drag.html"class ="external"> multi-control-box-drag.html ( multi-control-box-drag.html"class ="external">查看示例live 也)。
響應(yīng)式設(shè)計(jì)是讓您的應(yīng)用的布局和其他功能動(dòng)態(tài) 根據(jù)諸如屏幕尺寸和分辨率的因素而改變,因此它們對(duì)于不同設(shè)備類型的用戶是可用的和可訪問的。
特別是,需要解決的最常見的問題是移動(dòng)的:
請(qǐng)注意:我們不會(huì)在這里提供響應(yīng)式設(shè)計(jì)技術(shù)的完整討論,因?yàn)樗鼈冊(cè)贛DN的其他地方(參見上面的鏈接)。
在網(wǎng)站在移動(dòng)設(shè)備上更容易訪問時(shí),還有其他重要的注意事項(xiàng)。 我們?cè)谶@里列出了一對(duì)夫婦,但是當(dāng)我們想到他們時(shí)會(huì)增加更多。
使用視口,可以在您的 title ="HTML頭元素提供有關(guān)文檔的一般信息(元數(shù)據(jù)),包括其標(biāo)題和指向 其腳本和樣式表。"> < head>
:
<meta name="viewport" content="user-scalable=no">
你應(yīng)該永遠(yuǎn)不要這樣做,如果在所有可能 - 許多人會(huì)依靠放大,以便能夠看到你的網(wǎng)站的內(nèi)容,所以把這個(gè)功能遠(yuǎn)離他們是一個(gè)很糟糕的主意。 在某些情況下,縮放可能會(huì)破壞UI; 在這種情況下,如果你覺得你絕對(duì)需要禁用縮放,你應(yīng)該提供一些其他類型的等效,例如增加文本大小的控件,以不破壞你的UI。
由于移動(dòng)設(shè)備上的屏幕窄得多,因此在移動(dòng)設(shè)備上查看網(wǎng)站時(shí),使用媒體查詢和其他技術(shù)使導(dǎo)航菜單縮小到顯示屏頂部的小圖標(biāo)是非常常見的,這可以是 按下以僅在需要時(shí)顯示菜單。 這通常由"三水平線"圖標(biāo)表示,并且設(shè)計(jì)模式因此被稱為"漢堡包菜單"。
在實(shí)施此類菜單時(shí),您需要確保顯示控件的控件可通過適當(dāng)?shù)目刂茩C(jī)制(通常為移動(dòng)觸摸)訪問,如上述控制機(jī)制中所述, 并且在訪問菜單時(shí)頁面的其余部分被移出或以某種方式隱藏,以避免與導(dǎo)航導(dǎo)航混淆。
請(qǐng)參閱此處查看好漢堡菜單示例。
在移動(dòng)設(shè)備上,輸入數(shù)據(jù)對(duì)于用戶來說比在臺(tái)式計(jì)算機(jī)上的等同體驗(yàn)更加惱人。 使用桌面或筆記本電腦鍵盤,比觸摸屏虛擬鍵盤或微型移動(dòng)物理鍵盤更方便地將文本輸入到表單輸入中。
出于這個(gè)原因,值得嘗試最小化所需的打字量。 例如,您可以改為提供 / HTML / Element / select"title ="HTML選擇元素表示提供選項(xiàng)菜單的控件。"> < select>
菜單包含最常用的選項(xiàng) 有助于數(shù)據(jù)輸入的一致性),并提供一個(gè)"其他"選項(xiàng),顯示一個(gè)文本字段以輸入任何離群值。 您可以在 external"> common-job-types.html (請(qǐng)參閱 "external">普通工作示例live )。
還值得考慮使用HTML5表單輸入類型,如移動(dòng)平臺(tái)上的日期,因?yàn)樗鼈兲幚淼煤芎?- 例如Android和iOS都顯示適合設(shè)備體驗(yàn)的可用小部件。 請(qǐng)參見 html5-form-examples.html (有關(guān)示例,請(qǐng)參見 HTML5表單示例 ) - 嘗試加載這些內(nèi)容并在移動(dòng)設(shè)備上進(jìn)行操作。 例如:
number
, tel
, and email
display suitable virtual keyboards for entering numbers/telephone numberstime
and date
display suitable pickers for selecting times and dates.如果您想為桌面設(shè)備提供不同的解決方案,您可以隨時(shí)使用功能檢測(cè)為移動(dòng)設(shè)備提供不同的標(biāo)記。 有關(guān)檢測(cè)不同輸入類型的原始信息,請(qǐng)參見輸入類型,并查看我們的 功能檢測(cè)文章了解更多信息。
在本文中,我們向您提供了一些常見的移動(dòng)輔助功能問題的詳細(xì)信息,以及如何克服這些問題。 我們還通過使用最常用的屏幕閱讀器,幫助您進(jìn)行輔助功能測(cè)試。
更多建議: