自助服务终端的无障碍功能

ChromeOS 的自助服务终端模式会运行应用并将其锁定在全屏模式下,而无需用户登录。自助服务终端模式可让人们以受控且专注的方式便捷高效地访问信息和服务。不过,由于信息亭模式的体验受到严格控制,因此务必确保所有人都能访问信息亭应用。通过减少信息访问障碍并营造包容性环境,提高自助服务终端的无障碍性有助于扩大覆盖面,并提高客户满意度。

在自助服务终端模式下运行的应用是 Web 应用,因此 Web 无障碍功能最佳实践也适用于这些应用:

  • 遵循《Web 内容无障碍指南》(WCAG 2)。即使在内部部署信息亭应用,确保无障碍功能(例如屏幕阅读器可用性)的最佳方式也是遵循 WCAG 2. 您还可以利用无障碍功能从业人员提供的其他出色的设计和开发资源来改进自助服务终端应用:
  • 提供多种输入方法。不要依赖基于手势的导航。用户可能需要使用键盘、鼠标或开关来与应用互动。
  • 提供多种形式的输出。不要依赖单一类型的输出,例如音频。用户可能需要完全在无声音或无视觉提示的情况下与应用互动。
  • 邀请不同背景的受众群体测试应用及其硬件。不要仅仅依靠遵循最佳实践,还要进行测试。用户需要以实体方式和数字方式与自助服务终端应用互动。体验测试将找出需要改进的方面。
    • 确保纳入多元化的测试用户群体,以发现潜在的无障碍功能问题。
    • 在自助服务终端应用将要使用的环境和硬件上测试该应用。

由于自助服务终端应用在受控环境中运行,用户可能无法访问他们通常会使用的 ChromeOS 无障碍功能或硬件选项。对于 ChromeOS 信息亭的无障碍功能,您需要考虑以下三个级别的控制:

  • 政策:管理员可以控制受管理的设备的政策,包括对基本信息亭无障碍设置的访问权限。
  • API:开发者可以通过调用 chrome.accessibilityFeatures API 的配套扩展程序来控制用户与自助服务终端应用的互动方式。
  • 硬件设备:设备类型和连接的外围设备会影响用户与信息亭的实际互动方式,包括输入设备、屏幕尺寸和平台。

这些级别高度相互依赖,因此必须协同运作才能提供真正无障碍的自助服务终端应用体验。管理员在部署信息亭应用时必须考虑无障碍功能,而开发者必须了解管理设置在应用部署后可能会对其产生的影响。

面向自助服务终端管理员的政策控制功能

在正常用户会话中,用户可以在 ChromeOS 设备的设置应用中前往无障碍功能部分,管理自己的无障碍功能设置。在自助服务终端模式下,用户默认无法访问“设置”应用。相反,管理员需要启用无障碍设置,以便用户在自助服务终端模式下访问这些设置。

管理员可以在 Google 管理控制台中找到“信息亭无障碍功能”设置,方法是依次前往设备 > Chrome > 设置 > 设备设置标签页。

您需要注意以下两项主要设置:

  • 自助服务终端的悬浮式无障碍功能菜单:由于“设置”应用在自助服务终端模式下无法随时使用,因此启用此设置后,用户可以通过悬浮式无障碍功能菜单切换无障碍功能设置。如果未配置此设置,默认行为是不显示悬浮无障碍菜单。
  • 自助服务终端的无障碍功能快捷键:启用此功能后,用户可以使用键盘快捷键开启无障碍功能。不过请注意,并非所有功能都有对应的快捷方式。如果未配置此设置,默认行为是启用快捷方式。

您还可以单独配置各项无障碍功能。默认情况下,它们配置为“允许用户决定”,因此用户可以根据自己的需要启用或停用无障碍功能。

注意:如需详细了解每项设置的行为,请查看 ChromeOS 无障碍功能的完整列表。

Chrome 扩展程序 chrome.accessibilityFeatures API

在自助服务终端模式下,用户可以使用自助服务终端悬浮式无障碍功能菜单或相应的键盘快捷键切换无障碍功能。不过,这需要管理员已启用该菜单,并且并非所有功能都有快捷方式。因此,开发者应根据需要将无障碍设置直接集成到自助服务终端应用中。例如,在显示文本输入时,为用户提供使用听写的选项。

可通过 chrome.accessibilityFeatures API 访问 ChromeOS 无障碍功能的启用状态。如果在管理控制台中将无障碍功能配置为“允许用户决定”,也可以通过此 API 控制这些功能。这是一个 Chrome 扩展程序 API,因此必须从与自助服务终端应用一起运行的配套扩展程序中调用。开发者可以使用此 API 检查每项设置是否可控,并与相应的内置 ChromeOS 无障碍功能互动。

chrome.accessibilityFeatures API 针对每项无障碍功能都有一个对应的属性。每个属性都是一个 type.ChromeSetting 原型,具有以下方法:

  • get():用于获取设置的值。
  • set():用于设置相应设置的值。
  • onChange():用于添加监听器,以便在设置发生更改时进行监听。
  • clear():清除设置并恢复默认值。

如需获取房源的状态,请调用 onChange()get(),这两个方法会通过回调返回一个详细信息对象,其中包含以下相关字段:

  • levelOfControl:设置的控制级别。在调用 set() 更改设置的值之前,请检查该设置是否可由您的扩展程序控制。请注意,如果管理员有明确的政策来停用或启用某项设置,则 levelOfControl 将为 not_controllable,您将无法通过 API 配置该设置。
  • value:相应设置的值。所有无障碍功能属性均为布尔值类型,但 animationPolicy 除外,该属性是一个枚举,包含 allowedoncenone

举例来说,我们先检查该扩展程序是否可配置该属性,然后切换虚拟键盘功能。

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:此属性用于控制文本光标(插入符号)突出显示功能,该功能会在文本光标出现或移动时显示一个围绕文本光标的焦点环。

光标

光标功能可自定义光标,让您更轻松地在屏幕上找到光标,并更轻松地使用光标。

  • autoclick:此属性用于控制自动点击功能,该功能可让鼠标光标在悬停时自动点击。
  • largeCursor:此属性用于控制大号光标功能,该功能可增大鼠标光标的大小,使其更醒目。
  • cursorColor:此属性用于控制光标颜色功能。cursorColor 属性的值仅指示相应功能是否已启用。它不指示光标颜色。
  • cursorHighlight:此属性用于控制光标突出显示功能,该功能会在鼠标光标移动时在其周围显示一个聚焦环。

硬件级自助服务终端无障碍功能

与其他应用一样,自助服务终端应用的无障碍功能也会受到部署该应用的设备的影响。开发者还必须与硬件团队合作,确保其信息亭应用可在硬件层面上访问。

自助服务终端应用可以安装在任何 ChromeOS 系统上,从非交互式显示屏到交互式平台,应有尽有。如果用户需要与自助服务终端应用互动,建议遵循以下硬件级无障碍标准:

  • 自助服务终端应用应可供使用轮椅或类似行动辅助工具的用户访问和使用。
  • 信息亭硬件应包含实体键盘和鼠标选项。
  • 自助服务终端应用应支持耳机插孔和麦克风。
  • 自助服务终端硬件应配备足够大且分辨率足够高的屏幕,以确保文字和图像清晰可见。

信息亭的无障碍功能取决于许多因素:政策控制、API 和硬件。但从本质上讲,自助服务终端无障碍功能就是 Web 无障碍功能。如需在信息亭应用中实现更好的无障碍功能,请遵循上述建议和最佳实践,进行全面的用户测试,并查看 WCAG 2 指南。