我正在试图掌握如何在考虑到屏幕阅读器的情况下编写代码,并且我遇到了一些问题。第一个示例是我试图显示的单个HTML元素:
<h2><span>This is an element.</span></h2>Android上的Talkback会将其读作"This is an element header 2“,但我想知道如何将其读回为"This is a element”。
另一个问题是具有大量嵌套子元素的元素;例如,我测试了以下内容:
<div aria-live="assertive" aria-atomic="true" tabindex="0">
<div>
<div>
<p>This is text for the div.</p>
</div>
</div>
<div>
<p> This is additional text. </p>
</div>
</div>我希望屏幕阅读器显示"This is text for the div. This is additional text.",但它只显示"This is text for the div“。我的印象是aria-atomic会让这个区域的所有内容都被读取,那么我可能做错了什么呢?我试图将第二句话设为标题,但也不起作用(在这样的场景中,如何才能同时读取div和title属性的内容呢?)
最后,虽然这个问题仍然存在,但我奇怪地同时获得了标题文本和内容文本,并与以下内容一起阅读:
<a title="for the title">this is additional text</a>仅当我单独关注该元素时才使用...but。如果我尝试让它成为带有其他文本的div的子级,就像la:
<div>This is a title and <a title="for the title">this is additional text</a></div>当我想要“这是一个标题,这是标题的附加文本”时,它将显示为“这是一个标题,这是附加文本”。它基本上跳过了title属性。
这非常令人困惑;我已经阅读了aria属性,以及某些屏幕阅读器和Talkback是如何工作的,但我没有运气。任何帮助都将不胜感激。
发布于 2017-08-08 14:31:29
如果您在标题标签下放置一个跨度,屏幕阅读器将读取标题级别。如果您不想读取标题,那么不要将span放在heading标记中。
https://stackoverflow.com/questions/22821665
复制相似问题