ARIA:补充角色

complementary 地标角色用于指定一个支持性部分,该部分与主内容相关,但也可以独立存在。这些部分通常呈现为侧边栏或突出显示框。如果可能,请使用 HTML <aside> 元素

html
<div role="complementary">
  <h2>Our partners</h2>
  <!-- complementary section content -->
</div>

这是一个包含项目赞助商链接的侧边栏。

描述

complementary 角色是 一个地标 角色。地标可用于辅助技术,以便快速识别和导航到文档的大部分区域。complementary 地标角色容器中列出的内容,如果与文档主内容分离,也应该是有意义的。

注意:使用 <aside> 元素将自动传达该部分具有 complementary 角色。开发者应始终优先使用正确的语义 HTML 元素,而不是使用 ARIA。

示例

html
<div role="complementary">
  <h2>Trending articles</h2>
  <ul>
    <li><a href="#">18 tweets that will make you feel all the feels</a></li>
    <li>
      <a href="#">Stop searching! I've found the perfect lunch containers.</a>
    </li>
    <li>
      <a href="#">The time has come to decide how to call these foods</a>
    </li>
    <li><a href="#">17 really good posts we saw on Tumblr this week</a></li>
    <li><a href="#">10 parent hacks we know work because we tried them</a></li>
  </ul>
</div>

可访问性考虑

地标角色应谨慎使用,以识别文档较大的整体部分。过多的地标角色可能会在屏幕阅读器中产生“噪音”,从而难以理解页面的整体布局。

最佳实践

优先使用 HTML

使用 <aside> 元素将自动传达该元素具有 complementary 角色。如果可能,请优先使用语义化的 <aside> 元素,而不是 complementary 角色。

标记地标

多个地标

如果文档中有一个以上的 complementary 地标角色或 <aside> 元素,请使用 aria-label 属性为每个地标提供标签,或者,如果 aside 有一个恰当的描述性标题,请使用 aria-labelledby 属性指向它。此标签将允许屏幕阅读器用户能够快速理解每个地标的目的。

html
<aside aria-label="Note about usage">
  <!-- content -->
</aside>

…

<aside id="sidebar" aria-label="Sponsors">
  <!-- content -->
</aside>

冗余描述

屏幕阅读器会播报地标的角色类型。因此,您无需在标签中描述地标是什么。例如,声明 role="complementary" 并带有 aria-label="Sidebar" 的标签可能会被冗余地播报为“complementary sidebar”。

新增优势

某些技术(如浏览器扩展程序)可以生成页面上所有地标角色的列表,使非屏幕阅读器用户也能快速识别和导航到文档的大部分区域。

规范

规范
无障碍富互联网应用程序 (WAI-ARIA)
# complementary
未知规范

另见