H1在文章页面 – 网站标题或文章标题?

在面向文章的页面(例如博客文章)中, <h1>元素(1级标题)通常用于标记:

  • 博客标题(即页面顶部的常常大的站点标题, 而不是 <title>元素),或者
  • 文章标题

什么是最好的select,为什么?

对于网站所有者而言,他们可能想向全世界喊出他们网站/博客的名字,在网站标题周围使用1级标题似乎是有道理的。

从您尝试与用户沟通的angular度来看,网站标题的相关性较低 – 文章内容就是您要传达的内容,而所有其他网站内容都是次要的。 因此,使用<h1>作为文章标题似乎是最好的。

我觉得<h1>元素应该专注于文章标题,而不是网站标题或其他内容。 这似乎并不是一个受欢迎的惯例。

例子:

  • Joel Spolsky使用<h1>作为文章标题,并为网站标题定位
  • Jeff Atwood 完全不使用<h1><h2>使用文章标题和网站标题的锚点
  • 37信号SVN使用<h1>作为站点标题和文章标题的锚点

这是三个站点的三种不同的方法,您可能希望强调正确的语义标记。

我认为乔尔和杰夫差不多。 我非常惊讶37Signals人员的标记select。

对我来说,这似乎是一个非常简单的决定:什么是最相关的文章的消费者? 文章标题。 因此将文章标题包装在<h1>元素中。 完成。

我错了吗? 我错过了更多的考虑吗? 我对吗? 如果是这样,为什么' <h1>的文章标题'方法不是更常用?

决定使用<h1>元素的地方像我说的那样是不变的? 还是有一些主观的考虑要做呢?

更新 :感谢迄今为止所有的答案。 对于如何使用<h1>作为文章标题而不是使用网站标题来获得可用性和可访问性(或者不是,视情况而定),我真的很感激。 基于事实而不是个人假设的答案将获得许多奖励点!

有关于此主题的W3C质量保证小贴士 :

<h1>是文档一级标题的HTML元素:

  • 如果文档基本上是独立的,例如在日内瓦看事物,那么顶层标题可能与标题相同。

  • 如果它是一个集合的一部分,例如关于宠物页面集合中的狗的部分,则顶层标题应该承担一定量的上下文; 只要在标题应该在任何情况下工作,写<h1>Dogs</h1> :狗 – 您的宠物指南。

作为屏幕阅读器用户,只要标题一致,标题级别无关紧要。 不同的博客使用不同的约定,所以没有标准的方法使其更容易访问。 确保标题与内容级别匹配更重要,那么使用什么级别的标题。 例如,如果显示一系列具有评论的博客文章,则所有博客文章都可以具有标题级别2,并且在评论开始时可以具有标题级别3.对于易于导航标题的示例,可以find具有多个部分的任何维基百科文章,小节。 我可以轻松地跳过主要部分,通过使用我的屏幕阅读器导航标题function跳转到任何2级标题,如果我想移动到给定部分的小节,我将导航到下一个标题。

在您的博客的主页上,我将使用H1来表示站点标题,H2表示发布在首页上的各个博客文章的标题。

但是,在input特定文章时,我会使用H1作为文章标题和网站标题的锚点。

这是一个很好的语义设置,当Google抓取您的网站时,它也会受到赞赏。

在Wikipedia上,h1-Tag包含文档中的文章名称和标题,以h2开头。 名字维基百科是html-header中的标题标签的一部分。 我也认为这是要走的路。 所以对于博客,我会像你给的例子中的Joel Spolsky那样做。

而且我总是以最高的水平开始,所以放弃h1在我看来是一个不好的select。

HTML页面的<head>部分有一个名为<title>的元素。 顾名思义,这是网站标题。

HTML用于将页面结构化为机器可分析forms,而不是布局。 如果仅仅是关于布局,你只能使用不同的class / id的<div><span>块,并将CSS应用到它们。 代替

 <h2>Sub Header</h2> 

我可以使用

 <div class="header2>Sub Header</div> 

和某处有一些CSS代码,这将使这个<div>看起来像h2(字体大小,粗体字体等)。 不同的是,一台计算机无法知道我的<div>实际上是第一个例子中的二级标题(应该怎么知道呢?我可能会把它命名为“header2”),但是在第一种情况下,它知道它是一个二级标题,因为它是一个<h2>元素,如果它想向用户显示一个页面的结构化列表,它可以这样做

  • 顶级标题
    • 小标题
      • Sub Sub标题
    • 小标题
    • 小标题
  • 顶级标题
    • 小标题
      • Sub Sub标题
      • Sub Sub标题
    • 小标题

通过searchH1 / H2 / H3 / …元素并像上面那样构build它们。 所以如果一台电脑试图找出一个页面的标题,它会在哪里查找它? 在名为<title>的元素中还是名为<h1>的元素中? 想一想,你有你的答案。

当然,你可能会说“但标题是不可见的页面”。 那么,它通常在浏览器窗口的某处(窗口标题或至less标签标题)可见 – 但是,您可能希望它也可以在页面上看到 – 我可以理解。 但是,这是怎么说呢? 谁说你可能不重复? 但是我想知道你是否应该使用h1元素。

 <html> <head> <title>SOME TITLE</title> </head> : <body> <div id="title">SOME TITLE</div> : </body> </html> 

使用CSS以你喜欢的方式来设置#title的样式。 使它超级大,超级大胆,有一个醒目的颜色,如果你喜欢,没有什么说话反对它。 自动页面parsing器通常在某种程度上忽略了div和span,因为它没有告诉他们(这些元素是用来为阅读器布局页面的元素,但是他们对页面的结构没有提到任何内容, 布局不是结构化的 ,只能应用风格到某些结构元素来生成布局,但不应该与另一个混淆)。 还有一台电脑会知道页面的标题是什么,它知道标题元素。

对于一个典型的网站,例如博客, h1应该包含网站标题。 是的,在网站的每一页上。

为什么? 在一个网站中,有各个网页共享的部分。 以导航为例:

 <ul id="site-navigation"> <li><a href="/">Home</a></li> <li><a href="/about">About me</a></li> <li><a href="/contact">Contact</a></li> </ul> 

这个#site-navigation在站点的每个页面上重复。 它代表网站导航,而不是页面导航。 差异很重要! {页面导航可以是一个目录(如在维基百科文章中)或长篇文章的分页。}

如果您将文章标题用作h1 ,则网站导航将位于此标题的范围内。

 <body> <div>John's blog</div> <!-- the site title --> <h1>My first blog post</h1> <!-- the article title --> <p>…</p> <h2>Navigation</h2> <ul id="site-navigation">…</ul> <!-- the site-wide navigation --> </body> 

所以这个标记expression了:导航(→由h2开始)是文章的一部分(→由h1开始)。 但是这不是真的,这个导航不是文章的导航。 链接真的是整个网站的一部分,网站是由网站标题。

当文章包含子标题时问题变得更清楚:

 <body> <div>John's blog</div> <!-- the site title --> <h1>My first blog post</h1> <!-- the article title --> <p>…</p> <h2>Why I'm blogging</h2> <p>…</p> <h2>Why you should read my blog</h2> <p>…</p> <h2>Navigation</h2> <ul id="site-navigation">…</ul> <!-- the site-wide navigation --> </body> 

正如您所看到的,无法从导航中区分文章子标题。 它看起来像文章有三个小标题:“为什么我在写博客”,“为什么你应该阅读我的博客”和“导航”。

因此,如果我们使用h1作为网站标题,而使用h2作为文章标题,则导航也可以在网站标题的范围内,也可以使用h2

 <body> <h1>John's blog</h1> <!-- the site title --> <h2>My first blog post</h2> <!-- the article title --> <p>…</p> <h2>Navigation</h2> <ul id="site-navigation">…</ul> <!-- the site-wide navigation --> </body> 

现在这个标记传达了:有一个网站叫做“约翰的博客”(→由h1开始),它包含一篇文章(→由第一个h2开始)和一个网站导航(→由第二个h2开始)。 当然,这篇文章的h3现在是h3


使用h1作为文章标题的另一个问题是, 第一个标题之前通常有内容,例如包括网站标题和其他内容的网站标题。 对于通过标题进行导航的用户来说,第一个内容将是“不可见的”。 所以最好给每个单独的块分配一个自己的标题。

HTML5使用分段/大纲algorithm将其正式化。 它解决了你可能使用HTML 4.01时遇到的许多问题,因为内容顺序现在可以(大部分)是免费的,如果你不想“发明”实际的标题,这要感谢section / article / nav / aside 。 但是在HTML5中,网站标题应该是h1 ,它是body的小孩,但不是任何分段元素/根的孩子。 所有其他部分都在本网站标题的范围内。

H1在文章页面 – 网站标题或文章标题?

都。 本文是资料性的: 关于HTML5时代的多个H1标签的真相 。

应该只有一个,只有一个

  H1 

; 通常这是页面标题。 那么它应该遵循h2,h3等

所以你的页面可以像这样(没有所有其他的html标签)

 H1
   H2
   H2
     H3
 ..等等