必须用 strong 而不是 b 的核心判断标准是文字是否承载不可跳过的逻辑权重:表单错误提示、法律/安全关键信息、api 文档必填字段、金额及责任主体等需强调语义的场景;b 仅适用于纯视觉高亮且无语义需求的情形。

别用 b 做语义强调,该用 strong 的地方硬换 b 会破坏可访问性、削弱 SEO 权重,且违反 WCAG 合规要求。
什么时候必须用 strong 而不是 b
核心判断标准是:这段文字是否承载不可跳过的逻辑权重?
- 表单错误提示:
<strong>手机号格式错误</strong>→ 屏幕阅读器会加重+停顿,用户不会漏掉 - 法律/安全关键信息:
<strong>删除后不可恢复</strong>→ VoiceOver 提升音调,WCAG 检查通过 - API 文档必填字段:
<strong>user_id</strong>(字符串,必需)→ 搜索引擎识别为高价值关键词 - 金额、责任主体:
<strong>¥12,800.00</strong>或<strong>甲方</strong>→ 读屏器明确传达“此处需注意”
如果只是让某个产品名、品牌词在视觉上更醒目,但不改变信息层级,那就该用 CSS 类,而不是 b。
b 的合法使用场景极少,多数情况该删掉
b 在 HTML5 规范中被明确定义为「无语义的实用型加粗」,仅适用于纯功能性高亮,且不能替代语义表达:
- 文章摘要里的关键词(非全文重点,仅便于快速扫描)
- 评测文中的产品型号:
<b>iPhone 16 Pro</b> - 命令行界面模拟文本中的可执行词:
<b>npm install</b>
注意:b 不影响读屏行为,也不参与 SEO 加权。现代项目里它基本可以被 span + CSS 替代,尤其当设计稿要求加粗但语义上无需强调时。
CSS 覆盖默认样式时,strong 仍保有语义
你可以放心给 strong 写 strong { font-weight: 600; color: #d32f2f; },甚至改成斜体或下划线——它的语义不会丢失。
而 b { font-weight: normal; text-decoration: underline; } 只是把一个“无意义的粗体标签”强行改成了带下划线的普通文本,既没增强可访问性,也没提升语义表达力。
真正容易被忽略的是:搜索引擎和读屏器只认 HTML 标签本身,不解析你写的 CSS 是否改变了视觉表现。所以即使 strong 看起来没加粗,它依然在传递“重要”信号。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











