Html ARIA角色是否由后代继承?

Html ARIA角色是否由后代继承?,html,accessibility,wai-aria,Html,Accessibility,Wai Aria,在下面的标记中,我在元素周围有一个包装器,用于表示 <div id="main-wrapper" role="presentation"> <main id="main" role="main"> <h1>Title</h1> <p>Lorem ipsum, dolor sit amet.</p> </main> </div> 标题 Lorem ipsum,dolor si

在下面的标记中,我在
元素周围有一个包装器,用于表示

<div id="main-wrapper" role="presentation">
  <main id="main" role="main">
    <h1>Title</h1>
    <p>Lorem ipsum, dolor sit amet.</p>
  </main>
</div>

标题
Lorem ipsum,dolor sit amet

但我不确定这些遗产是否由后代继承。如果将
元素视为表示元素,则会出现问题,因为它周围的包装器具有
role=“presentation”


这里是否正确使用了ARIA角色?ARIA角色是如何继承的?

这可能取决于上下文和角色。规范和示例位于: 给出每个角色的“继承状态和属性”列表,以及
role=“presentation”
的好例子

对于您的情况,具有
role=“presentation”
的包装器元素将删除其所有子元素的隐式本机语义
role=“main”
覆盖“演示文稿”,恢复
语义。但这也意味着您必须用各自的ARIA角色覆盖
中的语义元素,这在
的上下文中会变得极其复杂

但最重要的是,
role=“presentation”
只能应用于具有隐式角色的元素
没有隐含的角色,如编辑草稿中所述,并举例说明:

表示角色用于具有隐式本机属性的元素 语义,这意味着有一个默认的可访问性API角色 元素


样本含量

基本上,永远不要将
role=“presentation”
应用于没有隐式本机语义的元素,除非专门用作包装器以删除其子代的隐式本机语义。

默认情况下,主包装器是呈现式的,没有自己的内容(div没有特定语义)而且从技术上讲是不可聚焦的。。。因此,根据您的示例,我认为没有必要使用role=“presentation”。@hexalys谢谢,我是这样看的。那么,您是说ARIA角色只适用于元素的直接内容(如果有)而不适用于嵌套元素吗?
<!-- 3. This role declaration is redundant. -->
<span role="presentation"> Sample Content </span>