Android NDK开发详解Wear之Wear OS 上的无障碍功能


创建 Wear OS 应用时,首先就应遵循 Android 应用的无障碍功能指南中所述的无障碍功能原则和指南。然后,还要确保您的应用可在 Wear OS 上无障碍使用。

由于以下因素,在无障碍设计方面,Wear OS 应用有一些额外的注意事项:

Wear OS 上的输入类型不同,例如旋转输入。
提供额外的界面 surface,例如图块和复杂功能。
屏幕尺寸小,需要不同的 TalkBack 实现。
与无障碍功能方面的其他工作一样,请务必使用屏幕阅读器等辅助技术全面测试每种体验。这样您就可以从用户的角度体验应用,并发现原本可能会忽略的易用性问题。如需了解详情,请参阅测试应用的无障碍功能。

支持用户的首选字体大小

在系统设置中,用户可以调整 Wear OS 应用中显示的文本元素的字体大小。例如,在 Google Pixel Watch 设备上,这些设置位于设置 > 无障碍菜单中。

测试应用时,请将字体大小设置为不同的值,并确保应用的文本内容的行为符合预期。您可以使用如下技巧使应用的文本更易于访问:

如果您使用自动调整文本大小,请为 autoSizeMinTextSize 和 autoSizeMaxTextSize 设置明确的值。
使用省略号表示文本溢出了容器。Material 文本元素默认使用溢出省略号。

启用旋转输入

大多数 Wear OS 设备都包含实体侧面旋钮 (RSB)、旋转边框和触摸边框。这称为旋转输入。您可以使用旋转输入来调整媒体应用的音量、向上或向下滚动内容等。

Wear OS 设备比移动设备小,这造成了额外的挑战。如果用户在操作灵巧度方面有困难,那么在小屏幕上操作时可能很难达到精准。使用屏幕阅读器的用户也可能很难通过双指互动进行滚动。与使用双指互动相比,使用旋转输入功能可实现更方便的滚动方式,从而帮助用户克服上述困难。

如需了解详情,请参阅旋转输入。

针对 TalkBack 优化应用

TalkBack 是 Android 的内置屏幕阅读器。开启 TalkBack 后,用户无需查看屏幕即可与 Android 设备互动。您应测试应用,确保其所有用户体验历程都可以使用屏幕阅读器(例如 TalkBack)完成。如需了解详情,请参阅 TalkBack。

Wear OS 上的 TalkBack 与移动设备上的 TalkBack 大同小异,但有一些额外的注意事项,详见以下各部分的说明。

使用内置组件

Wear OS 提供许多遵循无障碍功能最佳实践设计的内置界面组件。例如,PickerGroup 元素使用焦点协调器对象,将焦点分配给正确的 Picker 元素。

在您的应用中使用这些内置组件可提高应用的易用性,让所有人受益。

为功能块和复杂功能使用内容说明

Wear OS 提供不同的界面 surface,例如图块和复杂功能。

表盘复杂功能可在表盘上直接显示来自各种应用的信息(例如日期或天气预报),所示信息一目了然。图块可让您快速查看所需信息,快速执行处理事项所需的操作。用户只需在表盘上轻轻滑动一下,即可查看天气、设置计时器,以及使用其他功能。

类似于 Compose 视觉元素,您可以为图块和复杂功能设置 contentDescription。contentDescriptions 定义 Talkback 用来描述任何无文本说明的内容的文本。针对图块和复杂功能使用内容说明时,请注意以下事项:

避免在说明中添加对用户来说没有价值的多余文字,例如复杂功能和图块。
避免在显示的信息之外再添加文字。例如,复杂功能的说明显示日期 12 月 13 日,则就应为 12 月 13 日,不要添加日和日期。
设置图块的内容说明
使用 setContentDescription 方法,为 TalkBack 读出的图块设置当前的内容说明。

此外,请确保为图块中的所有元素(例如按钮)设置内容说明。

为复杂功能设置内容说明
复杂功能有多种不同的类型,例如在 Builder 上设置了 SmallImageComplication 和 ShortTextComplication. contentDescription,示例参见 SmallImageComplicationData.Builder。

了解列表行为

由于穿戴式设备的屏幕尺寸较小,因此 TalkBack 对 Wear OS 上的列表行为做出几点假设。

列表通知
在其他外形规格的设备中,当用户聚焦于列表时,Talkback 会将 in list 添加到其通知中,以便用户了解所处的位置。如果用户离开列表,Talkback 会将 out of list 添加到其通知中。然而在 Wear OS 设备上,由于屏幕较小,TalkBack 会假设每个界面上只能有一个列表。因此,TalkBack 移除了对 in-list 和 out-of-list 通知的支持,以避免出现多余的文字。请不要预期 TalkBack 在 Wear OS 设备上会读出 in-list 和 out-of-list 通知

垂直列表通知
从垂直列表中读取列表项时,Talkback 会避免读出太小或几乎超出屏幕范围的项。具体来说,TalkBack 使用以下两个条件:

靠近屏幕顶部或底部的元素。
元素高度小于 32dp。
通过确保项的高度至少为 32dp,列表中第一项在顶部有内边距,最后一项在底部有内边距,可使其有效地与 Talkback 协同工作。

这些准则不适用于水平列表。

设置最小触摸目标

触摸目标是屏幕上响应用户输入的部分。它们可能会超出元素的可视边界。例如,某个元素(如图标)的显示大小可能为 24dp x 24dp,但其周围的内边距可以构成完整的 48 x 48 dp 触摸目标。

根据 Android Material 指南,建议的触摸目标大小为 48dp x 48dp。由于 Wear OS 的屏幕尺寸较小,在某些情况下,允许使用 40dp x 40dp 的触摸目标。

如需详细了解如何实现触摸目标,请参阅 Compose 中的无障碍服务。

本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。

最后更新时间 (UTC):2023-09-11。

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值