Radix Primitives 遵循 WAI-ARIA 作者实践指南,并在广泛的现代浏览器和常用辅助技术中进行了测试。
我们处理了许多与可访问性相关的复杂实现细节,包括 aria
和 role
属性、焦点管理以及键盘导航。这意味着用户在大多数情况下应该能够直接使用我们的组件,并依赖这些功能遵循预期的可访问性设计模式。
WAI-ARIA 由 W3C 发布和维护,指定了许多常见 UI 模式的语义,这些模式出现在 Radix Primitives 中。该规范旨在为那些未使用浏览器提供的元素构建的控件提供意义。例如,如果您使用 div
而不是 button
元素来创建按钮,则需要向 div
添加一些属性,以便让屏幕阅读器或语音识别工具理解这是一个按钮。
除了语义之外,不同类型的组件还有预期的行为。button
元素将以 div
无法实现的方式响应某些交互,因此开发者需要使用 JavaScript 重新实现这些交互。 WAI-ARIA 作者实践 提供了有关实现 Radix Primitives 中各种控件行为的额外指导。
对于许多内置的表单控件,本机 HTML label
元素旨在为相应的 input
元素提供语义意义和上下文。对于非表单控件元素或自定义控件(如 Radix Primitives 提供的控件),WAI-ARIA 提供了一份规范,说明如何为这些控件提供可访问的名称和描述。
在可能的情况下,Radix Primitives 包含抽象,以简化对控件的标签化。 Label
原语旨在与我们许多控件配合使用。最终,您需要提供这些标签,以便用户在浏览您的应用程序时具有适当的上下文。
许多复杂的组件,如 Tabs
和 Dialog
,用户对如何使用键盘或其他非鼠标输入方式与其内容进行交互有一定的期望。 Radix Primitives 在遵循 WAI-ARIA 作者实践 的情况下,提供了基本的键盘支持。
适当的键盘导航和良好的标签通常与管理焦点密切相关。当用户与元素交互并因此发生变化时,通常将焦点与交互一起移动是有益的,以便下一个选项卡停靠点在应用程序的新上下文中是合乎逻辑的。对于屏幕阅读器用户而言,移动焦点通常会导致发布新上下文的公告,这依赖于适当的标签。
在许多 Radix 原语中,我们根据用户在特定组件中通常进行的交互来移动焦点。例如,在 AlertDialog
中,当模态打开时,焦点会程序性地移动到 Cancel
按钮元素,以预期对提示的响应。