千家信息网

HTML5的Landmark如何使用

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本篇内容介绍了"HTML5的Landmark如何使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什
千家信息网最后更新 2025年01月21日HTML5的Landmark如何使用

本篇内容介绍了"HTML5的Landmark如何使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

什么是 Landmark

Landmark 是一种用来表示网页组织结构的方法。通常一个网页可以被切分成几个大块

以一个视频网站为例,网页的最上方是一条banner,左侧是一个导航栏,右侧显示视频。网页可以通过这种切分方式来分割出不同的功能区。当然在一个功能区内也可以递归地进行切分,这里先不展开。
对于一个视力障碍者,他无法像常人一样理解从视觉角度传达出的网页结构信息,那么就需要网页开发者预先将网页的结构规划好,并将结构信息写在HTML代码里,最终将网页的结构信息通过读屏软件表达出来。
而landmark就是连接网页结构信息和读屏软件的桥梁。网页开发者通过landmark对网页区域进行标注,读屏软件读取landmark信息并传达给视力障碍者。

如何使用 Landmark

事实上,在HTML5 landmark出现之前,就已经有landmark的概念了。
landmark有以下几种main,navigation,complementary,banner,contentinfo,form,region,search。通过使用

就定义了一个main landmark。

而在HTML5中定义了一些全新的标签,并赋予他们隐式的landmark语义。
HTML5 Landmark主要有以下几种

HTML ElementLandmark Role
main
navigation
complementary
banner
contentinfo
form
region

这些标签本身就隐含着landmark的含义,也就是说

是完全等价的。

对于search landmark没有定义专用的HTML标签,通常使用来实现。

也就是说,在上一节引用的网页中

  1. 对于1号区域,应当把所有的内容放到一个

    中,标识该部分是banner

  2. 对于2号区域,应当把所有的内容放到一个

    中,标识该部分是导航栏

  3. 对于3号区域,应当把所有的内容放到一个

    中,标识该部分是网页的主要内容

读屏软件会生成一系列的跳转链接来帮助视力障碍者确定网页的结构并迅速跳转至需要的部分。

在HTML5之前,只能通过role属性来定义landmark,HTML5推出的新标签能够在保持可访问性的情况下简化标记。但并不是每个用户使用的辅助工具都支持最新的标准,因此许多教程推荐使用

的写法来同时兼容两种标准。W3C的标准不鼓励在已经含有隐式语义的情况下使用role属性,因为两者语义冲突的情况下可能导致无法预计的表现。

区分同类型的 Landmark

有时候页面中可能会有多个导航栏,分别有不同的作用。比如一个电商网站有一个主导航来跳转到购物车、收藏夹等不同的页面;还有一个产品导航来跳转到电子产品、婴儿产品。如何对两者进行区分呢,这里需要使用aria-label或者aria-labelledby属性。

这样读屏软件会分别生成以下两个链接

  • 导航,主导航

  • 导航,产品导航

这样就将不同的landmark区分开了。

使用读屏软件读取 Landmark

为了更好地理解landmark,我尝试使用读屏软件来测试网页上的landmark。这里我使用的是Windows系统自带的讲述人。

按下Caps Lock + F5来显示网页中所有的landmark。

按下Caps Lock + N,可以看到讲述人光标移动到了网页的主要内容部分。

使用D或Shift + D可以在landmark间切换,同时会朗读出每个landmark的信息。
这里可以看到有一个search landmark,它在banner landmark的内部,这就是landmark嵌套的情况。对于landmark嵌套有一系列的规则,感兴趣的读者可以自己了解。

"HTML5的Landmark如何使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0