最适合此业务声明的 HTML5 元素

Most suitable HTML5 element for this business statement

一个奇怪的问题,但我正在为语义、可访问性和外观而苦苦挣扎。请注意,此问题与 CSS 无关,但与底层 HTML5 代码相关。通常我不会post这种类型的问题,但这确实引发了一场争论。

我在一个网站上有一份商业声明,它定义了为什么我的组织是最好的(实际上是一个样本声明...):

TL;DR 从 semantics/accessibility 的角度来看,用于显示此内容的最佳 HTML5 元素是什么?

我们最初的猜测是一个简单的列表就足够了:

<ul>
    <li>Footballs:</li>
    <li>Rounder</li>
    <li>Better</li>
    <li>Stronger</li>
</ul>

但后来的论点是句子结构更重要,所以也许:

<div>
    <span>Footballs:</span>
    <span>Rounder,</span>
    <span>Better,</span>
    <span>Stronger</span>
</div>

但是,这种方法随后会以逗号呈现,这很不雅观。然而,我认为逗号 应该 存在于屏幕阅读器中...

我们甚至考虑过DataList,但感觉不太对...

<dl>
    <dt>Footballs:</dt>
    <dd>
        <span>Rounder</span>
        <span>Better</span>
        <span>Stronger</span>
    </dd>
</dl>

是否有涵盖此类声明的特定 HTML5 元素?

如果您想使用列表,请写:

Footballs:
<ul>
  <li>Rounder</li>
  <li>Better</li>
  <li>Stronger</li>
</ul>

因为 Footballs 不在列表中。你我想将 Footballs 添加到一些 h 标签中。

第二个的元素没有语义意义,就好像你会写:

Footballs: Rounder, Better, Stronger

所以这是正确的,如果你认为逗号是必需的。

第三个就像你这样写:

Footballs: Rounder Better Stronger

因此,如果您认为这种方式难以理解并且需要逗号,那么您就不能采用这种方式。

我会选择 ul li 版本,用于业务声明,因为我在类似上下文的字典中看到更多 dl

您有一份清单(在本例中为好处),HTML 提供了四种表达方式。你覆盖了三种方式,第四种是使用ol,但只有在顺序相关的情况下才合适,这里似乎不是这样,所以我们可以忽略它。

自然语言

就一句话带标点:

<p>Footballs: rounder, better, stronger.</p>

您可以添加 span 元素用于样式设置。您甚至可以在视觉上隐藏逗号,但没有必要这样做,只需使用其中一种标记替代方法即可。

标记:ul

将 "Footballs" 作为列表的一部分没有意义。这个 "label" 应该在列表之外。

<p>Footballs:</p>
<ul>
  <li>Rounder</li>
  <li>Better</li>
  <li>Stronger</li>
</ul>

标记:dl

这三个好处要么是 ul 合一 dd,要么每个都应该是自己的 ddThere is a semantic difference,但在这个例子中并不是一个明确的决定。

<dl>
  <dt>Footballs</dt>
  <dd>
    <ul>
      <li>Rounder</li>
      <li>Better</li>
      <li>Stronger</li>
    </ul>
  </dd>
</dl>
<dl>
  <dt>Footballs</dt>
  <dd>Rounder</dd>
  <dd>Better</dd>
  <dd>Stronger</dd>
</dl>

选择哪一个?

如果您不介意使用和显示标点符号,请使用自然语言解决方案。

如果不应该有标点符号,请使用 ul。它没有 dl 复杂,并且因为您没有额外的名称-值组,所以 dl 并不是真正的 "worth"。