<kbd> 专用于用户输入动作(如命令、快捷键),<var> 仅表示纯数学变量名;二者语义分离、不可嵌套或替代,复杂公式须用 KaTeX 或 MathML。

在算法推导类文档中,<kbd> 和 <var> 标签不能混用或替代彼此,它们语义不同、用途分离——表示用户输入动作,表示数学变量名。强行结合不仅破坏语义准确性,还可能干扰可访问性与样式一致性。
明确各自角色:什么该用 ,什么该用
仅用于模拟键盘操作场景,比如命令行输入、快捷键、交互式参数输入:
- ✅
<p>运行时输入 <kbd>--learning-rate 0.01</kbd></p> - ✅
<p>按 <kbd>Ctrl+C</kbd> 中断训练</p> - ❌ 不用于公式中的符号:
<kbd>x</kbd> + <kbd>y</kbd>是错误用法
只包裹单个、无修饰的变量标识符,且必须是纯符号名(不含运算符、数字、单位):
- ✅
<p>损失函数为 <var>L</var> = <var>ℓ</var>(<var>y</var>, <var>ŷ</var>)</p> - ✅
<p>其中 <var>α</var> 为学习率,<var>t</var> 表示迭代步数</p> - ❌ 不包裹表达式:
<var>w^T x + b</var>或<var>x_i</var>均无效
推导过程中如何自然共存
二者可在同一段落中并存,但需严格按语义分工,不嵌套、不交叉:
- 公式部分用 标注变量:
<var>θ</var> ← <var>θ</var> − <var>η</var>∇<sub><var>θ</var></sub><var>J</var>(<var>θ</var>) - 配套说明中用 描述执行动作:
<p>调用优化器时传入 <kbd>lr=0.001</kbd> 和 <kbd>betas=(0.9, 0.999)</kbd></p> - 禁止嵌套:
<var><kbd>x</kbd></var>或<kbd><var>lr</var></kbd>都违反 HTML 规范,浏览器不会报错但语义丢失
样式与可访问性注意事项
默认情况下, 渲染为等宽字体, 渲染为斜体;若 CSS 重置了这些样式,需显式恢复:
kbd { font-family: ui-monospace, monospace; }var { font-style: italic; }
屏幕阅读器对二者处理方式不同:通常读作“key board”,则仅读字符本身(如“x”),不附加“variable”提示。真正提升数学可访问性,应依赖 MathML 或 KaTeX 的完整语义输出,而非依赖 标签。
替代建议:复杂推导请绕过纯 HTML 标签
当涉及上下标、分式、求和、矩阵等结构时, 和 都无法胜任:
- ❌ 错误示范:
<var>x</var><sup>2</sup> + <var>y</var><sub>i</sub>—— 上下标与变量无数学关联 - ✅ 推荐路径:用 KaTeX 写
$$x^2 + y_i$$,或 MathML 的<msup><mi>x</mi><mn>2</mn></msup> - 代码块中参数名可用 ,但整个表达式应交由
或 MathML 处理


















