无障碍

无障碍

React Router 应用中的无障碍性与一般网络上的无障碍性非常相似。使用正确的语义化标记并遵循网络内容无障碍指南 (WCAG),基本上就能解决大部分问题。

React Router 在可能的情况下将某些无障碍实践设为默认,并在无法做到时提供 API 来提供帮助。



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

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

路由



如果你在应用中渲染 <Scripts>,有一些重要事项需要考虑,以使客户端路由对你的用户更加无障碍。

对于传统的多页面网站,我们不必过多考虑路由变化。你的应用渲染一个锚点标签,浏览器会处理剩下的事情。如果你的用户禁用了 JavaScript,你的 React Router 应用默认就应该以这种方式工作!

当 React Router 中的客户端脚本加载后,React Router 会接管路由并阻止浏览器的默认行为。React Router 不会对路由变化时的 UI 做出任何假设。因此,你需要考虑一些重要的特性,包括:

  • 焦点管理: 当路由改变时,哪个元素会获得焦点?这对键盘用户很重要,对屏幕阅读器用户也很有帮助。
  • 实时区域通告: 当路由发生变化时,屏幕阅读器用户也会从通告中受益。根据变化的性质和预计加载时间,你可能还希望在某些过渡状态下通知他们。

2019 年,Marcy Sutton 领导并发布了用户研究的发现,以帮助开发者构建无障碍的客户端路由体验。

文档和示例 CC 4.0
编辑