使用画布应用的实时区域公布动态更改
动态更改为视觉障碍人士带来难题。 通过屏幕阅读器访问应用的用户主要专注于应用的一个部分。 如果其他地方发生更改,这些用户不会意识到。
您可以通过添加屏幕阅读器跟踪的实时区域来解决此问题。如果内容在实时区域中更改,屏幕阅读器将公布更改。
实时区域的基本机制是 aria-live 区域,因此适用相同原理。
实时区域的使用示例
您可以使用实时区域在发生诸如以下事件时通知用户:
- 窗体中出现验证错误。
- 按钮触发的操作成功。 例如,用户可能选择一个按钮来将项目添加到集合中,实时区域可以显示消息“项目已添加”。
- 用户选择了另一个选项卡。
- 后台计时器刷新新闻源。
创建和配置实时区域
您只能将**标签** 控件配置为实时区域。 其 Live 属性确定它是哪类实时区域。
- Off:不是实时区域。 屏幕阅读器不公布更改。
- Polite:屏幕阅读器在结束讲话后公布更改. 将此值用于不需要立即引起关注的非关键通知。
- Assertive:屏幕阅读器会自行打断,立即公布更改。 将此值用于需要立即引起关注的关键通知。
如果实时区域的文本内容发生更改,屏幕阅读器将公布整个文本内容,而不只是更改的部分。 如果将 Text 属性的值设置为空字符串 "",屏幕阅读器不会公布任何内容。
要重复某条消息,请将 Text 属性的值设置为空字符串 "" 来清除文本内容,然后重新将值设置为此消息。
最佳实践
- 应始终将 Visible 设置为 true。 有些屏幕阅读器无法检测到消失后重新出现的实时区域。
- 应避免更改 Live 的值。 有些屏幕阅读器无法检测到非实时区域变为实时区域,反之亦然。
- 应将实时区域放在应用中的逻辑位置,即使它不可见。 应确保它的内容在上下文中与前后的元素之间都有意义。 用户可以随时在屏幕阅读器上通过常规导航访问实时区域,而不只是在发生更改时。