必须用而非:当文本具逻辑重要性(如必填提示、警告、关键参数),需支持可访问性、SEO及自动化工具识别;仅限纯视觉加粗且无语义意图的窄场景。

该用 <strong>,而不是 <b> —— 除非你明确只需要视觉加粗,且不关心语义、可访问性或 SEO。
什么时候必须用 <strong> 而不是 <b>
当你想表达「这段文字在内容逻辑上很重要」时,<strong> 是唯一合规选择。比如表单里的必填提示、支付金额、风险操作警告(如“删除后不可恢复”),这些不是装饰,而是用户需要立刻识别的关键信息。
常见错误现象:
- 用
<b>包裹“密码不能为空”,屏幕阅读器读出来和普通文本一样,毫无停顿或重音 - API 文档里用
<b>标记required参数,导致自动化测试工具无法识别语义权重 - 后台系统弹窗中“确认删除?”里的“删除”二字用
<b>,结果无障碍审核不通过
<b> 真的完全不能用吗?什么场景下它合法
可以,但条件很窄:纯视觉突出,且无任何语义意图。HTML5 规范明确定义了 <b> 的适用边界。
立即学习“前端免费学习笔记(深入)”;
典型合法用法包括:
- 文章摘要里的关键词(如“本文讨论
<b>React.memo</b>的边界条件”) - 产品评测中多次出现的品牌名(如“
<b>iPhone 16</b>搭载 A18 芯片”) - 命令行示例中的可执行命令(如“运行
<b>npm install</b>安装依赖”)
注意:<b> 不等于“随便用的加粗”,它仍需承担明确的“实用型突出”角色,不是样式补丁。
为什么 CSS 的 font-weight: bold 不能替代两者
因为 CSS 只控制外观,不传递语义。搜索引擎、读屏软件、爬虫、自动化测试工具都只看 HTML 标签结构,不解析 CSS。
关键影响点:
- 读屏软件(NVDA / VoiceOver)对
<strong>默认提升音调并短暂停顿;对<b>和font-weight: bold完全无视 - Google 的 Lighthouse 可访问性审计会直接标记未用
<strong>处理关键提示的节点 - 某些政企项目合规要求(如 WCAG 2.1)强制规定重要操作文本必须使用语义化强调标签
代码块里该用 <strong> 还是 <b>
用 <strong>。即使在 <pre><code> 块里,强调某个变量、函数或关键字(如 const <strong>user</strong> = {})仍是语义行为——它表示这个标识符在当前上下文中具有关键角色,不是单纯为了好看。
容易踩的坑:
- 以为代码块里“反正没人读”,就用
<b>或内联style="font-weight:bold",结果文档生成工具(如 TypeDoc、JSDoc)无法提取语义权重 - 在 Markdown 渲染输出中硬编码
<b>,导致转换为 PDF 或语音朗读时丢失强调意图
真正难的是判断「这里到底算不算重要」——不是看它是否显眼,而是看用户跳过它会不会误解操作后果或数据含义。



















