HTML5哲学:省略某些语义元素?

时间:2016-05-02 01:54:12

标签: html5

我想知道这是否适用。

示例:

  1. main代码

    HTML5规范说:

      

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

    因此,这是否意味着:

    如果您网页中的唯一内容是main内容而且只包含主要内容,那么您应该排除该标记,因为没有任何内容可以将其与自身联系起来?

  2. section代码

    HTML5规范说:

      

    section元素表示文档的通用部分或   应用。在这方面,一节是一个主题分组   内容。

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

  3. 我的想法:

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

    我正在思考的布局:

    main

    变为:

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

1 个答案:

答案 0 :(得分:1)

  

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

早期的候选人推荐(见https://www.w3.org/TR/2012/CR-html5-20121217/common-idioms.html#the-main-part-of-the-content)中有一个类似的建议,建议隐含标记主要内容或body用元素标记主要内容(如headernavfooter)排除其他(非main内容)位(如您所建议的那样)。

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

  

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

此外,如果您查看https://www.w3.org/html/wg/wiki/User:Sfaulkne/main-usecases#Introduction,则有些情况下,不使用main标记需要替代方案(例如ARIA的role="main"或基于CSS的一些基于结构的样式) ,所以IMO最好有main标签,即使你只是去了用例。

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

main标记下,如果您想表明它是其他内容的一部分,您可以拥有section标记(请参阅https://www.w3.org/TR/html5/sections.html#article-or-section?)

在相关的说明中,虽然当页面的主要内容(不包括所有额外位)是自包含的时,您可以使用article标记标记内容,但规范说它在技术上是多余的(请参阅https://www.w3.org/TR/html5/sections.html#the-article-element)。引用

  

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

总结

  1. 您需要main标记。
  2. 您不需要section标记要表明它是其他内容的一部分。