lang属性必须写在标签上才生效,浏览器和屏幕阅读器仅在初始解析时读取该值;写在或用js修改均无效,且法语须用fr-fr等符合bcp 47规范的值。

lang属性必须写在html>标签上才能生效
浏览器和屏幕阅读器(如 NVDA、VoiceOver)只在解析 HTML 字符串最初几毫秒内读取 ,之后任何修改都无效。写在 或用 JS 执行 document.documentElement.lang = "fr" 都不会被识别为页面语言——翻译按钮不出现、TTS 语音库不加载、搜索引擎可能降权。
法语语言代码必须用 fr-FR,不能用 fr、french、FR-fr
BCP 47 规范要求大小写与连字符严格匹配:fr-FR 合法,fr 粒度太粗(未指定地域,部分旧读屏 fallback 到英文发音),french 和 FR_fr 是非法值,会被静默忽略或识别为“未知语言”。其他法语区变体按需选用:
-
fr-BE:比利时法语(拼写、标点、数字格式有差异) -
fr-CA:加拿大法语(动词变位、词汇、日期格式不同) -
fr-CH:瑞士法语(无“septante”“nonante”,用“soixante-dix”“quatre-vingt-dix”)
若不确定具体区域,优先选 fr-FR——兼容性最稳,所有主流辅助技术、Chrome 翻译、Google SEO 均明确支持。
含英语引文的法语页面要局部覆盖 lang
纯 只能声明主语言。当页面中嵌入英文段落、引用、术语(如 “API”, “JavaScript”)时,必须显式标注:
<p>La fonction <code>fetch()</code> est un standard web. <span lang="en">It returns a Promise.</span></p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill5806" title="html-deploy"><img src="https://img.php.cn/upload/skill/000/000/081/179066538882434.jpg" alt="html-deploy" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill5806" title="html-deploy" class="overflowclass">html-deploy</a> <p class="overflowclass">使用 htmlcode.fun 将 HTML 内容或文件部署到网页,适用于用户要求“部署到网页”“托管此 HTML”“生成此前端...的实时链接”等场景。</p> </div> <a rel="nofollow" href="/xiazai/skill5806" title="html-deploy" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>
否则屏幕阅读器会用法语语音引擎强行朗读英文单词,造成音节错乱(如把 “Promise” 读成 /prɔ.mis/ 而非 /ˈprɒm.ɪs/)。CSS 的 ::lang(en) 伪类也可配合使用,比如给英文术语加斜体或不同字体。
动态页面(React/Vue/SSR)必须在 HTML 源头注入
客户端渲染(CSR)无法靠 JS 修改 来修复语言声明——DOM 解析完成时,辅助技术早已初始化完毕。正确做法是:
- Next.js:在
app/layout.tsx中用,locale来自路由参数或 i18n 配置 - Nuxt:调用
useLocaleHead({ lang: 'fr-FR' }),确保首屏 HTML 包含真实值 - 纯前端 SPA:若支持多语言切换,必须生成多个静态 HTML 入口(如
index-fr.html),不能只靠 JS patch
漏掉这步,用户切到法语后看到的仍是中文或英文 TTS,甚至 Chrome 翻译按钮会把法语页误判为其他语言并错误弹窗。
最容易被忽略的是:语言变更时,lang 必须和文案、hreflang、字体 fallback 规则同步更新——它不是装饰属性,而是浏览器可访问性管线的启动开关。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










