【发布时间】:2019-01-21 22:13:49
【问题描述】:
我的 HTML 中有一个音频元素,其唯一目的是通过屏幕阅读器向盲人用户发布公告。它是一个 DIV,但对普通用户是不可见的。
宣布某事的方法是使用role=alert 创建一个元素(没有其他方法可以做到这一点,例如,没有 JS 函数可以直接与读者“对话”):
<!-- This element can be dynamically added OR shown (via JS) to make a Screen Reader announcement -->
<div role="alert">This will be announced to Screen Readers.</div>
但是,我不能让普通用户看到这个“音频助手”元素。
1) 不能使用display: none; -> 屏幕阅读器不会读取它
2) 无法使用 visibility: hidden; -> 屏幕阅读器无法读取它
3) 不能使用opacity: 0; -> 因为占用空间,布局必须完全一样
我找到了这个解决方案: https://stackoverflow.com/a/25339638/1005607
div {
position: absolute;
left: -999em;
}
这很好用,它解决了我的问题。但这有点像黑客。我想问:有没有更好、更标准的方法来解决这个问题?
【问题讨论】:
标签: html css screen-readers section508 nvda