ChromeOS 的資訊站模式會執行應用程式並鎖定為全螢幕,不需要使用者登入。Kiosk 模式可讓使用者以受控且專注的方式,輕鬆有效率地存取資訊和服務。不過,由於資訊亭模式的體驗受到嚴格控管,因此請務必確保所有人都能存取資訊亭應用程式。改善資訊亭的無障礙功能,有助於減少資訊存取障礙,擴大觸及範圍,並促進包容性,進而提升顧客滿意度。
在 Kiosk 模式中執行的應用程式是網頁應用程式,因此適用網頁無障礙最佳做法:
- 遵循無障礙網頁規範 (WCAG 2)。即使是在內部部署資訊亭應用程式,確保無障礙功能 (例如螢幕閱讀器可用性) 的最佳方式,就是遵循 WCAG 2。您也可以運用無障礙領域專家提供的其他優質設計和開發資源,進一步改善資訊站應用程式:
- 英國政府提供一般設計原則,協助您為有輔助功能需求的使用者 (包括低視能和聽障使用者) 設計產品。
- Web.dev 說明網頁開發中的無障礙功能,以及無障礙功能的重要性。
- Material Design 提供設計無障礙功能建議。
- 提供多種輸入方式。請勿依賴手勢操作。使用者可能需要鍵盤、滑鼠或切換鍵才能與應用程式互動。
- 提供多種輸出形式。請勿只依賴單一類型的輸出內容,例如音訊。使用者可能需要完全不透過聲音或視覺提示與應用程式互動。
- 邀請不同背景的目標對象測試應用程式和硬體。請勿只依循最佳做法,而是要進行測試。使用者需要與資訊站應用程式進行實體和數位互動。體驗測試會找出需要改進的地方。
- 請務必納入不同背景的測試使用者,找出潛在的無障礙問題。
- 在實際環境中,使用預計搭配的硬體測試資訊站應用程式。
由於資訊站應用程式是在受控環境中執行,使用者可能無法存取平常使用的 ChromeOS 無障礙功能或硬體選項。ChromeOS 資訊亭模式的無障礙功能有三個控制層級:
- 政策:管理員可控管受管理裝置的政策,包括存取重要的資訊亭無障礙設定。
- API:開發人員可透過呼叫 chrome.accessibilityFeatures API 的隨附擴充功能,控管使用者與資訊亭應用程式的互動方式。
- 硬體裝置:裝置類型和連接的周邊裝置會決定使用者與資訊站的實際互動方式,包括輸入裝置、螢幕大小和平台。
這些層級彼此高度相依,因此必須協同運作,才能提供真正無障礙的資訊站應用程式體驗。管理員部署資訊亭應用程式時,必須考慮無障礙功能;開發人員則必須瞭解管理設定對應用程式部署後可能造成的影響。
資訊站管理員的政策控制項
在一般使用者工作階段中,使用者可以在 ChromeOS 裝置上前往「設定」應用程式的「無障礙」部分,管理無障礙設定。在資訊站模式中,使用者預設無法存取「設定」應用程式。管理員必須啟用無障礙設定,才能讓使用者在資訊站模式下存取這些設定。
管理員可以依序前往 Google 管理控制台的「裝置」 >「Chrome」 >「設定」 >「裝置設定」分頁,找到「資訊亭模式無障礙設定」。
主要有兩項設定需要注意:
- Kiosk 無障礙功能的浮動式選單:由於「設定」應用程式在 Kiosk 模式下無法隨時使用,啟用這項設定後,使用者就能透過無障礙功能的浮動式選單切換無障礙設定。如果不設定這項設定,系統預設不會顯示浮動式無障礙工具選單。
- Kiosk 無障礙功能快速鍵:啟用這項設定後,使用者就能透過鍵盤快速鍵開啟無障礙功能。但請注意,並非所有功能都有對應的快速鍵。如果不設定這項政策,系統預設會啟用快速鍵。
您也可以個別設定無障礙功能。預設設定為「允許使用者決定」,讓使用者自行啟用或停用無障礙功能。
注意:如要進一步瞭解各項設定的行為,請參閱 ChromeOS 無障礙功能的完整清單。
Chrome 擴充功能 chrome.accessibilityFeatures API
在 Kiosk 模式中,使用者可以透過Kiosk 無障礙功能的浮動式選單或對應的鍵盤快速鍵切換無障礙功能。但前提是管理員已啟用該選單,且並非所有功能都有捷徑。因此,開發人員應視情況直接在資訊站應用程式中整合無障礙設定。舉例來說,在顯示文字輸入畫面時,提供語音輸入選項給使用者。
您可以使用 chrome.accessibilityFeatures API 存取 ChromeOS 無障礙功能的狀態。如果管理控制台設定為「允許使用者決定」,也可以透過這個 API 控制無障礙功能。這是 Chrome 擴充功能 API,因此必須從與資訊站應用程式搭配執行的隨附擴充功能呼叫。開發人員可以使用這個 API 檢查各項設定是否可控,並與對應的內建 ChromeOS 無障礙功能互動。
chrome.accessibilityFeatures API 為每個無障礙功能提供對應的屬性。每個屬性都是 type.ChromeSetting prototype,具有下列方法:
get():取得設定的值。set():設定設定的值。onChange():新增設定變更時的監聽器。clear():清除設定並還原為預設值。
如要取得房源狀態,請呼叫 onChange() 或 get(),這會透過回呼傳回詳細資料物件,其中包含下列相關欄位:
levelOfControl:設定的控管程度。呼叫set()變更設定值前,請先檢查擴充功能是否可控管該設定。請注意,如果管理員已明確設定政策來啟用或停用設定,levelOfControl會顯示為not_controllable,您將無法透過 API 進行設定。value:設定的值。除了animationPolicy以外,所有無障礙功能屬性都是布林類型。animationPolicy是由allowed、once或none組成的列舉。
舉例來說,我們先檢查這個擴充功能是否可設定屬性,然後切換虛擬鍵盤功能。
const virtualKeyboard = chrome.accessibilityFeatures.virtualKeyboard; virtualKeyboard.get({}, (details) => { // check the level of control for virtual keyboard if (details.levelOfControl == 'controllable_by_this_extension' || details.levelOfControl == 'controlled_by_this_extension') { // disable if virtualKeyboard is currently on if (details.value) { virtualKeyboard.set({value: false}, () => console.log('Virtual keyboard has been disabled'); } else { // enable if virtualKeyboard is currently off virtualKeyboard.set({value: true}, () => console.log('Virtual keyboard has been enabled'); } } else { // the setting is not controllable by this extension because it cannot be controlled by any extension or it's being controlled by an extension with higher precedence console.log('Virtual keyboard setting cannot be changed.'); }
首先,在 virtualKeyboard 屬性上呼叫 get(),讀取可用的控制層級和屬性的目前值。如果可以由這個擴充功能控管,或已由這個擴充功能控管,則可以安全地呼叫 set(),並切換 virtualKeyboard 屬性值。如果無法控制該屬性,請告知使用者無法切換這項設定,並視情況建議他們聯絡系統管理員。
可透過 chrome.accessibilityFeatures API 設定的可用屬性分為以下幾類:文字轉語音、螢幕和放大、鍵盤和文字輸入、游標和觸控板。
文字轉語音
文字轉語音功能可透過 ChromeOS 內建的螢幕閱讀器,大聲朗讀螢幕上的文字。無論使用者有視力障礙、無法閱讀,或偏好聆聽文字而非閱讀,都能透過這些功能與裝置互動。
selectToSpeak:控制隨選朗讀功能,讓使用者選取螢幕上的文字,讓系統朗讀出來。spokenFeedback:控制 ChromeVox 功能,這項螢幕閱讀器會朗讀畫面上的文字,以及按鈕、連結和其他元素的名稱。
顯示和放大功能
顯示和放大功能可變更顯示顏色,並提供放大選項,讓螢幕更容易閱讀,也方便尋找物件。
highContrast:控制色彩反轉功能,將色彩配置變更為對比度較高的配置。screenMagnifier:控制全螢幕放大鏡功能,放大畫面上的項目。dockedMagnifier:控制置頂放大鏡功能,在分割畫面檢視模式中放大螢幕焦點區域。
鍵盤與文字輸入
鍵盤和文字輸入功能提供不同選項,讓使用者與畫面上的內容和輸入項目互動。
virtualKeyboard:這項屬性可控制螢幕小鍵盤功能,讓使用者不必使用實體鍵盤即可輸入文字。dictation:這項屬性可控制語音輸入功能,讓使用者透過麥克風說話來輸入文字,並使用語音控制輸入內容。switchAccess:這項屬性可控制切換控制功能,讓使用者透過切換裝置 (鍵盤按鍵、遊戲手把按鈕和其他專用切換裝置) 控制裝置。stickyKeys:這個屬性可控制相黏鍵功能,讓使用者一次按一個按鍵來觸發鍵盤快速鍵,而不必同時按住多個按鍵。focusHighlight:這項屬性可控制鍵盤焦點醒目顯示功能,醒目顯示鍵盤聚焦的物件。使用者可使用 Tab 鍵瀏覽物件,或使用滑鼠游標選取物件。caretHighlight:這項屬性可控制文字游標 (插入號) 醒目顯示功能,在文字游標出現或移動時,顯示文字游標周圍的焦點環。
Cursor
游標功能可自訂游標,方便在畫面上尋找游標,也更容易使用。
autoclick:這項屬性可控制自動點擊功能,讓滑鼠游標在停止時自動點擊。largeCursor:這項屬性可控制大型游標功能,放大滑鼠游標,讓游標更醒目。cursorColor:這項屬性可控制游標顏色功能。cursorColor屬性的值只會指出這項功能是否已啟用。不會顯示游標顏色。cursorHighlight:這項屬性可控制游標醒目顯示功能,在滑鼠游標移動時,游標周圍會顯示焦點環。
硬體層級的 Kiosk 無障礙功能
與其他應用程式一樣,資訊站應用程式的無障礙功能也會受到部署裝置的影響。開發人員必須進一步與硬體團隊合作,確保資訊站應用程式可從硬體層級存取。
資訊站應用程式可安裝在任何 ChromeOS 系統上,包括非互動式螢幕和互動式平台。如果使用者會與資訊亭應用程式互動,建議採用下列硬體層級的無障礙標準:
- 資訊站應用程式應可供輪椅或其他類似行動輔具使用者操作。
- 資訊亭硬體應包含實體鍵盤和滑鼠的選項。
- 資訊亭應用程式應具備耳機插孔和麥克風支援功能。
- 資訊亭硬體的螢幕大小和解析度應足以清楚顯示文字和圖像。
Kiosk 模式的無障礙功能取決於許多因素,包括政策控管、API 和硬體。但從本質上來說,資訊站無障礙功能就是網頁無障礙功能。如要提升資訊亭應用程式的無障礙程度,請遵循上述建議和最佳做法、進行徹底的使用者測試,並詳閱 WCAG 2 指南。