2

W3C 没有明确说明我们应该如何使用标题,或者我找不到此类信息。

资源:

这非常简短,并提出了许多问题,例如:

  1. “有些人认为跳过标题级别是不好的做法。他们接受H1 H2 H1而他们不接受H1 H3 H1,因为标题级别H2被跳过了。” - 那么,我们应该跳过它们吗?
  2. 设计侧边栏时 - 应该使用哪些标题?H2?
  3. 设计页脚时 - 应该使用哪些标题?H2?
  4. 标题是用于列表(如页脚中的帖子列表)吗?
  5. 应该H1在一个页面上只使用一次?
  6. 在设计“帖子列表页面”时——每个条目通常由 TITLE 和 EXCEPT 组成——我们应该使用H1标题吗?或者H2或者DIV?
  7. 由于标题是块级元素,我假设链接进入内部?对于span应该以不同寻常的方式设置标题样式的 's 也是如此?

如果有人能对此有所了解,那就太好了:)谢谢。

4

3 回答 3

4

1.有些人认为跳过标题级别是不好的做法。他们接受 H1 H2 H1 而他们不接受 H1 H3 H1 因为标题级别 H2 被跳过了。” - 那么,我们应该跳过它们吗?

正如理查德所说,这取决于程序员。一般来说,标题会在您的页面中构建结构,就像您在学校为论文制作的大纲一样。有一个网站,可以根据标题为您创建大纲。进一步的 WebAIM 发现,人们使用技术,比如知道自己处于什么级别,所以跳来跳去,可能会让一些人感到困惑。

2.在设计侧边栏时 - 应该使用哪些标题?氢2?

我通常会输入一个<h2>,以便人们可以更轻松/更快地导航到它。老实说,我已经有一年左右没有积极设计过页面了,所以如果我要做某事,如果侧边栏确实不需要标题,我可能会使用ARIA来代替,并分配“补充”角色。使用 HTML5,我可以简单地使用<aside>标签,它本身就具有补充作用。

3.在设计页脚时 - 应该使用哪些标题?氢2?

我通常不在页脚中使用标题。您可以将 contentinfo 角色分配给 footer div,或者使用 HTML5<footer>标签,它再次具有原生属性。这篇关于 ARIA的博文很有帮助。

4.Headings 是用来做列表的(比如页脚中的帖子列表)?

当然,你可以这样做:

<h3>My favorite Movies</h3>
<ol>......</ol>

5.H1应该在一个页面上只使用一次吗?

漫长而无休止的辩论。我认为 H1 应该只用于内容的标题,例如 SO 上的问题标题。HTML5 小组中有一个讨论,新标签,例如<section>重置我上面提到的层次结构/大纲,并且h1可以使用。我不是粉丝,也不赞成这一点。

6.在设计“帖子列表页面”时-每个条目通常由TITLE和EXCEPT组成-我们应该使用H1作为标题吗?还是 H2 或 DIV?

我会用h2's

7.既然标题是块级元素,我假设链接在里面?对于应该以不寻常方式设置标题样式的跨度也是如此?

正确的做法是<h_><a>Words</a></h_>

于 2013-02-07T14:08:10.067 回答
3

您应该阅读HTML5 规范的“标题和部分”部分。获得正确的标题是可访问性的一个重要方面。

使用标题(和部分),您可以告诉各种用户代理您的页面是如何构建的,哪些内容属于一起,哪些内容彼此分开。

想想一个有 3 列的典型网站。第一列是网站导航,第二列是主要内容,第三列是次要内容。现在,由于不同的背景颜色、边距、边框等等,能够看到的人可能会立即掌握页面上的三个“区域”。但是视障或盲人无法从页面的图形设计中获得线索。机器(如搜索引擎)也不是。因此我们使用标题/分段元素,因此他们可以从标记中获取信息(页面的结构)。

每个 HTML5 文档都有一个大纲,它是通过使用标题h1- h6(和hgroup)和/或分段元素(、、、、sectionarticle创建navaside。您可以将其视为某种TOC

虽然能够看到的人通过查看图形设计来初步了解页面结构,但使用屏幕阅读器和机器的人通过阅读页面大纲来了解页面结构,例如:

(1.) John Doe's Example Blog
  (1.1) Navigation
  (1.2) My first year at ACME
  (1.3) Recent blog posts

这可能是以下示例文档的大纲:

仅使用标题:

<body>
  <h1>John Doe's Example Blog</h1>
  <h2>Navigation</h2>
  <h2>My first year at ACME</h2>
  <h2>Recent blog posts</h2>
</body>

根据计算的大纲使用具有级别的分段元素和标题:

<body>
  <h1>John Doe's Example Blog</h1>
  <nav>
    <h2>Navigation</h2>
  </nav>
  <article>
    <h2>My first year at ACME</h2>
  </article>
  <aside>
    <h2>Recent blog posts</h2>
  </aside>
</body>

h1随处使用切片元素:

<body>
  <h1>John Doe's Example Blog</h1>
  <nav>
    <h1>Navigation</h1>
  </nav>
  <article>
    <h1>My first year at ACME</h1>
  </article>
  <aside>
    <h1>Recent blog posts</h1>
  </aside>
</body>

(后两者在语义上是等价的!)

使用分段元素时,您甚至可以完全省略标题,大纲仍然是相同的,尽管“未命名”(这不是很有帮助!):

<body>
  <nav></nav>
  <article></article>
  <aside></aside>
</body>

这将是相应的大纲:

(1) (Untitled Section)
  (1.1) (Untitled Section)
  (1.2) (Untitled Section)
  (1.3) (Untitled Section)

您可以使用此在线大纲来查看哪些文档创建了哪些大纲。

那么,我们应该跳过它们吗?

为什么你首先要跳过关卡?它可能永远不会,所以不,你不应该跳过关卡。但如果发生这种情况,我不会认为这是一个严重的错误。

但是请注意,根据您跳过的准确程度,特别是如果您没有跳过该级别的所有标题,则可能会创建错误的大纲。例如,参见这个简单的文档:

<body>
<h1>Interesting stories</h1> <!-- this is the site heading -->

  <h2>My first snow</h2> <!-- this is a story -->
    <h3>What I thought snow would be like</h3> <!-- this is a subsection of that story -->
    <h3>How I experienced it actually</h3> <!-- also subsection -->
    <h3>Why I'm disappointed by snow</h3> <!-- also subsection -->

  <h2>More stories about snow</h2> <!-- this is not part of the story, but a kind of "See also" for the site/page -->
</body>

现在,如果您将最后一个更改h2h3,突然间这个“更多故事”部分将成为故事的一个子部分。如果您将其更改为h4,它将成为一个小节。

设计侧边栏时 - 应该使用哪些标题?H2? 设计页脚时 - 应该使用哪些标题?H2?

这些问题一般都无法回答。这取决于您的网站页面内容。但是,是的,在许多情况下,“典型页面”h2将是正确的候选人。页面标题(不要与主要内容标题混淆!)是h1,主要内容是h2,次要内容(侧边栏等)是h2。如果您的页脚需要一个标题(不是每个都需要),那么h2在这种情况下也是如此。

标题是用于列表(如页脚中的帖子列表)吗?

这实际上取决于内容和上下文。

您必须提出的重要问题(通常,对于所有航向决定):

  1. 此内容是否“属于”上一个标题?
  2. 如是:
    1. 它是某种子部分吗?→ 分别使用更高一级的标题。使用一个section元素(以及它内部的可选标题)
    2. 此内容是否没有自然的“副标题”?→ 不要在这里使用标题
  3. 如果否:分别使用低一级的标题。使用不是相关切片元素的子元素的切片元素
    • (您必须重复此步骤,直到您的标题/部分是它所属标题的子标题)

应该H1在一个页面上只使用一次?

没有。正如我所解释的,您可以使用页面上h1所有标题(如果您使用分段元素!)。

在设计“帖子列表页面”时——每个条目通常由 TITLE 和 EXCEPT 组成——我们应该使用H1标题吗?或者H2或者DIV?

您可能应该article为每个条目使用一个元素。所以你会自动得到一个标题(=大纲中的一个条目),可以这么说,就像article一个切片元素一样。现在,您可以使用h1它(无论article放置在哪里!),或者您可以使用计算的标题级别(如果article是 的直接子级body,您将使用h2. 如果它更深一层,h3. 等等.)。


使用分段元素和标题,以便创建有用的大纲。

如果您标记网页,请只查看创建的大纲一分钟:这有意义吗?您是否了解页面的结构,它有哪些部分?层次结构是否正确?此大纲中是否缺少页面的单独区域/部分?一个部分是它不属于的部分的子部分吗?(例如,您经常看到站点导航是页面主要内容的子项,当然这是不正确的:通常它们应该在同一级别,都是站点标题的子项)。

于 2013-02-09T07:55:08.470 回答
1

<h_>从其原始用途的角度来看,这些标签有点多余。随着 CSS 的普遍存在,类似这样的标签<h4>几乎可以描述所有意图和目的。

如果您有一个包含多个部分的页面,那么以某种方式表示这一点是有意义的,并且在<section id="">完全采用HTML5标记之前,标题对于阅读源代码很有用。考虑因素可能包括:

  1. 搜索引擎优化:如果你把一段文本作为标题,你就是在告诉搜索引擎,“嘿,这很重要!”。这在多大程度上重要还有待讨论。
  2. 代码可读性:如果有多个人在项目上工作,标题是了解页面副本中出现中断的好方法。您可以<!-- Sidebar Here -->使用类似的效果来执行此操作,但对某些人来说,这是矫枉过正的。

“有些人认为跳过标题级别是不好的做法。他们接受 H1 H2 H1 而他们不接受 H1 H3 H1,因为跳过了标题级别 H2。” - 那么,我们应该跳过它们吗?

这是由程序员自行决定的。您可能决定使用<h1>页面标题、<h2>章节标题,但这不是一成不变的。无论如何,您都可以使用 CSS 重新设置标题的样式,因此您可以更喜欢层次结构而不是外观。如果您认为侧边栏与标签云同等重要,请给它们相同的标题分类。

由于标题是块级元素,我假设链接进入内部?对于应该以不寻常方式设置标题样式的跨度也是如此?

这是绝对正确的。

我所说的要点是 W3C 标准可供参考。制作网络浏览器、RSS 阅读器等的开发团队关心它们,因为这意味着他们不必相互讨论新标签。想象一下,谷歌、微软和苹果就何时应该使用<h4>或标签举行跨党派会谈......噩梦燃料!<span>

如果上面问题 2-6中的主题不是一成不变的,那么常识就是故障保险。那,并与您的同事交谈并同意前进的方向。很抱歉重复我自己,但标准仅供参考

希望有帮助!

于 2013-02-07T10:38:36.647 回答