我有一个FAQ页面,我希望用更好的html架构来完成它。
<main role="main" itemscope itemtype="http://schema.org/WebPage">
<article itemprop="mainContentOfPage">
<header>
<h1>Frequently Asked Questions</h1>
</header>
<section itemscope itemtype="http://schema.org/Question">
<h2 itemprop="name">Some question #1</h2>
<p itemprop="suggestedAnswer acceptedAnswer" itemscope itemtype="http://schema.org/Answer">
<span itemprop="text">This is an answer #1</span>
</p>
</section>
<section itemscope itemtype="http://schema.org/Question">
<h2 itemprop="name">Some question #2</h2>
<p itemprop="suggestedAnswer acceptedAnswer" itemscope itemtype="http://schema.org/Answer">
<span itemprop="text">This is an answer #2</span>
</p>
</section>
<section itemscope itemtype="http://schema.org/Question">
<h2 itemprop="name">Some question #3</h2>
<p itemprop="suggestedAnswer acceptedAnswer" itemscope itemtype="http://schema.org/Answer">
<span itemprop="text">This is an answer #3</span>
</p>
</section>
</article>
</main>
我认为页面的更好类型是FAQPage
而不是WebPage
,但FAQPage
具有待定状态,并且未在Google结构化数据测试工具中验证。
您对此计划有何看法?这是对的吗?
答案 0 :(得分:3)
FAQPage
将是该页面的最佳类型。如果你不想在它发布之前使用它,WebPage
是最好的选择。您现在也可以考虑使用这两种类型,只要WebPage
是核心词汇表的一部分,就删除FAQPage
(如果它转到attic,则删除FAQPage
) :
<main itemscope itemtype="http://schema.org/WebPage http://schema.org/FAQPage">
我不会使用mainContentOfPage
属性。它期望WebPageElement
,这通常没用。
在您的情况下,Question
项目未连接到WebPage
项目。为此,您可以使用hasPart
property。
<main itemscope itemtype="http://schema.org/WebPage http://schema.org/FAQPage">
<section>
<h2 itemprop="name">Frequently Asked Questions</h2>
<article itemprop="hasPart" itemscope itemtype="http://schema.org/Question"></article>
<article itemprop="hasPart" itemscope itemtype="http://schema.org/Question"></article>
<article itemprop="hasPart" itemscope itemtype="http://schema.org/Question"></article>
</section>
</main>
(我切换了article
和section
元素,因为我认为从语义上来说这更有意义。)