【问题标题】:HTML5 Philosophy: Omission of certain semantic elements?HTML5 哲学:省略某些语义元素?
【发布时间】:2016-05-02 01:54:12
【问题描述】:

我想知道这是否适用。

例子:

  1. main标签

    HTML5 规范说:

    主元素代表一个主体的主要内容部分 文件或申请。主要内容部分由内容组成 直接相关或扩展的中心主题 文档或应用程序的中心功能。

    因此,这是否意味着:

    如果您页面中的唯一内容是main 内容并且只有主要内容,您应该排除该标签,因为除了它本身之外没有任何关联?

  2. section标签

    HTML5 规范说:

    section 元素表示文档的通用部分或 应用。在这种情况下,一个部分是一个主题分组 内容。

    如果您页面中的唯一内容位于section 中,那么这是否意味着您的页面不应该被分割,而应该是单个元素,因此您不应该使用section 标记?

我的想法:

我认为在提供的情况下应该省略main 标签,但是,应该需要section 标签,因为一个页面可以被分成一个部分。部分一词可用于描述整体的单个部分,无论该部分是否是整体的唯一部分。

我正在考虑的布局:

doctype html
html
  head
    ...
  body
    header
    main
      section
    nav
    footer

变成:

doctype html
html
  head
    ...
  body
    header
    section
    nav
    footer

【问题讨论】:

  • 我会以不同的方式阅读它——文档的中心主题是特定页面/URI 的用途。因此,如果它是一个 About 页面,而您所拥有的只是有关您网站的内容,则将其包装在 main 中可以让每个人都知道该内容直接针对 About。此外,如果您开始删除标签,如果您删除了两个标签,您将如何区分包含 1 个部分的页面与包含 1 个主要部分的页面。实际上,使用标签更容易进行样式设置。放置标签和样式 main 比样式 main 和 body 的第一个孩子更好,没有其他例外。

标签: html


【解决方案1】:

我认为在提供的情况下应该省略主标签,但是, 应该需要 section 标签,因为页面可以被分割 分成一个部分。

在较早的候选推荐中也有类似的建议(参见https://www.w3.org/TR/2012/CR-html5-20121217/common-idioms.html#the-main-part-of-the-content),它建议对主要内容进行隐式标记或让body 用元素标记主要内容(如headernav、@ 987654330@) 排除其他(非main 内容)位(如您所建议的)。

但是,此部分后来被删除(请参阅 https://lists.w3.org/Archives/Public/public-html/2013Feb/0037.html 或仅搜索 Re: 第 4/5 周:为 HTML5.1 / HTML5.0 CR 准备的 WHATWG 补丁 em> 在 public-html 列表中https://www.w3.org/Search/Mail/Public/advanced_search)。引用

我认为不应该包括这一部分,因为它指出 没有用于标记主要部分的专用元素 页面内容。这与 HTML 5.1 中 main 的定义相矛盾


此外,如果您查看https://www.w3.org/html/wg/wiki/User:Sfaulkne/main-usecases#Introduction,则在某些用例中,不使用main 标签将需要替代方案(例如role="main" 用于ARIA 或某些基于结构的CSS 用于样式),所以IMO 将是最好使用main 标签,即使您只是按照用例进行操作。

注意 - 即使您使用了 main 标记,仍然建议您使用 role="main"(直到所有浏览器自动将 main 元素映射到 role="main"


main 标签下,如果你想表明它是其他东西的一部分,你可以有一个section 标签(见https://www.w3.org/TR/html5/sections.html#article-or-section?)

在相关说明中,当页面的主要内容(不包括所有额外位)是自包含时,您可以使用 article 标签标记内容,但规范说它在技术上是多余的(参见 @987654326 @)。引用

...内容应该用一个主要元素和内容进行标记 也可以用文章标记,但在技术上是多余的 这种情况(因为不言而喻该页面是单个 合成,因为它是一个单独的文档)。


总结

  1. 您需要main 标签。
  2. 你不需要section 标签,除非你想表明它是其他东西的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多