时间轴应该使用什么类型的列表?

What type of list should be used for a timeline?

我正在做的一个在线练习给出了一个构建时间轴的解决方案,一个有序的列表。 我使用描述列表构建了时间轴,因为我认为在年份之前使用数字或字母看起来很奇怪。

我认为描述列表看起来更好,但我想知道 WAI-ARIA:将时间线构建为有序列表是否有意义,这样进度在语义上和外观上都是合乎逻辑的?

而且,如果是这样,是否可以隐藏 <ol> 的序号指示符(即字母、数字)?

正如您所建议的,一切都与语义有关。在不参考规范的情况下,使用 "suggest" 到 someone/something (developers/machines) 的 HTML 元素是有意义的直接阅读代码有进一步的意义,在这种情况下是数据遵循逻辑顺序。

其他示例是 HTML5 中引入的语义元素,例如 <header><article><section><aside><time> 或甚至像 <address> 这样的老元素。

比较你的两个选项:

  • 有序列表<ol>表示数据是有序的,适合时间轴中dates/events的列表。
  • 数据列表 <dl> 使用术语元素 <dt> 来保存 term/name 和描述元素 <dd> 来描述该术语。根据时间线的类型,可以说一年是术语,但您是将其描述为一个术语吗?它很可能没有被描述,而只是用作其他数据的时间点(思考:x-axis)。

此外,使用有序列表意味着:

  • 其他开发人员(即使在 CSS/JS 中)会知道尊重顺序,无论是在这些元素的生成中还是在样式中,并深入了解数据。
  • 如果您有使用 screen-reader 的残障最终用户,reader 可以遵守该命令(想想:烹饪说明)。

因此,有序列表可能是最合适的,但也不要因为您的选择而失眠,在这种情况下我们几乎要分道扬镳了。

如果您需要隐藏序号指示器,您可以使用 CSS:

轻松完成
ol { 
    list-style: none; // removes ordinal indicator 
    padding-left: 0; // removes the left-over space, if needed
}