如何配置NVDA,聚焦链接时仅朗读title而非全部内容?
解决方案:通过ARIA属性控制屏幕阅读器的朗读行为
这确实是个典型的无障碍体验优化场景,要实现「聚焦链接时只读title内容,按下向下箭头再浏览内部文本」的效果,你可以通过aria-label属性精准控制屏幕阅读器在焦点模式下的朗读内容,具体方案如下:
核心思路
默认情况下,NVDA这类屏幕阅读器在焦点模式下聚焦链接时,会提取链接元素内所有可访问的文本内容(包括子元素的文本)进行朗读。我们可以给<a>标签添加aria-label属性,显式指定焦点模式下的朗读内容(即你需要的title文本),覆盖默认的文本收集逻辑;而链接内部的子元素内容依然会保留在浏览模式中,当用户按下向下箭头切换到浏览模式时,就能正常读取这些内容。
示例代码
<a href="example.html" title="description link" aria-label="description link"> <h2>Heading H2</h2> <span>More Text</span> <p>More text</p> </a>
关键点说明
aria-label的优先级高于链接内部的文本内容,屏幕阅读器在焦点模式下会优先朗读aria-label的内容,而非子元素的文本。- 不需要给内部的
<h2>、<span>、<p>添加aria-hidden="true",否则会导致浏览模式下也无法读取这些内容,违背你的需求。 title属性可以保留,它会作为辅助提示(比如鼠标悬停时显示),但屏幕阅读器在焦点模式下会优先响应aria-label。
效果验证
在Firefox中使用NVDA测试:
- 聚焦该链接时,NVDA会朗读「description link,链接」,不会读取内部的标题和文本内容。
- 按下向下箭头切换到浏览模式后,会依次读取
<h2>、<span>、<p>中的内容。
内容的提问来源于stack exchange,提问作者Jessy Tylor
相关产品推荐
相关产品推荐

