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

问题描述 投票:1回答:1

上下文:教育电子书(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标签,但不会读取aria标签内的文字。 (我无法访问其他屏幕阅读器进行测试。)

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

不可行的选择

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

html accessibility wai-aria epub
1个回答
1
投票

我不会让highligting标记成为一个区域。这使它们成为一个里程碑,用于导航到页面上的不同区域。你拥有的地标越多,它们的用处就越少(因为你必须浏览它们中的一堆以获得你想要的地方。)。

在“Short note on making your mark (more accessible)”上有关于制作精彩片段和其他编辑符号的精彩文章

不允许在span(或div)元素上使用aria-label

那不太准确。 aria-label是一个全局属性,可以在任何元素上设置。但是,如果在<div><span>上设置,则可能会忽略该标签。见“2.10 Practical Support: aria-label, aria-labelledby and aria-describedby”。特别是,第三个最后一个要点:

  • 除非给定角色,否则不要在span或div上使用aria-label或aria-labelledby。

因此,如果您的<div><span>role that is appropriate,那么将读取咏叹调标签。但是不要仅仅为了获得aria-label读取而指定一个角色。这个角色必须有意义。

© www.soinside.com 2019 - 2024. All rights reserved.