答案是肯定的,当正确的语义标记用于构造文档时,辅助技术工作得很好。如果它是一个简单的静态列表,那么就不需要用角色标记它们。
例如:考虑其基本概念被定义为HTML li的role="listitem"。 baseConcept HTML li与role =“listitem”定义几乎完全相同,只是它不会继承任何属性。更多info
因此,考虑下面的例子:
<h3 id="header">Vegetables</h3>
<ul role="list" aria-labelledby="header" aria-owns="external_listitem">
<li role="listitem" aria-level="3">Carrot</li>
<li role="listitem" aria-level="3">Tomato</li>
<li role="listitem" aria-level="3">Lettuce</li>
</ul>
…
<div role="listitem" id="external_listitem">Asparagus</div>
这里页面作者希望用咏叹调级属性为李家。尽管aria-labelledby和aria-owns可以应用于基本标记的所有元素,但是aria-level属性要求该元素有一定的作用。由于ARIA规范使用Web本体语言(OWL)来表示类层次结构中的角色。 OWL将这些角色描述为类以及它们的状态和属性。因此,为了使用咏叹调级别,该元素必须被定义为简单的HTML,li不会继承任何属性或限制。一旦将角色标记为listitem,它就要求listitem由具有role =“list”的元素拥有。所以你最终使用这两个角色。
另一方面,如果不使用语义标记,角色也很有用。例如:
<div role="list">
<div role="listitem">dog</div>
<div role="listitem">cat</div>
<div role="listitem">sparrow</div>
<div role="listitem">wolf!</div>
</div>
这里读屏软件会指示ARIA列表(由申报单的)任何其他普通的HTML列表。
感谢@Ravi的信息。所以当使用语义标记时,不需要用角色标记简单的静态列表。 –
是的,几乎所有的时间,但它仍然依赖于与浏览器版本一起使用的辅助功能软件。所以如果你发现某个特定的标记没有被屏幕阅读器读取,它应该使用这些角色的组合来使它工作,直到软件被修正为缺陷。所以没有什么是明确的只是做彻底的测试。 – Ravi
我明白了。谢谢。 –