1. Live Region(aria-live=polite/aria-live=assertive)
请解释 Live Region(aria-live)的作用,以及 aria-live=polite 与 aria-live=assertive 的区别?
- aria-live 的作用与原理
- polite 与 assertive 的区别
- 动态内容更新的应用
aria-live 让屏幕阅读器等辅助技术实时播报动态更新的内容,而无需用户重新聚焦。aria-live="polite" 会等当前播报结束后再播报更新,不打断用户当前任务,适合非紧急的更新(如异步结果、加载完成);aria-live="assertive" 会立即打断当前播报,适合紧急且必须让用户立即知道的内容(如错误提示、表单提交失败)。使用时通常配合 role="status"(polite)或 role="alert"(assertive)语义化,并让 live region 在有内容时再填充,避免页面加载时播报空内容。
Live Region 是 SPA 动态内容无障碍的关键——没有它,读屏用户不知道新内容出现。polite 与 assertive 的选择要谨慎:assertive 会打断用户,滥用会干扰阅读。工程上常把错误汇总放在 role="alert" 中,把加载结果放在 role="status" 中。
<div role="status" aria-live="polite">已加载 3 条结果</div>
<div role="alert" aria-live="assertive">提交失败:请检查必填项</div>