如何在无序列表中强调单个项目的重要性

时间:2013-05-11 19:31:42

标签: html semantics schema.org microformats

我想使用语义标记来强调每个项目的重要性或优先级。

这是我的意思的一个例子。

<ul itemscope itemtype="http://schema.org/ItemList">
  <h2 itemprop="name">Wish List</h2><br>
  <li itemprop="itemListElement">Google glass</li>
  <li itemprop="itemListElement">Galaxy S4</li>
  <li itemprop="itemListElement">MacBook Pro</li>
</ul>

我正在考虑使用标题标签,但我不确定这是否正确使用。 e.g

<ul itemscope itemtype="http://schema.org/ItemList">
  <li itemprop="itemListElement"><h6>Least Important</h6></li>
  <li itemprop="itemListElement"><h1>Most Important</h1></li>
</ul>

我只是在寻找一个关于是否有正确的方法来做这个的建议?可能是微观数据,微格式还是RDFa?

2 个答案:

答案 0 :(得分:2)

你不应该这样使用标题。标题内容很重要,是的,但这并不意味着重要内容应该是标题。您的第一个示例无效(列表可能只包含li元素),您的第二个示例与文档大纲混淆。

strong element代表“对其内容非常重要”。您可以通过对同一内容使用多个strong元素来提高重要性:

  

一段内容的相对重要性由其祖先strong元素的数量给出;每个strong元素都会增加其内容的重要性。

HTML5规范也有一个这样的例子:

<p>
  <strong>Warning.</strong> This dungeon is dangerous.
  <strong>Avoid the ducks.</strong> Take any gold you find.
  <strong><strong>Do not take any of the diamonds</strong>,
  they are explosive and <strong>will destroy anything within
  ten meters.</strong></strong> You have been warned.
</p>

(请注意<strong>Do not take any of the diamonds</strong>嵌套在另一个strong元素中)

所以这是HTML5中的正确方法。

关于您的示例:如果您有一个从最少到最重要(或相反)排序的心愿单,您应该使用ol而不是ul,因为订单有意义且重要。所以你的愿望清单看起来像:

<ol reversed>
  <li><!-- least important item --></li> 
  <li><!-- another not-soo-very important one --></li>
  <li><strong><!-- important --></strong></li>
  <li><strong><!-- more important than the previous one, but not that much of a difference --></strong></li>
  <li><strong><strong><!-- most important item --></strong></strong></li> 
</ol>

(如果没有按照这种方式排序,请使用ul并相应地使用strong元素。)


现在,您可以使用RDFa或Microdata来增强此功能。因此,您需要一个合适的词汇表。我什么都不知道。也许你可以利用某种评级词汇?你可以给每个项目一个分数/等级,比如你想拥有它多少。

海龟的理论范例:

myWishlistItems:1 ex:hasImportance 0.9
myWishlistItems:2 ex:hasImportance 0.85
myWishlistItems:3 ex:hasImportance 0.7
myWishlistItems:4 ex:hasImportance 0.7
myWishlistItems:5 ex:hasImportance 0.7
myWishlistItems:6 ex:hasImportance 0.2

替代方案:说明内容中的语义,例如:将重要性分组。

您可以使用dl,例如:

<section>
  <h1>My wishlist</h1>

  <dl>
    <dt>MUST HAVE!</dt>
      <dd>…</dd>
      <dd>…</dd>
    <dt>Would be very cool</dt>
      <dd>…</dd>
      <dd>…</dd>
    <dt>I like that, sometimes</dt>
      <dd>…</dd>
      <dd>…</dd>
  </dl>

</section>

或带有ol元素的section,因此您可以使用分组标题,例如:

<section>
  <h1>My wishlist</h1>

  <ol>

    <li>
      <section>
        <h2>MUST HAVE!</h2>
        <ul>
          <li>…</li>
          <li>…</li>
        </ul>
      </section>
    </li>

    <li>
      <section>
        <h2>Would be very cool</h2>
        <ul>
          <li>…</li>
          <li>…</li>
        </ul>
      </section>
    </li>

    <li>
      <section>
        <h2>I like that, sometimes</h2>
        <ul>
          <li>…</li>
          <li>…</li>
        </ul>
      </section>
    </li>

  </ol>

</section>

答案 1 :(得分:1)

如果您想要一个具有多个优先级的比例,那么在html中无法做到这一点。使用标题会使outline混乱,其方式显然是“非语义”。它也许不值得尝试在RDF中表达。什么会消耗它?也许你有更多的细节,这将更多地阐明这一点......

由于无法在HTML元素或属性中表达,因此所有读者都无法访问这些数据。您知道如何使用一系列颜色设置项目样式,但屏幕阅读器不会大声读取这些颜色。

您可以将此简化为有序列表 - 按优先顺序排列的项目。或两个重要级别,其中使用<strong>突出显示一些关键项目。

(如果您使用HTML5规范字面,您可以多次嵌套<strong>以获得更高的优先级。但是您的用例不太可能支持。不在当前屏幕中-readers,而不是在浏览器默认样式表中。所以我不认为这是合法用途。)