lang属性必须严格遵循bcp 47标准(如fr-fr),仅写在标签上,使用连字符而非下划线,大小写规范,地区码不可省略,否则浏览器、翻译、语音等核心功能失效。

必须用 BCP 47 标准写对语言-地区码,比如 fr-FR、pt-BR、bn-BD,写成 fr、French 或 fr_fr 都会失效。
lang 属性只能写在 标签上
浏览器和屏幕阅读器只在解析 HTML 最初阶段读取 ,之后任何位置补写都无效。常见错误包括:
-
:仅影响该元素内:lang()CSS 匹配和局部断词,不触发法语语音库或翻译入口 -
<meta http-equiv="Content-Language" content="fr-FR">:HTML5 已废弃,现代浏览器完全忽略 -
document.documentElement.lang = "fr-FR"(JS 设置):首屏已加载完毕,辅助技术不会重新加载语音模型
小语种 lang 值怎么选才不被当成错误
大小写、连字符、顺序全有语义,非法值会被静默忽略,等同于没写。关键规则:
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
- 必须用连字符
-,不能用下划线_:fr-FR✅,fr_FR❌ - 地区码大小写敏感:
pt-BR✅(巴西葡语),PT-br❌ - 避免模糊语言码:
zh、fr、es不推荐;应明确为zh-CN、fr-FR、es-ES - 小语种注意实际支持度:如孟加拉语用
bn-BD(孟加拉国),不是bn-IN(印度),因字体渲染、数字习惯不同
多语言混合内容中如何安全嵌入小语种文本
主语言由 决定,局部小语种靠子元素 lang 覆盖,无需 JS:
- 引文或术语:
<p>中文段落中出现<span lang="ja">日本語</span></p> - 双向文本(如阿拉伯语)必须同时加
dir:<p lang="ar" dir="rtl">مرحبا</p> -
<title></title>无法拆分语言,若含双语标题(如"Hello | 你好"),整条按处理,无完美解法 - SSR/静态站点务必在服务端注入真实值——客户端渲染(React/Vue CSR)无法补救首屏
lang错误
最容易被忽略的是:很多小语种页面用 lang="fr" 看似能过 W3C 验证,但 Safari 的 VoiceOver 会 fallback 到英文 TTS,把法语重音符号读成乱码;Chrome 翻译按钮也不出现——它信了你写的“未指定地区”,就默认不触发本地化逻辑。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










