ARIA:主要角色
main 地标角色用于指示文档的主要内容。主要内容区域包含与文档的中心主题或应用程序的主要功能直接相关或扩展的內容。
html
<div id="main" role="main">
<h1>Avocados</h1>
<!-- main section content -->
</div>
这是讨论牛油果的文档的主要部分。该文档的子部分可以讨论牛油果的历史、不同类型、生长地区等等。
描述
关联的 ARIA 角色、状态和属性
aria-owns-
aria-owns属性在辅助技术层建立了 DOM 中不存在的关系。文档和应用程序可以在 DOM 中嵌套,这可能导致 DOM 后代中存在多个主要元素。如果出现这种情况,请包含aria-owns以标识主要元素与其文档或应用程序祖先之间的关系。 aria-label或aria-labelledby-
如果存在可见标题,则使用
aria-labelledby识别可访问名称。否则,包含aria-label有助于为辅助技术用户提供方向,特别是在单页面应用程序中,主要内容更改会发生而不会生成页面加载事件。
示例
html
<body>
<!-- primary navigation -->
<div role="main">
<h1>The First Indochina War</h1>
<!-- article content -->
</div>
<!-- sidebar and footer -->
</body>
无障碍性问题
每个文档中只使用一个 main 角色
main 地标角色 每个文档中只应使用一次。
如果文档包含两个 main 角色(例如,通过 JavaScript 触发时更新页面内容),则应使用诸如切换 hidden 属性 等技术从辅助技术中删除非活动 main 角色的存在。
html
<main>
<h1>Active `main` element</h1>
<!-- content -->
</main>
<main hidden>
<h1>Hidden `main` element</h1>
<!-- content -->
</main>
包含可访问名称也很有帮助,这有助于为辅助技术用户提供方向,尤其是在单页面应用程序中,主要内容更改会发生而不会生成页面加载事件。这可以通过 aria-labelledby(如果内容中存在适当的名称)或 aria-label(如果不存在)添加。
最佳实践
优先使用 HTML
使用 <main> 元素将自动传达某个部分具有 main 的角色。如果可能,优先使用它。
跳过导航
跳过导航(也称为“skipnav”)是一种技术,允许辅助技术用户快速跳过大量重复内容(主导航、信息横幅等)。这使用户可以更快地访问页面的主要内容。
将 id 属性 添加到声明为 role="main" 的元素,允许它成为用户跳过导航链接的目标。
html
<body>
<a href="#main-content">Skip to main content</a>
<!-- navigation and header content -->
<div id="main-content" role="main">
<!-- main page content -->
</div>
</body>
等同于
html
<body>
<a href="#main-content">Skip to main content</a>
<!-- navigation and header content -->
<main id="main-content">
<!-- main page content -->
</main>
</body>
规范
| 规范 |
|---|
| 可访问的富互联网应用 (WAI-ARIA) # main |
| 未知规范 |