
HTML 的 lang 属性必须遵循 BCP 47 标准(如 es-ES),使用短横线而非下划线;通用语言可仅用主标签(如 es),无需地区子标签。
html 的 `lang` 属性必须遵循 bcp 47 标准(如 `es-es`),使用短横线而非下划线;通用语言可仅用主标签(如 `es`),无需地区子标签。
在构建符合无障碍标准(a11y)和 SEO 最佳实践的网页时,<html> 标签中的 lang 属性绝非可有可无的装饰——它是屏幕阅读器解析语音语调、浏览器选择字体渲染、搜索引擎识别内容语言的关键信号。然而,一个常见却极易被忽视的错误是:误用下划线(_)代替短横线(-)分隔语言与地区代码。
例如,以下写法是 错误且无效 的:
<html lang="es_ES"> <!-- ❌ 下划线不符合 BCP 47 --> <html lang="es_es"> <!-- ❌ 同样无效,大小写不规范 -->
正确写法应严格遵循 BCP 47 规范:
- 语言子标签(primary language subtag)必须小写(如 es, en, fr, zh);
- 地区子标签(region subtag)推荐大写(如 ES, US, FR, CN);
- 语言与地区之间必须用 ASCII 短横线 - 连接(非 Unicode 连字符、破折号或下划线)。
✅ 正确示例:
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
立即学习“前端免费学习笔记(深入)”;
<html lang="es-ES"> <!-- 西班牙本土西班牙语(推荐格式) --> <html lang="es-es"> <!-- 技术上有效(全小写),但非惯用写法 --> <html lang="en-US"> <!-- 美式英语 --> <html lang="zh-CN"> <!-- 简体中文(中国大陆) --> <html lang="zh-TW"> <!-- 繁体中文(中国台湾) -->
⚠️ 特别注意:
- Pagespeed、axe、Lighthouse 等工具校验的是 标准化的 BCP 47 值,es_ES 会被直接判定为无效,导致“element does not have a valid value for its [lang] attribute”警告;
- 大小写虽不区分语法有效性(es-es 和 es-ES 均被接受),但 es-ES 是 IETF 和 W3C 推荐的可读性与一致性写法;
- 若网站面向全体西班牙语使用者(含拉丁美洲多国),优先使用 lang="es" —— 简洁、通用、无障碍兼容性更优,且避免因地域细分引发的本地化维护负担。
? 总结建议:
- ✅ 默认首选:<html lang="es">(通用西班牙语)
- ✅ 精准定位西班牙本土用户:<html lang="es-ES">
- ❌ 绝对避免:es_ES、es_es、ES-es、es/ES 等非标准形式
- ? 验证方式:使用 W3C Markup Validation Service 或 Lighthouse 的「Accessibility」审计,确认 lang 属性通过校验。
正确的 lang 值不仅关乎合规,更是尊重多元用户、提升可访问性与国际化体验的第一步。


















