标签语义基础是表达不可调换的执行顺序,如“先备份再删除”,浏览器、屏幕阅读器和seo均识别其为有依赖关系的序列;start和type属性原生支持编号起始与格式,嵌套不超过两层以保障可访问性,动态重排须同步更新dom顺序而非仅用css order。

用 <ol></ol> 标签定义优先级任务表的语义基础
优先级任务表本质是「顺序不可调换」的内容,比如“先备份再删除”“高优 Bug 修复必须在发版前完成”,这正符合 <ol></ol> 的语义:浏览器、屏幕阅读器、SEO 抓取都默认将其识别为有依赖关系的序列。别用 <ul></ul> 加 CSS 改成数字——那只是视觉模拟,语义上仍是并列项,辅助技术会读作“项目一、项目二”,而非“第一步、第二步”。
start 和 type 属性控制编号起始与格式
实际任务管理中,编号常不从 1 开始(如“第 5 项紧急修复”),或需用字母/罗马数字区分层级(如“B. 部署验证”)。这时直接用原生属性,不靠 JS 或 CSS 模拟:
-
start="5":让列表从 5 开始计数,<ol start="5"><li>重启服务</li></ol>渲染为 “5. 重启服务” -
type="A"或type="i":适用于子任务分组,<ol type="A"><li>灰度发布</li></ol>显示为 “A. 灰度发布” - 慎用
reversed:仅当真实业务逻辑是倒序执行(如“倒计时关停旧系统”),否则易造成理解混乱
嵌套 <ol></ol> 表达多级优先级,但别超两层
任务常有主次之分,比如“1. 发布准备 → 1.1 环境检查 → 1.1.1 数据库连通性”。HTML 允许 <ol></ol> 嵌套,但超过两层会削弱可访问性:
- 第一层
<ol></ol>表示主任务流(如发布阶段) - 第二层
<ol></ol>表示该阶段内不可跳过的子步骤(如环境检查项) - 第三层开始,屏幕阅读器可能无法准确传达层级关系;建议改用
<dl></dl>描述依赖条件,或拆分为独立区块 - 必须用 CSS 显式区分缩进和符号,例如第二层用
type="a",否则纯靠默认 margin 很难看出嵌套结构
动态重排任务时,别只操作 CSS order
如果任务优先级会随状态变化(如某 Bug 被标记为 P0 后需插到最前),仅用 CSS order 属性调整视觉顺序是危险的:
-
order只改变渲染位置,DOM 顺序不变 → 屏幕阅读器仍按原始 HTML 顺序朗读 - 键盘 Tab 流仍遵循 DOM 顺序,用户可能跳过被视觉前置的任务项
- 正确做法:用 JavaScript 重新插入
<li>节点,确保 DOM 顺序与业务优先级一致,再辅以 CSS 视觉强化 - 若任务量大(如 >50 条),DOM 重排性能敏感,应考虑后端返回已排序数据,前端只做渲染
优先级不是数字游戏,而是执行依赖链。写 <ol></ol> 时多想一秒“调换这两项顺序是否影响结果”,答案是“否”,就该换用 <ul></ul> 或 <dl></dl> —— 语义错位比样式丑更难修复。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











