lang="ko"是合法韩语标签,但ko-KR更推荐;必须逐单元格声明,禁用下划线或大写;:lang(ko)生效需根标签合法且子元素显式标注。

lang="ko" 是唯一合法的韩语语言标签
HTML 中标记韩语内容,必须用 ko(ISO 639-1 语言码),不能写 ko-KR、kor、Korean 或 ko_kr。BCP 47 规范要求:语言子标签小写,地区子标签可选但推荐带上,且必须用短横线连接。实际兼容性测试表明:ko 被所有主流屏幕阅读器(NVDA、VoiceOver、JAWS)、Chrome 翻译按钮、Google Search Console 全链路识别;ko-KR 虽合法,但部分旧版 iOS VoiceOver 对地区子标签解析不稳定,可能 fallback 到英文 TTS;ko_kr(下划线)和 Korean(非标准名)会被浏览器静默忽略为 und(未知语言)。
表格里每个 <td> 都得单独加 lang="ko"
给 <table> 或 <tr> 加 lang 属性完全无效——读屏软件只检查每个单元格是否显式声明了语言。常见错误是整张表用 <table lang="ko"> 包裹,结果韩文词仍被中文引擎硬读成“사용자 → 撒勇炸”。
-
<th lang="ko">사용자 관리</th>✅ 显式标注表头 -
<td lang="ko">로그인 실패</td>✅ 单元格级控制发音 -
<td>로그인 실패</td>❌ 无 lang,继承<html lang="zh-CN">,语音错乱 -
<td lang="en">로그인 실패</td>❌ 语言与文本不匹配,TTS 引擎降级或跳过
中韩混排时别整个 <td> 统一设 lang
一个单元格里既有中文说明又有韩文术语(如“点击 로그인 按钮”),不能简单给 <td lang="zh-CN"> 或 <td lang="ko">——这会让其中一种语言被错误引擎切音节。正确做法是分层标注:
- 外层
<td lang="zh-CN">定义主语言 - 韩文术语用语义化元素包裹并显式声明:
<code lang="ko">로그인</code>或<span lang="ko">로그인</span> - 避免用
<div lang="ko">这类无语义容器,它干扰:lang()CSS 匹配且增加可访问性树负担
:lang(ko) 样式生效的前提是根标签合法
CSS 中写 :lang(ko) { font-family: "Malgun Gothic", sans-serif; } 不会自动生效。它依赖两个条件同时满足:
立即学习“前端免费学习笔记(深入)”;
-
<html lang="zh-CN">(或其他主语言)已正确定义——这是:lang()的锚点 - 目标元素(如
<td lang="ko">)显式声明了lang="ko",且拼写无空格、无下划线、大小写正确
如果样式没生效,优先检查控制台是否报 Failed to parse language tag 类警告,再确认 HTML 源码里是不是写了 lang="KO" 或 lang="ko "(末尾空格)——这些都会导致匹配失败。



















