You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于aria-label与aria-hidden的屏幕阅读器分模式读取内容的无障碍实现问询

关于aria-label与aria-hidden的屏幕阅读器分模式读取内容的无障碍实现问询

嘿,我来帮你搞定这个无障碍需求!你想要的是Tab聚焦(焦点模式)时屏幕阅读器播报aria-label的内容,用箭头键浏览(浏览模式)时播报可见的“Privacy”文本,这个需求其实可以通过调整现有代码的无障碍属性轻松实现,具体方案如下:

调整后的代码实现

<li key="getprivacySectionView" className="nav-item dropdown header-privacy">
  <button 
    className="nav-link btn" 
    onClick={this.trustArcPrivacyLink} 
    aria-label="Opens Dialog Privacy"
    aria-haspopup="false"
  >
    <span className="dropdown-list-text">Privacy</span>
  </button>
</li>

关键调整点说明

  • 移除span标签上的aria-hidden="true":这是核心操作!原来的aria-hidden="true"会让屏幕阅读器直接忽略这个文本节点,导致浏览模式下读不到“Privacy”。移除之后,浏览模式用箭头键导航时,屏幕阅读器会正常抓取页面上的可见文本进行播报。
  • 保留按钮上的aria-label="Opens Dialog Privacy":当用户通过Tab键聚焦到按钮(进入焦点模式)时,NVDA、VoiceOver这类主流屏幕阅读器会优先读取aria-label的内容,清晰告知用户这个按钮的操作是打开隐私对话框,完全匹配你的需求。

额外小提示

如果这个按钮并不是用来触发下拉菜单的(从代码逻辑看更像直接打开隐私对话框),建议加上aria-haspopup="false",明确告诉屏幕阅读器这个按钮没有弹出菜单,避免造成不必要的混淆。

你可以用常用的屏幕阅读器测试一下:Tab聚焦按钮时听听播报内容,再切换到浏览模式用箭头键导航,应该就能得到你想要的两种不同播报效果啦!

内容来源于stack exchange

火山引擎 最新活动