无障碍

无障碍

Remix 应用中的无障碍与一般网页上的无障碍很相似。使用正确的语义标记并遵循 网页内容无障碍指南 (WCAG) 将使您在很大程度上实现无障碍。

Remix 在可能的情况下将某些无障碍实践设置为默认值,并提供 API 来帮助在其他情况下实现无障碍。我们正在积极探索和开发新的 API,以在未来使这个过程更加容易。

<Link> 组件 渲染一个标准的锚点标签,这意味着您可以免费获得浏览器提供的无障碍行为!

Remix 还提供了 <NavLink/>,它与 <Link> 的行为相同,但它还为辅助技术提供上下文,当链接指向当前页面时。这对于构建导航菜单或面包屑很有用。

路由

如果您在应用中渲染 <Scripts>,则需要考虑一些重要事项,以使客户端路由对用户更易于访问。

在传统的网页中,我们不必过多考虑路由更改。您的应用渲染一个锚点标签,浏览器处理其余工作。如果您禁用 JavaScript,Remix 应用应该默认情况下也能正常工作!

当 Remix 中的客户端脚本加载后,React Router 将接管路由并阻止浏览器的默认行为。Remix 不会对您的 UI 进行任何路由更改的假设。因此,您需要考虑一些重要功能,包括:

  • 焦点管理: 路由更改时,哪个元素获取焦点?这对键盘用户很重要,也可以帮助屏幕阅读器用户。
  • 实时区域公告: 当路线发生变化时,屏幕阅读器用户也会受益于公告。 您可能还希望在某些过渡状态下通知他们,具体取决于更改的性质以及预计加载时间。

2019 年,Marcy Sutton 领导并发布了用户研究结果,帮助开发人员构建可访问的客户端路由体验。 我们鼓励您详细阅读这篇文章。 我们正在积极调查和测试内部解决方案以及新 API,以简化此过程。

文档和示例根据 MIT