构建可访问的单页应用需手动补足页面刷新缺失的上下文重置。1. 使用 aria-live 区域通知内容变更,如“已进入仪表板页面”;2. 每个视图为 h1 提供唯一标题;3. 路由切换后程序化聚焦主标题;4. 模态框管理焦点并返回原点;5. 采用语义化 HTML 元素与 WAI-ARIA 模式;6. 设置唯一 document.title 并确保历史导航正常。通过焦点控制、状态提示和语义标记实现平等访问。

构建一个可访问性良好的单页应用(SPA)关键在于弥补传统多页应用中自然具备的无障碍特性,比如页面刷新带来的上下文重置和焦点管理。由于 SPA 在用户导航时不重新加载页面,开发者必须手动处理这些细节,确保屏幕阅读器用户和键盘操作用户能顺畅使用。
确保动态内容更新被屏幕阅读器感知
当 SPA 中的视图切换或内容更新时,用户可能无法察觉变化,尤其是依赖屏幕阅读器的人群。需要主动通知辅助技术内容已变更。
使用 ARIA live regions 来广播重要更新。例如,在路由变化后,在页面容器中添加 aria-live=”polite” 的区域,提示“已进入仪表板页面”。 为每个主要视图设置唯一的
标签,帮助用户快速识别当前页面。 避免将重要内容隐藏在 ARIA hidden 或 CSS display: none 中而不做说明。
实现合理的焦点管理
在传统页面跳转中,浏览器会自动将焦点重置到新页面顶部。SPA 中需手动模拟这一行为。
路由切换后,通过 JavaScript 将焦点移动到新页面的主标题或主内容容器。例如:
document.getElementById(‘main-heading’).focus(); 对于模态框,打开时应将焦点移入模态框内第一个可聚焦元素,并禁用背景内容的键盘访问。 关闭模态框时,将焦点返回到打开它之前的元素。
语义化 HTML 与键盘导航支持
使用正确的 HTML 元素传达结构和功能,是可访问性的基础。
用
微信扫一扫
支付宝扫一扫