Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

辅助功能 地标


为什么

使用地标,使用 屏幕阅读器 的视障用户可以跳转到网页的各个部分。


什么

在 HTML 中,有一些语义元素可以用来定义网页的不同部分

  • <header>
  • <nav>
  • <main>
  • <aside>
  • <section>
  • <footer>

如何 - 白宫的示例

白宫的首页使用了地标。它在顶部包含一个 <header>,一个包含所有主要内容的 <main>,以及底部的一些 <nav> 元素的 <footer>

可视化地标的一种方法是使用工具 辅助功能洞察。其中一个功能是它可以突出显示地标,正如我们在下面的屏幕截图中看到的那样。

Screenshot from whitehouse.gov, showing the page is organized with banner, main, search and contentinfo landmark.

自己试试。下载浏览器扩展 辅助功能洞察 并打开地标可视化。您最喜欢的网站是否使用了地标?



角色

但是,它显示了 bannercontentinfonavigation。这有点令人困惑。原因是每个地标元素都有一个对应的角色。我们在这门课程中还没有谈到角色。我们将在后面回到这个问题,但作为简单的解释

一个 <header> 有一个内置的角色 banner。这意味着 <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"。这意味着屏幕阅读器用户可以直接跳到社交导航。提供帮助。有人会说,在 <nav> 的标签中使用 "navigation" 这个词是多余的。没有绝对的正确或错误,但 aria-label="social" 就足够了。

<aside> 和 <section> 标签

自从地标被引入 HTML 以来,开发人员一直感到困惑。人们发现两个定义模糊的元素是 <aside><section>。让我们试着澄清一下。最大的区别是 <aside> 与主要内容相关,而 <section> 相关。

Screenshot of The White House, with a sign up form for a newsletter and buttons for sharing the page in social media.

白宫的联系页面同时使用了 <aside><section>。三个分享按钮位于 <aside> 中。这是有道理的,因为它们与主要内容相关。如果您使用它们,您将分享您当前所在的页面。

"保持联系" 是一个 <section>。很好。它与主要内容无关,其他任何地标都不合适。白宫可以对这些地标进行的一个改进是添加标签。这对于屏幕阅读器用户来说将会有所帮助。 <section aria-label="Newsletter"><aside aria-label="Share this page"> 将非常有用。



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.