结论:优先用zh-tw,明确针对台湾用户;无地域倾向时用zh-hant更稳妥。两者均合法,但用途不同:zh-tw含地域习惯,zh-hant仅表繁体字形。

lang属性该填zh-TW还是zh-Hant
直接说结论:zh-TW是合法且推荐的写法,但zh-Hant在语义上更准确、兼容性也足够好。两者都符合BCP 47标准,浏览器和屏幕阅读器都能识别,但用途略有不同。zh-TW表示“台湾地区使用的中文”,隐含了地域习惯(如用词、标点、字体偏好);zh-Hant仅表示“繁体中文”,不绑定具体地区,更适合多繁体区共用的场景(比如同时面向台湾、香港、澳门的内容)。实际项目中,如果内容明确针对台湾用户,优先用zh-TW;如果只是统一用繁体字、无地域倾向,zh-Hant更稳妥。
HTML根元素写法与常见错误
必须写在标签上,且建议只设一次,避免嵌套覆盖。错误写法包括:漏掉lang、写成language、放在里、或用错大小写(如ZH-TW)。正确写法是:
注意:lang值区分大小写,但规范允许大写区域码(TW),实际解析时大小写不敏感;不过统一小写更安全,也符合多数构建工具(如eslint-plugin-jsx-a11y)的校验习惯。
SEO与辅助技术对zh-TW的实际响应
Google会用lang属性辅助判断页面目标语言和地区,但不会单靠它决定排名——hreflang标签和服务器地理位置信号更重要。对屏幕阅读器而言,zh-TW能触发对应语音引擎(如Windows NVDA搭配Microsoft TTS的「中文(台湾)」发音),但前提是系统已安装对应语音包。容易被忽略的点:
- 若页面混用简体字(如从大陆API拉取数据),
lang="zh-TW"可能让读屏软件误判发音规则 - 某些旧版JAWS版本对
zh-TW支持不稳定,zh-Hant回退兼容性略好 - 搜索引擎不会因
lang值错误而惩罚页面,但可能降低多语言站点的hreflang匹配精度
动态站点或i18n框架里的注意事项
用React/Vue等框架时,别在JSX/模板里硬编码lang="zh-TW",应随用户语言偏好动态注入。常见坑:
- Next.js的
next/head中多次渲染会出错,必须用document.documentElement.lang = 'zh-TW'手动设置 - i18n库(如i18next)默认不处理
lang属性,需在初始化后显式更新document.documentElement.lang - 服务端渲染(SSR)时,若
lang值依赖客户端cookie或localStorage,首次HTML吐出可能为lang="en",造成FOUC或读屏延迟
最简健壮做法:服务端根据Accept-Language或用户配置生成初始lang,前端再监听语言切换事件同步更新document.documentElement.lang。别指望框架自动帮你管根节点语言。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











