我知道在互联网上这里和周围有很多信息,我读过它们,但我对html5验证感到失望。 我的网页是这样的:
<body>
<nav>
<ul>
<li>...</li>
<li>...</li>
</ul>
</nav>
<main>
<section>
<header>
<h1>...</h1>
</header>
<section>
<header>
<h1>Section 1</h1>
</header>
<p>...</p>
<p>...</p>
</section>
<section>
<header>
<h1>Section 2</h1>
</header>
<p>...</p>
<p>...</p>
</section>
<section>
<header>
<h1>Section 3</h1>
</header>
<p>...</p>
<p>...</p>
</section>
</section>
</main>
<footer>
<h2>...</h2>
<p>...</p>
</footer>
</body>
根据我的知识,html5doctor和w3c规范是对的。 我的页面是一个网页,每个部分都有自己的含义。 ...但是如果我尝试验证,我会收到警告,考虑在部分内使用h2 - h6而不是h1。我的网页已经过验证,但我对那里的警告感到紧张。 请你确认一下,没关系,或者说那是什么错误?
感谢各位专家的回答Peter
答案 0 :(得分:1)
HTML5的最初构思包含大纲算法的概念。在其中,您的示例中的第一个h1将以与HTML 4.01中的h1相同的方式进行解释。 section元素中的h1元素将被视为等同于HTML 4.01中的h2元素。也就是说,它们将指示从第一个h1元素开始的从顶级部分开始的子部分的开始。
然而,在实践中发生的事情是,无论是浏览器,屏幕阅读器还是其他任何HTML处理器都没有正确地实现HTML5大纲算法。
结果是您的页面会被误解。这主要影响可访问性技术,它大量使用标题级别以允许其用户有效地浏览您的页面。
我不知道是否有任何特定的负面搜索引擎优化效应,但有效的语义误解不太可能有益。
因此,验证者给你的建议是,在可预见的将来,最好使用与在HTML 4.01中使用相同的标题级别排列,即顶级部分标题的h1,下一个标题的h2级别子部分,h3用于子子部分等。