在部分内标记h1

时间:2015-03-14 22:36:09

标签: html5 sections

我知道在互联网上这里和周围有很多信息,我读过它们,但我对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

1 个答案:

答案 0 :(得分:1)

HTML5的最初构思包含大纲算法的概念。在其中,您的示例中的第一个h1将以与HTML 4.01中的h1相同的方式进行解释。 section元素中的h1元素将被视为等同于HTML 4.01中的h2元素。也就是说,它们将指示从第一个h1元素开始的从顶级部分开始的子部分的开始。

然而,在实践中发生的事情是,无论是浏览器,屏幕阅读器还是其他任何HTML处理器都没有正确地实现HTML5大纲算法。

结果是您的页面会被误解。这主要影响可访问性技术,它大量使用标题级别以允许其用户有效地浏览您的页面。

我不知道是否有任何特定的负面搜索引擎优化效应,但有效的语义误解不太可能有益。

因此,验证者给你的建议是,在可预见的将来,最好使用与在HTML 4.01中使用相同的标题级别排列,即顶级部分标题的h1,下一个标题的h2级别子部分,h3用于子子部分等。