小编the*_*ern的帖子

如何向屏幕阅读器指示 span 元素?

背景:教育电子书 (HTML + CSS) 出版

我有一个作文标题,其中有这样的句子:

<p>This is <del>correct</del> <ins>incorrect</ins></p>
Run Code Online (Sandbox Code Playgroud)

重要的是,用户知道某些文本正在被删除以及某些文本正在被插入。我还有一个相关的场景,其中文本应用了具有语义意义的突出显示。例如:

<p>This is an <span class="highlight-blue">adjective</span> and this is a <span class="highlight-red">noun</span>. </p>
Run Code Online (Sandbox Code Playgroud)

无障碍顾问建议我在这些情况下使用 role="region" + aria-label 。

例如:

<p>This is an <span role="region" aria-label="adjective" class="highlight-blue">adjective</span> and this is a <span role="region" aria-label="noun" class="highlight-red">noun</span>. </p>
Run Code Online (Sandbox Code Playgroud)

这里的灵活性是必要的,因为我们为所有标题使用标准 CSS,有时突出显示的红色可能表示被动语态,或者可能表示名词等。

我在本网站的其他问题中看到不允许在 span (或 div )元素上使用 aria-label 。同样使用 Chromevox,我发现读者会读取 aria 标签,但不会读取 aria 标签内的文本。(我无法访问其他屏幕阅读器进行测试。)

所以我的问题是:让屏幕阅读器用户读取这些内联元素的语义的最佳方法是什么?

不可行的选择

CSS 隐藏的伪元素。我见过一些解决方案,您可以创建一个伪元素,然后使用 CSS 将其隐藏在屏幕外。当您隐藏屏幕外的内容时,Kindle 会遇到问题,在屏幕外的内容后面丢弃大块文本,因此这不是一个可行的选择。

html accessibility epub wai-aria

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

accessibility ×1

epub ×1

html ×1

wai-aria ×1