React Router v7 已发布。 查看文档
无障碍

无障碍性

Remix 应用程序中的无障碍性与一般的 Web 上的无障碍性非常相似。使用正确的语义标记并遵循 Web 内容无障碍指南 (WCAG) 将帮助您完成大部分工作。

Remix 在可能的情况下使某些无障碍实践成为默认设置,并在无法实现的情况下提供 API 来帮助您。我们正在积极探索和开发新的 API,以便将来更容易实现这一点。

<Link> 组件呈现一个标准的锚标记,这意味着您可以免费从浏览器获得其无障碍行为!

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

路由

如果您在应用程序中呈现 <Scripts>,则需要考虑一些重要事项,以使客户端路由对用户更具无障碍性。

对于传统的 多页网站,我们不必过多考虑路由更改。您的应用程序呈现一个锚标记,其余的由浏览器处理。如果您的用户禁用 JavaScript,您的 Remix 应用程序应该已经默认以这种方式工作了!

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

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

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

文档和示例在以下许可下发布 MIT