You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTML time元素的屏幕阅读器无障碍优化问题求助

解决方案

问题出在<time>作为可见元素时,屏幕阅读器会同时读取它的文本内容和你设置的aria-label,导致重复播报。要实现仅读取“arrives at 15:00”,可以通过以下方式修改代码:

{(value: string) => (
  <time dateTime={arriveAt} aria-label={`Arrives at ${value}`}>
    <span aria-hidden="true">{value}</span>
  </time>
)}

原理说明

  • aria-label:提供屏幕阅读器需要播报的完整上下文文本。
  • aria-hidden="true":包裹显示的时间文本,让屏幕阅读器忽略这部分内容,避免重复读取。
  • 保留dateTime属性:确保时间语义正确,屏幕阅读器仍能识别这是一个时间元素(但不会额外播报冗余内容)。

另外注意,dateTime的取值要符合ISO 8601标准(比如"2024-05-20T15:00:00"),这样时间语义的解析会更准确。

内容的提问来源于stack exchange,提问作者Charlie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:24:54