【发布时间】:2019-03-06 18:34:04
【问题描述】:
背景:教育电子书(HTML + CSS)出版
我有一个作文标题,其中有一个这样的句子:
<p>This is <del>correct</del> <ins>incorrect</ins></p>
重要的是用户知道一些文本正在被删除和一些文本正在被插入。我也有一个相关的场景,其中文本应用了具有语义含义的突出显示。例如:
<p>This is an <span class="highlight-blue">adjective</span> and this is a <span class="highlight-red">noun</span>. </p>
无障碍顾问建议我在这些情况下使用 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>
这里需要灵活性,因为我们对所有标题都使用标准 CSS,有时红色高亮可能表示被动语态或表示名词等。
我在本网站的其他问题中看到,不允许在 span(或 div)元素上使用 aria-label。同样使用 Chromevox,我发现读者会阅读 aria-label 而不是 aria 标签内的文本。 (我无权使用其他屏幕阅读器进行测试。)
所以我的问题是:将这些内联元素的语义含义读给屏幕阅读器用户的最佳方法是什么?
不可行的选择
带有 CSS 隐藏的伪元素。我已经看到了一些解决方案,您可以创建一个伪元素,然后使用 CSS 将其隐藏在屏幕外。当您在屏幕外隐藏内容时,Kindle 会遇到问题,在屏幕外内容之后放置大块文本,因此这不是一个可行的选择。
【问题讨论】:
-
如果这些是亮点,你不会使用像
<em>这样的语义HTML吗? -
您是否有理由不能向所有人提供这种含义,而不仅仅是屏幕阅读器?像 Screenreaders(名词)和语义(形容词)元素。这将符合G112
-
我无法完全控制内容,但最终使用括号的解决方案将是理想的。
标签: html accessibility wai-aria epub