b标签唯一合法用途是纯视觉加粗且无语义重要性;仅当同时满足“仅视觉引导、内容不比周围更重要、无更语义化标签可用”三条件时方可使用,否则应优先用strong。

b 标签唯一合法用途是:纯视觉加粗,且内容本身不携带任何语义重要性。 它不是“加粗快捷键”,也不是的简化写法,用错地方会直接破坏可访问性和 SEO 信号。
什么时候必须用 b 而不是 strong
只有满足全部三个条件时,b 才是合理选择:
- 加粗仅用于视觉引导,比如产品型号首次出现(
<b>iPhone 16 Pro</b>)、技术缩写(<b>JSON</b>)、字典词条中的词头 - 这段文字在逻辑上不比周围内容更重要——屏幕阅读器不该加重读、搜索引擎不该加权、用户不靠它判断操作风险
- 没有更语义化的标签可用(比如不用
mark做高亮、不用em表语气、不用dfn标术语定义)
b 标签被滥用的典型错误现象
这些场景看似“只是加粗”,实则需要语义表达,b 会掩盖真实意图:
- 表单提示中包裹字段名:
<p>请填写 <b>用户名</b></p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill8272" title="anything-to-html"><img src="https://img.php.cn/upload/skill/000/000/081/179195588450431.jpg" alt="anything-to-html" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill8272" title="anything-to-html" class="overflowclass">anything-to-html</a> <p class="overflowclass">将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。</p> </div> <a rel="nofollow" href="/xiazai/skill8272" title="anything-to-html" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>→ 应该用<strong>用户名</strong>,因为它是校验失败的关键锚点 - 错误消息整句包在
b里:<p><b>邮箱格式不正确</b></p>→b不触发读屏器停顿或重音,用户可能错过关键信息 - CMS 富文本编辑器默认输出
b,但内容实际是法律条款中的责任限定词(如“<b>不承担间接损失</b>”)→ 这类必须用strong,否则等于放弃法律文本的语义可解析性
b 和 strong 在 CSS 与 JS 中的行为差异
它们渲染效果一致,但底层逻辑完全不同:
- 给
b设置font-weight: normal是自相矛盾的操作;而给strong设为 normal 是合理的——语义仍在,只是隐藏了视觉表现 - 用 JavaScript 查找重点内容:
document.querySelectorAll('strong')能定位真正重要的文本;document.querySelectorAll('b')只能抓到一堆样式残留 - CSS 重置时(如全局
* { font-weight: 400 !important; }),两者都会变细,但strong的语义权重仍在 DOM 结构中,b则彻底归零
最容易被忽略的是:很多团队沿用 b 仅仅因为历史代码惯性或富文本编辑器默认行为。一旦项目进入无障碍合规审计或 SEO 深度优化阶段,这类标签会集中暴露——它不报错,但也不传递任何有效信息。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










