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 领导并发布了用户研究的发现,以帮助开发者构建无障碍的客户端路由体验。