辅助功能地标
为什么
借助地标,使用 屏幕阅读器 的盲人用户能够跳转到网页的各个部分。
什么
在 HTML 中有一些语义元素可用于定义网页的不同部分:
<header><nav><main><aside><section><footer>
如何 - 来自白宫的例子
白宫的首页正在使用地标。 它由顶部的 <header> 和包含所有主要内容的 <main> 组成 和一个 <footer>,底部有一些 <nav> 元素。
一种可视化地标的方法是使用工具 Accessibility Insights。 其中一个特点是它突出了地标,正如我们在下面的屏幕截图中看到的那样。
自己试试吧。 下载浏览器扩展 Accessibility Insights 并打开地标可视化。 您最喜欢的网站是否使用地标?
角色
等等,它显示了 banner、contentinfo 和 导航代码>。 这有点令人困惑。 原因是每个地标元素都有对应的作用。 到目前为止,我们还没有讨论过本课程中的角色。 我们将回到这一点,但作为一个简化的解释:
<header> 有一个内置的横幅角色。 这意味着 <header>、<header role="banner"> 和 <div role="banner"> 或多或少是等价的。 在大多数情况下,<header> 就足够了。
<nav>也是如此,它内置了role="navigation"。<main> 比较简单,它有 role="main"。 然后我们有 <footer> 及其 role="contentinfo"。 让我们暂时离开角色。
每个地标不止一个
一条经验法则是每页只使用一个 <main>。 当我们使用不止一种地标时,例如本例中的多个 <nav>,我们必须标记它们中的每一个。 这是通过属性 aria-label 完成的。
在白宫的页脚中,我们有三个 <nav>,每个都有一个 aria-label,例如 aria-label="social navigation"。 这意味着屏幕阅读器用户可以直接跳到社交导航。 伸出援助之手。 有人会说,将"navigation"导航一词用作 <nav> 标签的一部分是多余的。 没有对错之分,但是 aria-label="social" 应该没问题。
<aside> 和 <section> 标签
自从将地标引入 HTML 以来,开发人员一直感到困惑。 人们发现定义模糊的两个元素是 <aside> 和 <section>。 让我们试着澄清一下。最大的区别是一个 <aside> 与主要内容相关,<section>不相关。
白宫的联系页面同时使用了 <aside> 和 <section>。三个共享按钮位于 <aside> 中。 这是有道理的,它们与主要内容相关。 如果您使用它们,您将共享您所在的页面。
Stay Connected 是 <section>。 好的。 它与主要内容无关,其他地标也不合适。白宫可以对这些地标进行的一项改进是添加标签。 这对于屏幕阅读器用户来说会更好。 <section aria-label="Newsletter"> 和 <aside aria-label="Share this page"> ; 会有帮助。

