无障碍性
我们处理了大量与无障碍性相关的复杂实现细节,包括 aria 和 role 属性、焦点管理及键盘导航。这意味着在多数场景下,用户可以直接使用我们的组件,并依赖其功能来遵循预期的无障碍设计模式。
WAI-ARIA
由 W3C 发布和维护的 WAI-ARIA 规范为 Reka UI 中出现的多种常见 UI 模式定义了语义。其旨在为未使用浏览器原生元素构建的控件提供语义支持。例如,若使用 div 而非 button 元素创建按钮,则需为 div 添加特定属性,以便向屏幕阅读器或语音识别工具传达其作为按钮的语义。
除语义外,不同类型组件还需遵循特定的行为规范。button 元素会以 div 不具备的方式响应特定交互操作,因此需要开发者通过 JavaScript 重新实现这些交互。WAI-ARIA 创作实践为 Reka UI 中各类控件的行爲实现提供了额外指导。
无障碍标签
对于许多内置表单控件,原生 HTML label 元素旨在为对应的 input 元素提供语义和上下文。针对非表单控件元素或 Reka UI 提供的自定义控件,WAI-ARIA 通过规范定义了如何为这些控件提供无障碍名称和描述。
在可能的情况下,Reka UI 通过抽象层简化控件标注流程。Label 基础组件设计用于与我们的多数控件协同工作。最终仍需由您提供这些标签,以确保用户在浏览应用时获得正确的上下文信息。
键盘导航
许多复杂组件(如 Tabs 和 Dialog)需满足用户通过键盘或其他非鼠标输入方式与其内容交互的预期。Reka UI 根据 WAI-ARIA 创作实践提供了基础键盘支持。
焦点管理
规范的键盘导航与良好的标签标注通常需与焦点管理协同工作。当用户与元素交互并引发界面变化时,随交互过程移动焦点往往能提升体验,使下一个 Tab 停驻点符合应用新场景的逻辑流。对于屏幕阅读器用户,焦点移动通常会触发语音提示以传达新场景信息——这同样依赖于正确的标签标注。
在众多 Reka UI 组件中,我们会根据用户在特定组件中的常规交互行为来管理焦点。例如在 AlertDialog 中,当模态框开启时,焦点会通过编程方式移动至「取消」按钮元素,以预判用户对提示的响应。
