我应该在元素之外还是在主元素内部?

时间:2016-06-24 22:43:24

标签: html5 seo accessibility semantic-markup

假设aside元素包含“哦,顺便说一下......”等内容,例如阅读建议,广告或交叉销售。

  1. aside之外的main在语义上是否正常?
  2. 如果是,如果我将aside保留在main之外,例如“跳到主要内容”命令,它是否优于可访问性?
  3. 最后但并非最不重要的是,如果我在aside之外或之内添加main标记,我想知道是否存在任何SEO影响。

2 个答案:

答案 0 :(得分:12)

In HTML5仅定义asideaside元素"周围的内容相关。

In HTML 5.1(CR)定义became more specific,因为它现在表示aside与父母分区内容的内容相关"

遵循较新的定义,aside元素应位于与其相关的section元素内。 main元素是一个切片元素(articlesectionbodyfigure等元素。您当然可以将aside放在main中,但它会与main的最近的切片元素父项相关。

这意味着这两个例子中没有语义差异(aside):

<body>
  <main></main>
  <aside><!-- related to the body --></aside>
</body>
<body>
  <main><aside><!-- related to the body --></aside></main>
</body>

显示几种不同情况的示例:

<body>

  <main>

    <article>

      <aside><!-- related to the article --></aside>

      <section>

        <aside><!-- related to the section --></aside>

        <blockquote>
          <aside><!-- related to the blockquote (not to the section!) --></aside>
        </blockquote>

        <div>
          <aside><!-- related to the section (not to the div!) --></aside>
        </div>

      </section>

    </article>

    <aside><!-- related to the body (not to the main!) --></aside>

  </main>

  <aside>
    <!-- related to the body -->
    <aside><!-- related to the (parent) aside --></aside>
  </aside>

  <nav>
    <aside><!-- related to the nav --></aside>
  </nav>

  <footer>
    <aside><!-- related to the body (not to the footer!) --></aside>
  </footer>

</body>

答案 1 :(得分:8)

如果您的<aside>与您<main>中的内容直接相关,那么我会将其保留在<main>中。现在,那就是说......

  1. 是的,在<aside>之外<main>在语义上是正常的(因为它有效,但您的内容可能另有保证)。
  2. 我不明白你是如何认为跳过链接在这里发挥作用的,但<aside>以外的<main>对可访问性没有任何伤害或益处。只要你遵循良好的结构和有效的加价,你应该没事。
  3. 我不知道。我的网站<aside><main><aside><main>,我的排名没有差异。鉴于搜索引擎通常对这样的特定位不透明,如果您担心,我会考虑进行一些A / B测试。
  4. 来自HTML5 Doctor的相关资料,由HTML5规范编辑之一编写: