HTML的ruby标签仅呈现人工标注的拼音,不自动处理儿化音、多音字、轻声或变调;儿化音须按《审音表》手写标准形式(如huār),多音字须依语境选唯一读音,轻声变调须按实际口语标写,自动工具需人工校验。

HTML 本身不识别“儿化音”或“多音字”的语义,必须人工判断并手动写对拼音;ruby 标签只负责结构呈现,不会自动变调、儿化或选读音。
儿化音的拼音必须手写成标准儿化形式,不能拆开或加空格
浏览器和屏幕阅读器不会把“花ér”自动合成“huār”,也不会把“小ér孩ér”读成“xiǎoháir”。你得自己按《普通话异读词审音表》和实际口语发音,把儿化结果完整写进 rt 里:
- 正确:
<ruby>花儿<rt>huār</rt></ruby>(一个词、一个rt) - 错误:
<ruby>花<rt>huā</rt>儿<rt>ér</rt></ruby>(这是两个音节,不是儿化韵) - 错误:
<ruby>花儿<rt>huā ér</rt></ruby>(带空格或分写,语音引擎会读成两音节)
儿化后是否丢韵尾(如“小孩儿”读 xiaoháir 而非 xiaoháir),也得由你根据语音规则决定后直接写出——ruby 不做任何音变推导。
多音字必须结合上下文选唯一读音,不能堆砌多个拼音
比如“长”在“长度”中读 cháng,在“长大”中读 zhǎng。HTML 没有上下文感知能力,ruby 也不支持条件渲染:
立即学习“前端免费学习笔记(深入)”;
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 正确:
<ruby>长大<rt>zhǎng dà</rt></ruby>(明确语境,一对一) - 错误:
<ruby>长大<rt>cháng/zhǎng dà</rt></ruby>(斜杠分隔会被朗读为“cháng slash zhǎng”) - 错误:
<ruby>长大<rt>zhǎng</rt><rt>dà</rt></ruby>(两个rt对应一个词,结构错位,可访问性失效)
若同一页面需展示多音对比(如教学场景),应分开用多个 ruby 块,并辅以文字说明,而不是塞进一个标签里。
轻声和变调要按实际口语发音标,不是按原调
“妈妈”第二个“妈”读轻声,就得写 mā ma(不带声调);“一”在“一个”中变调为 yí,就不能标 yī:
-
<ruby>妈妈<rt>mā ma</rt></ruby>(第二音节无调号) -
<ruby>一个<rt>yí gè</rt></ruby>(不是yī gè) -
<ruby>不<rt>bù</rt>去<rt>qù</rt></ruby>(“不”在去声前变调为bú,应标bú qù)
这些规则来自语音事实,不是拼写习惯。ruby 的作用是忠实地把你说出来的音记下来,不是还原字典原调。
动态生成时最容易漏掉的三件事
用 pinyin-pro 或类似库批量加注,常因默认行为踩坑:
- 库默认输出“字级”拼音,但儿化词必须按“词级”处理——得先分词再调用,否则“花儿”会被拆成“花+儿”分别注音
- 多数库不内置儿化规则,
pinyin-pro的.convert('花儿', { pattern: 'pinyin' })默认返回huā ér,需手动替换或加后处理逻辑转成huār - 轻声判断依赖词性或位置(如“子、头、们”作后缀常轻声),但纯拼音库无此语义层,得靠额外规则补全
最稳妥的做法:高频儿化词、多音词建白名单,人工校对后固化为模板,而非完全依赖自动标注。


















