为什么 Google 爬虫和标记验证器将此视为错误?
Why Google crawler and Markup Validator sees this as an error?
这几天我一直在试图找出为什么我从 Markup Validation 得到这个错误(link 是网站的实际验证。不要介意其中的其他错误,最上面的 <p>
标签是目前的问题,其他错误来自我尚未修复的数据库内容)并且 Google 的网站管理员工具 "Fetch as Google" 也讨厌它。我敢肯定这是非常微不足道的事情。
验证者说:
"No p element in scope but a p end tag seen." As you can see I have p element too.
Google 爬虫说:
我假设鲜红色是错误的,他们应该有一个颜色图例...无论如何我也不明白 itemtype
有什么问题。
实际代码:
<header>
<h1>
<a itemprop="url" href="http://www.rovarvadasz.hu/"><img itemprop="logo" src="/images/header_bg.png" alt="Rovar Vadász"></a>
</h1>
<div id="contact" itemscope itemtype="http://schema.org/LocalBusiness">
<p>
<ul>
<li>Telefon: <span itemprop="telephone"><a href="tel:0616303958">06 (1) 630-3958</a></span></li>
<li>Nyitvatartás: munkanapokon <time itemprop="openingHours" datetime="09:00">9</time>-<time itemprop="openingHours" datetime="16:00">16</time> óráig</li>
<li>Fax: <span itemprop="faxNumber">06 (1) 240-1546</span></li>
<li>Mobil: <span itemprop="telephone"><a href="tel:06204224558">06 (20) 422-4558</a></span></li>
<li>E-mail: <a href="mailto:info@rovarvadasz.hu" itemprop="email">info@rovarvadasz.hu</a></li>
</ul>
</p>
</div>
</header>
您的错误都很轻微,但是由以下原因引起的:
1) p 标签被客户端自动关闭,因为它命中了 <ul>
标签,所以实际上你的语句是:
<p> ... </p> <ul> ... </ul> </p>
这是因为 List 元素不应该是 Paragraph 元素的 sub-elements。所以客户端浏览器试图解决这个问题,但还剩下 </p>
。
2) 您的第 75 行 itemprop 不在您的 div 中,而是在您的 header 元素中的锚点中。您的 itemprop="logo"
是免费的,不在任何项目范围内。
3) 我还看到其他错误,您的元素用 />
关闭,这在 HTML5
上不需要
这几天我一直在试图找出为什么我从 Markup Validation 得到这个错误(link 是网站的实际验证。不要介意其中的其他错误,最上面的 <p>
标签是目前的问题,其他错误来自我尚未修复的数据库内容)并且 Google 的网站管理员工具 "Fetch as Google" 也讨厌它。我敢肯定这是非常微不足道的事情。
验证者说:
"No p element in scope but a p end tag seen." As you can see I have p element too.
Google 爬虫说:
我假设鲜红色是错误的,他们应该有一个颜色图例...无论如何我也不明白 itemtype
有什么问题。
实际代码:
<header>
<h1>
<a itemprop="url" href="http://www.rovarvadasz.hu/"><img itemprop="logo" src="/images/header_bg.png" alt="Rovar Vadász"></a>
</h1>
<div id="contact" itemscope itemtype="http://schema.org/LocalBusiness">
<p>
<ul>
<li>Telefon: <span itemprop="telephone"><a href="tel:0616303958">06 (1) 630-3958</a></span></li>
<li>Nyitvatartás: munkanapokon <time itemprop="openingHours" datetime="09:00">9</time>-<time itemprop="openingHours" datetime="16:00">16</time> óráig</li>
<li>Fax: <span itemprop="faxNumber">06 (1) 240-1546</span></li>
<li>Mobil: <span itemprop="telephone"><a href="tel:06204224558">06 (20) 422-4558</a></span></li>
<li>E-mail: <a href="mailto:info@rovarvadasz.hu" itemprop="email">info@rovarvadasz.hu</a></li>
</ul>
</p>
</div>
</header>
您的错误都很轻微,但是由以下原因引起的:
1) p 标签被客户端自动关闭,因为它命中了 <ul>
标签,所以实际上你的语句是:
<p> ... </p> <ul> ... </ul> </p>
这是因为 List 元素不应该是 Paragraph 元素的 sub-elements。所以客户端浏览器试图解决这个问题,但还剩下 </p>
。
2) 您的第 75 行 itemprop 不在您的 div 中,而是在您的 header 元素中的锚点中。您的 itemprop="logo"
是免费的,不在任何项目范围内。
3) 我还看到其他错误,您的元素用 />
关闭,这在 HTML5