此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

ARIA:banner 角色

banner 角色用于定义全局的站点页眉,其中通常包含徽标(logo)、公司名称、搜索功能,还可能包含全局导航或标语。它通常位于页面顶部。

默认情况下,HTML 的 <header> 元素与 banner 地标具有相同的含义,除非它是 <aside><article><main><nav><section> 的后代元素,此时 <header> 将呈现 generic 角色,而不是等同于站点级 banner。

描述

banner 地标角色会覆盖其所应用到的容器元素的隐式 ARIA 角色。它应当保留给在站点范围内全局重复出现、且通常位于每个页面顶部的内容。

banner 通常包含徽标或企业形象等内容,也可能包含站点专用的搜索工具,并且通常就是市场营销团队所说的站点“页眉”或“顶部横幅”。如果该 banner 没有使用 header 元素技术,则应使用 role="banner" 声明来为辅助技术定义 banner 地标。

如果页面的 header 元素是 body 元素的后代,且未嵌套在 articleasidemainnavsection 子分区中,辅助技术就可以将其识别为 banner

每个页面都可以有一个 banner 地标,但通常每个页面应限于只有一个 banner 角色的元素。对于包含嵌套 document 和/或 application 角色的页面,每个嵌套的 documentapplication 角色也可以各有一个 banner 地标。如果一个页面包含多个 banner 地标,则每个地标都应具有唯一的无障碍名称。

关联的 ARIA 角色、状态和属性

无。

键盘交互

无。

所需的 JavaScript 特性

无。

示例

下面是一个虚拟的 banner,其中包含一个跳转到导航的链接、一个徽标、一个标题和一个副标题。由于这是站点的主页眉,我们为容器元素添加了 banner 地标角色。

html
<div role="banner">
  <a href="#main" id="skipToMain" class="skiptocontent">跳转到主要内容</a>
  <img src="images/w3c.png" alt="W3C 标志" />
  <h1>ARIA 地标</h1>
  <p>标识页面子分区,便于导航</p>
  <nav>…</nav>
</div>

我们也可以使用 HTML header 元素来编写上述代码:

html
<header>
  <a href="#main" id="skipToMain" class="skiptocontent">跳转到主要内容</a>
  <img src="images/w3c.png" alt="W3C 标志" />
  <h1>ARIA 地标</h1>
  <p>标识页面子分区,便于导航</p>
  <nav>…</nav>
</header>

最佳实践

使用 <header> 元素会自动传达该元素具有 banner 角色的信息。如果可能,请优先使用语义化的 <header> 元素,而不是 banner 角色。

虽然最好使用 header 元素并确保它不是页面任何子分区的后代,但有时你可能无法访问底层 HTML。在这种情况下,你可以使用 JavaScript 为页面中应呈现为 banner 的元素添加 banner 角色。以这种方式标识页面的 banner 将有助于提升站点的无障碍性。

规范

规范
Accessible Rich Internet Applications (WAI-ARIA)
# banner
Unknown specification

参见