我知道有一个大型论坛,每个主题都包含 n 条消息。第一条消息用于获取主题的主要内容,但有时一些消息也非常有用。一个常见的情况是,当第一条消息是一个问题,然后你就会得到答案。
主题应该是article
元素吗?消息article
元素是否继承自主题文章?在这种情况下,第一条消息是否应出现在每个消息的页面中作为参考?然后,如何处理重复的内容?
一个例子:
<article itemscope itemtype="http://schema.org/Article">
<header>
<h1 itemprop="name">My topic title</h1>
</header>
<article itemscope itemtype="http://schema.org/Article">
<div class="author" itemprop="author">Message author's name</div>
<div class="message-body" itemprop="articleBody">
message text bla bla
</div>
<p class="post-date" itemprop="dateModified" content="date">date</p>
</article>
<article itemscope itemtype="http://schema.org/Article">
<div class="author" itemprop="author">Message 2 author's name</div>
<div class="message-body" itemprop="articleBody">
message 2 text bla bla
</div>
<p class="post-date" itemprop="dateModified" content="date">date</p>
</article>
... more messages ...
</article>
这是语义,可访问性和SEO的好习惯吗?我能做更好的选择吗?
答案 0 :(得分:0)
每个帖子都应该是article
。其他任何东西都不应该是article
。所以线程的标题应该是第一篇文章的一部分,而不是容器的一部分。
您可以将回复嵌套在第一篇文章中,也可以将所有帖子放在同一级别上。 HTML 5.2 about article
:
当
article
元素嵌套时,内部article
元素表示原则上与外部文章内容相关的文章。
对于作者窗格,您可以使用footer
元素。
您可能希望使用更具体的DiscussionForumPosting
类型(继承自Article
),而不是使用Schema.org的Article
类型。
<article>
<h2>My topic title</h2>
<footer>…</footer>
<div>…</div>
<article>
<h3>Reply: My topic title</h3>
<footer>…</footer>
<div>…</div>
</article>
<article>
<h3>Reply: My topic title</h3>
<footer>…</footer>
<div>…</div>
</article>
</article>
<article>
<h2>My topic title</h2>
<footer>…</footer>
<div>…</div>
</article>
<article>
<h2>Reply: My topic title</h2>
<footer>…</footer>
<div>…</div>
</article>
<article>
<h2>Reply: My topic title</h2>
<footer>…</footer>
<div>…</div>
</article>