cms输出必须使用语义化标签:单篇文章用包裹正文及元信息,内用和组织作者、时间等,评论区独立为,高亮用标签。

CMS 输出内容时,语义化标签不是“锦上添花”,而是结构正确性的底线。模板设计必须让每一段 HTML 都承载明确含义,否则前端再好的样式、后端再强的逻辑,也会在 SEO、无障碍访问和内容分发环节失效。
article 是文章容器的唯一合法选择
CMS 渲染单篇博文、新闻稿或产品详情页时,必须用 包裹全部正文及相关元信息。它告诉搜索引擎“这段内容可独立存在、可被 RSS 订阅、可单独打印”。
常见错误是 CMS 默认用 <div class="post"> 或 <code><section></section> 替代——前者无语义,后者仅表示“有主题的分组”,不满足自包含要求。
- 每篇文章一个
<article></article>,不可嵌套多个 article 在 main 下而不加外层 section - 若 CMS 模板引擎限制(如帝国CMS 的 loop 标签输出多条),外层需补
<section><h2>最新文章</h2>...</section> - 避免给
<article></article>加冗余 class(如class="clearfix"),语义已足够,样式交由 CSS 处理
header 和 time 必须协同表达元信息
作者、发布时间、分类这些非正文但强关联的信息,应统一放在 <article></article> 内部的 <time datetime="2026-06-22">6月22日</time> ——仅写“6月22日”对机器不可读,datetime 属性缺失会导致结构化数据提取失败。
- 用
<dl> <dt>作者</dt> <dd>李四</dd> <dt>发布时间</dt> <dd><time datetime="2026-06-22">6月22日</time></dd> </dl>组织字段,比并列<p></p>更健壮 - 分类与标签建议用
<ul class="categories"><li><a href="/cat/web">前端</a></li></ul>,保持语义+可点击+可爬取 - 不要把发布时间塞进
<h1></h1>或用<span></span>堆砌,破坏标题层级与语义分离原则
评论区坚决不放进 article
用户评论是 UGC(用户生成内容),与原始文章不属于同一语义单元。CMS 模板若将评论循环渲染在 <article></article> 内部,会污染内容边界:RSS 解析器可能误抓评论、SEO 工具可能降权主文、屏幕阅读器无法区分主次。
- 评论区应独立为
<section aria-labelledby="comments-hd"><h2 id="comments-hd">评论(8)</h2>...</section> - 确保 CMS 模板中评论模块与文章主体模板物理分离(不同 include 文件或区块),避免耦合
- 若 CMS 不支持原生
<section></section>输出,至少用<div role="region" aria-labelledby="comments-hd"> 降级兜底 <h3>mark 标签实现无代码重点标注</h3> <p>CMS 后台富文本编辑器(如 CKEditor、TinyMCE)只要开放 <code><mark></mark>标签白名单,运营人员就能直接选中文本点击“高亮”按钮完成标注——无需写 JS、不依赖 class、浏览器默认样式可用。- 禁止用
<span style="background:#ff0"></span>替代,内联样式易被编辑器过滤,且无语义 - 在模板中保留
<mark></mark>原生渲染,必要时用 CSS 覆盖默认黄色背景(如适配深色模式) - 注意下游兼容:部分老旧邮件客户端或 PDF 导出工具可能忽略
<mark></mark>,需测试关键场景
- 禁止用











