2017-07-13 110 views
1

HTML5引入了很多semantic elements<nav>,<section>,<article>等)。但除了帮助阅读和构建我们的HTML,他们还有其他独特的属性吗?或者他们基本上只是<div> s有不同的名字?看起来后者是真的。语义HTML5元素属性

我一直在阅读“语义”,但找不到直接的答案。

+2

大部分 - 是的,它们基本上只是div,但是在设计时考虑了特定的用例。它们甚至不映射到DOM中的独特接口,与映射到HTMLDivElement的div不同。你可以使用div来处理任何事情,因为它本身并不意味着任何东西,但是一个nav是一个导航,不适合用于某些不重要的导航部分。 – BoltClock

回答

2

<nav>,<section>,<article>等等,元素没有任何暴露于前端JavaScript代码的特殊属性;相反,他们都只是使用the HTMLElement interface

但是,它们在屏幕阅读器中具有特殊属性,因为它们以特殊方式向屏幕阅读器用户发布,而div元素没有。

屏幕阅读器可以宣布一个文档的某一部分是sectionarticle,并允许屏幕阅读器用户通过该文件section -by- section,或更容易中article S JUMP导航。

也就是说,屏幕阅读器也使用户能够通过其h1间跳跃通过文件轻松导航 - h6标题 - 无论这些标题是否在sectionarticle元素,所以对于屏幕阅读器的用户,它实际上更重要的是,你的文件有很好的信息h1 - h6标题和逻辑结构。

+0

我不太在意AT采用HTML5语义元素的速度,但如果屏幕阅读器的确能够识别并支持这些元素,那么很好理解。 – BoltClock

+1

@BoltClock对于如何将特定的HTML元素暴露给屏幕阅读器的要求,通过规范的“HTML Accessibility API Mappings”规范定义了浏览器必须使用特定平台可访问性API的映射,例如MacOS,Linux,和Microsoft Windows--在某些情况下相当程度的复杂性;请参阅https://www.w3.org/TR/html-aam-1.0/#el-section。这种支持并不完美,部分原因是因为浏览器需要修复的错误 - 但有些东西,比如http://www.html5accessibility.com/HTML5ASS/,可以评分/跟踪支持水平 – sideshowbarker

+1

另请参阅http:// www。 html5accessibility.com/#sections,以获取关于“

0

语义元素是描述内容的元素。它们向浏览器提供更多信息,而不需要任何额外的属性。

考虑微格式 当你将语义添加到您的网页,你应该考虑使用微在适当的时候增加更多的含义。微格式在HTML中使用人类可读的文本(通常在元素的类属性中)来定义内容。

微格式添加了有关元素的语义信息,并且这些信息在某些情况下已被使用。

enter image description here

上面的图显示了谷歌搜索电影安德的游戏评论。第二和第三个结果显示“丰富网页摘要”,包括星级评分等信息。

Google和Bing都使用这些类型的丰富网页摘录来增强其搜索结果,并且他们使用的大部分数据都是使用微格式在语义上标记为HTML的。您可以在我的书“Sams Teach Yourself HTML5 Mobile Application Development in 24 Hours”中了解更多关于如何使用微格式的信息。

通过编写语义HTML,您可以向用户代理提供更多信息以用于正确显示信息。例如,如果屏幕阅读器看到该元素,它就知道这是该页面的主要点,并且在读取元素中的任何内容之前它会朗读它。另外,随着网页越来越复杂,用户代理对它们的处理越来越复杂。例如,将来,您的语义标记配方可以告诉准备好网络的冰箱何时提醒机器人管家开始烘烤。