我有这个 span 元素:
<span>Select the <strong>START</strong> <span class="icon-start></span> button.</span>
这只是一行说"选择开始按钮",在单词"开始"后面有一个小图标。
目前,Microsoft讲述人(在扫描模式下(读取"选择开始",然后在图标处暂停并等待用户告诉它继续。 我试图让讲述人零中断地阅读整行,或者需要用户告诉它继续。
到目前为止,这是我尝试过的:
将
aria-hidden="true"
、tabindex="-1"
和role="presentation
添加到图标的<span>
将跨度包裹在
<div>
中,并赋予它aria-hidden="true"
、tabindex="-1"
和role="presentation
在外跨度中添加了一个
role="heading"
- 这可以使讲述人不间断地阅读所有内容,但他首先宣布"标题级别 1"。 如果有办法阻止他说"标题",那么那也可以。
是否有角色或咏叹调属性告诉屏幕阅读器继续阅读而不停止?
听起来屏幕阅读器无法解析您的图标跨度——该跨度应该有aria-hidden=“true”
。
请注意,避免将文本项设置为标题,除非它们确实是标题。作为最佳实践,可访问的网页应只有一个本质上用作页面标题的<h1>
元素。该单一<h1>
下的其他标题应为<h2>
,低于这些标题的任何标题应为<h3>
等。因此,如果您要走这条路,我建议您仔细考虑您选择的标题级别。
我是这样解决这个问题的:
<span aria-label="Select the START button">
<span aria-hidden="true">
Select the <strong>START</strong> <span class="icon-start"></span> button.
</span>
</span>
这将播报正确的文本并向屏幕阅读器隐藏演示文稿内容。
听起来"讲述人"的行为与 iOS 设备上的"旁白"类似。 如果您的元素包含嵌套元素,即使您想要将其视为一个元素,"旁白"通常也会在每个元素处停止。 您通常可以使用未记录的 role="text"
为 iOS 解决此问题。 我不知道它是否也适用于讲述人。
你会有这样的东西:
<span role="text">Select the <strong>START</strong> <span aria-hidden="true" class="icon-start></span> button.</span>
请注意,我还在图标上包含了aria-hidden
,@garret明智地推荐,这样它就不会被读取。 使用role="text"
时可能不需要aria-hidden
,但由于该角色未记录且在技术上不受支持,因此您必须对其进行测试。