html5 – 什么是正确使用schema.org SiteNavigationElement?

前端之家收集整理的这篇文章主要介绍了html5 – 什么是正确使用schema.org SiteNavigationElement?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
SEO条款…

最好把方案放在包含所有链接的父母上?

<nav itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
    <a href="#">Link 1</a>
    <a href="#">Link 2</a>
    <a href="#">Link 3</a>
</nav>

…或者应该将每个链接视为自己的元素?

<nav>
    <span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
        <a itemprop="url" href="#">
            <span itemprop="name">Link 1</span>
        </a>
    </span>
    <span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
        <a itemprop="url" href="#">
            <span itemprop="name">Link 2</span>
        </a>
    </span>
    <span itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
        <a itemprop="url" href="#">
            <span itemprop="name">Link 3</span>
        </a>
    </span>
</nav>

解决方法

如果SiteNavigationElement用于整个导航(即导航链接列表),则您的第一个示例是正确的。

如果SiteNavigationElement用于单个导航条目(即导航链接列表中的链接),则您的第二个示例是正确的。

我认为Schema.org不明确地定义哪个变体是什么意思,因为他们只说:

A navigation element of the page.

然而,父类WebPageElement定义为:

A web page element,like a table or an image

而且,所有其他的孩子类型(如TableWPFooter)似乎都被用于整个事物,而不是东西的特定部分。

所以这似乎表明,整个导航应该被标记,而不是每个单一的链接

<nav itemscope itemtype="http://schema.org/SiteNavigationElement">
<ul>
  <li><a href="javascript:void()" class="outlink" data="/link-1">Link 1</a></li> <!-- don’t use the 'url' or 'name' property here! -->
  <li><a href="javascript:void()" class="outlink" data="/link-2">Link 2</a></li>
</ul>
</nav>

在这种情况下,所有的属性都属于整个导航,所以这意味着url属性将指定此导航的URL(而不是此导航中的链接的URL)!

猜你在找的HTML5相关文章