2

我打算将<nav>标签用于一些事情,但是,我想到了以下内容。

以以下标记为例:

<nav id="sidebar">

<div class="links">
<a href="/"></a>
<a href="/"></a>
<a href="/"></a>
</div>


<div class="links">
<a href="/"></a>
<a href="/"></a>
</div>


<div class="links">
<a href="/"></a>
</div>

<div class="statement">
random content here, unrelated to navigation
</div>

<div class="randomstuff">
unrelated to navigation, but still here
</div>

</nav>

搜索引擎会尊重这种语义标签的使用吗?我的意思是,“忽略”或降低所有用导航标签(甚至是 div 等)包装的内容的优先级,即使不是直接的,甚至不一定是所有导航内容。

同样的问题headerfooter标签与divs 里面。

提前感谢您的任何帮助。

4

3 回答 3

3

您不应该包含nav与导航无关的内容。不仅规范非常清楚,它也会损害可访问性。

所以你的两个div元素(.statement.randomstuff)需要脱离nav元素。只有当它们与 中的内容“相切相关”时nav,您才能将这两个元素放在 中的aside元素nav,但我认为您的内容并非如此。

我可以问一下对于包含在每个页面上但不是导航的一般页面内容,您会推荐什么 HTML5 标记?与页眉、页脚和导航服务相同的目的,阻止包含在结果中,因为它是通用的并且在每个页面上。

没有一般的答案;这取决于您的内容应该使用哪个元素。

您可以使用分段元素(sectionarticlenavaside)和标题来创建整体结构(文档大纲)。现在每个部分(不要与section元素混淆!)可以header/footer元素。就是这样。一个部分中没有包含在header/中的所有内容都可以被认为是该部分footer的主要内容。更细粒度的元素,例如或可以提供额外的线索,它们的内容所扮演的角色。addresssmall

现在,如果某些东西(搜索引擎、屏幕阅读器、人工智能……)想要使用您的文档,它可能会利用您的标记。这种情况是否以及在何种程度上取决于几个因素,如用例、意愿、技能、成本等。所以对于“搜索引擎...?”没有一般的答案,因为a)无数的搜索引擎 (每个人每天都可以创建一个新的)和b)一些人(尤其是一般网络搜索的“大玩家”)不喜欢详细谈论这些东西。

但是我们可以假设对于所有这些用户代理/消费者的用例来说什么是有用的:

  • 屏幕阅读器可能提供仅阅读主要内容的功能(忽略nav, aside, footer, ...)
  • 博客文章搜索引擎可能会在里面的单词得分article高于里面nav/aside
  • 对于导航搜索查询,搜索引擎可能会为 、 和更高的词评分header,而footer研究查询的评分可能较低smalladdress
  • 可读性插件可能会尝试通过忽略nav,footer和顶级aside元素来查找主要内容
  • …</li>

HTML 定义了所有元素的含义。如果所有 HTML 作者都尊重这一点,我们就可以构建和使用能够完美利用标记的用户代理。但实际上,作者可能(错误)使用nav“贬低”样板内容☺,这将迫使所有消费用户代理忘记nav(因为它可能包含其他非导航内容,这可能很重要)对于他们的用例)。

于 2013-01-08T15:10:49.013 回答
1

首先,任何与导航无关的内容都不应包含在nav标签中。

至于如果您(或其他任何人)有这样不正确的标记,搜索引擎将如何处理这些内容,这是任何人的猜测。

简短的回答:没有人知道!

于 2013-01-07T09:12:32.960 回答
1

在整个区块周围使用 NAV 没有语义意义。使用通用 DIV 进行布局。

出于语义目的,您可以将多个 NAV 元素用于链接集,但规范非常开放,因此请按照您的意愿进行操作:

<div id="sidebar">

<nav>
<div class="links">
<a href="/"></a>
<a href="/"></a>
<a href="/"></a>
</div>
</nav>

<nav>
<div class="links">
<a href="/"></a>
<a href="/"></a>
</div>
</nav>

<nav>
<div class="links">
<a href="/"></a>
</div>
</nav>

<section>
<div class="statement">
random content here, unrelated to navigation
</div>

<div class="randomstuff">
unrelated to navigation, but still here
</div>
</section>

</div>

你只需要诚实地问自己,“这读起来合乎逻辑吗?”。

事实是,有很多关于 HTML5 标签的炒作。就个人而言,我认为它们是一个好主意,但在实践中,现在只能猜测搜索引擎对它们的作用。

希望这可以帮助。米奇

于 2013-01-07T11:02:40.973 回答