목록으로
KRDS 체크리스트 분석

English엔 lang=en을

이번 546편은 언어 변경 링크에 lang 속성을 선언하고 레이블과 일치하는 언어 코드를 속성값으로 제공하라는 규칙입니다. 이로써 언어 변경 7개 규칙이 마무리됩니다.

VViewCheck Insight
·2026.07.22 4분 32
English엔 lang=en을
KRDS CP-426 — 링크에 lang 속성을 선언하고 레이블과 일치하는 언어 코드를 속성값으로 제공하고 있다.

0. 들어가며 — ’English’를 스크린 리더가 한국어로 읽으면

이번 546편은 언어 변경 링크에 lang 속성을 선언하고 레이블과 일치하는 언어 코드를 속성값으로 제공하라는 규칙입니다. 이로써 언어 변경 7개 규칙이 마무리됩니다.

언어 변경 링크의 레이블은 — 해당 언어로 쓰여 있죠(‘English’, ‘中文’, CP-421). 그런데 — 그 부분에 lang 속성이 없으면, 한국어 페이지의 스크린 리더가 ’English’를 한국어 발음으로 어색하게 읽습니다. CP-426은 lang 속성으로 그 부분의 언어를 알리라고 규정합니다. 이번 편을 풀어냅니다.

1. 원문 — lang 속성 선언 + 일치하는 언어 코드

CP-426 (컴포넌트 > 언어 변경) “링크에 lang 속성을 선언하고 레이블과 일치하는 언어 코드를 속성값으로 제공하고 있다.”

언어 변경 링크에 lang 속성을 두고, 그 레이블의 언어와 일치하는 언어 코드(en, zh 등)를 속성값으로 제공하라는 뜻입니다.

정리: 언어 링크에 그 언어의 lang 속성을 선언하라. 이게 CP-426입니다.

2. 왜 lang 속성인가

언어 변경 링크의 레이블은 CP-421대로 해당 언어로 쓰여 있습니다(‘English’, ‘中文’, ‘日本語’). 그런데 그 페이지 전체는 보통 한국어(<html lang="ko">)죠. 이 한국어 페이지 안에 영어 ‘English’나 중국어 ’中文’ 같은 다른 언어 텍스트가 섞여 있는 겁니다. 이때 그 부분에 lang 속성으로 ’여긴 다른 언어’임을 알려야 합니다.

lang 속성이 없을 때의 문제:

스크린 리더 발음 오류 한국어 페이지(lang="ko")의 스크린 리더는 모든 텍스트를 한국어 발음·억양으로 읽습니다. 그런데 ‘English’라는 영어 단어를 한국어 음성 엔진이 읽으면, ’엔글리쉬’를 한국어식으로 어색하게 발음하죠. ’中文’(중국어), ‘Tiếng Việt’(베트남어)도 한국어 엔진이 읽으면 엉뚱하게 들립니다. 그 언어 사용자가 자기 언어 이름을 못 알아듣죠.

정확한 발음 필요 언어 변경 링크는 그 언어 사용자가 듣고 자기 언어를 찾는 게 목적입니다. 그러려면 그 부분을 그 언어 음성으로 정확히 읽어줘야 하죠.

그래서 CP-426은 — 각 언어 링크에 lang 속성을 선언하라고 합니다:

lang 속성 선언 — 영어 링크에 lang="en", 중국어 링크에 lang="zh", 일본어에 lang="ja"처럼 — 그 레이블의 언어 코드를 lang 속성으로 줍니다.

<a href="..." lang="en">English</a> <a href="..." lang="zh">中文</a>

효과 그러면 스크린 리더가 그 부분을 만나면 음성 엔진을 그 언어로 전환해 읽습니다. ’English’를 영어 발음으로, ’中文’을 중국어 발음으로요. 그 언어 사용자가 자기 언어 이름을 정확히 듣고 알아보죠. 이는 WCAG 3.1.2 부분 언어(Language of Parts) 기준입니다 페이지 주 언어와 다른 부분은 그 언어를 명시해야 한다는 거죠.

‘레이블과 일치하는’ 코드. 핵심은 lang 속성값이 레이블의 언어와 일치해야 한다는 것입니다. 레이블이 ‘English’(영어)면 lang="en"(영어 코드). 레이블이 ‘中文’(중국어)면 lang="zh". 레이블 텍스트의 언어와 lang 코드가 맞아야 스크린 리더가 올바로 읽죠. 틀리면(English에 lang=“ko”) 오히려 잘못 읽습니다.

언어 코드는 lang 속성에(CP-422 연계). CP-422에서 — 언어 코드(EN·ZH)를 화면 레이블로 쓰지 말라고 했죠. 그 코드의 올바른 자리가 바로 이 lang 속성입니다. 화면 레이블은 온전한 이름(English), 코드는 lang 속성(en)으로 — 역할을 나누죠. CP-422(화면은 이름) + CP-426(코드는 lang)이 함께 갑니다.

전환될 언어 vs 현재 언어. lang 속성은 — 그 레이블의 언어를 가리킵니다(전환될 언어). ‘English’ 링크는 영어 레이블이니 lang="en"이죠. 링크를 눌러 이동할 페이지의 언어와도 보통 일치하고요.

이 규칙은 언어 변경의 ’음성 정확성’을 담당합니다 — 각 언어 링크에 lang 속성을 줘(426), 스크린 리더가 그 언어 이름을 그 언어 발음으로 정확히 읽게 하죠. 외국 사용자가 자기 언어를 듣고 찾는 핵심입니다. 언어 변경 7개 규칙이 이로써 마무리됩니다.

정리하면 — 한국어 페이지의 ‘English’·‘中文’ 같은 다른 언어 레이블에 lang 속성이 없으면 스크린 리더가 한국어 발음으로 어색하게 읽으므로, 각 언어 링크에 레이블과 일치하는 언어 코드를 lang 속성으로 선언해 정확히 읽히게 해야 합니다.

3. 점검 / 개선

무엇을 점검하나

lang 속성 선언 — 각 언어 링크에 lang 속성이 있는가.

레이블 일치 — lang 값이 레이블의 언어와 일치하는가(English→en, 中文→zh).

스크린 리더 발음 — 스크린 리더가 그 언어 이름을 그 언어 발음으로 읽는가.

개선 방향

각 언어 링크에 lang 속성(English→lang=“en”, 中文→lang=“zh”) 선언.

lang 값과 레이블 언어 일치(WCAG 3.1.2). 화면 레이블은 온전한 이름(CP-422).

4. 누가 담당하나 / 우리 사이트에 해당될까?

역할책임
퍼블리셔/개발lang 속성 선언 구현
QA/접근성스크린 리더 언어 발음 검증
기관 유형CP-426 적용
중앙행정기관(대표·운영) / 공공기관 / 지자체✅ 필수 (다국어 지원 시)

웹접근성 의무 대상이며 다국어를 지원하는 사이트에 해당됩니다.

5. 30초 자가진단 + FAQ

✅ 30초 자가진단

□ 각 언어 링크에 lang 속성이 있나요?

□ lang 값이 레이블의 언어와 일치하나요(English→en, 中文→zh)?

□ 스크린 리더가 그 언어 이름을 그 언어 발음으로 읽나요?

❓ FAQ

Q1. lang 속성이 없으면 어떻게 되나요? 한국어 페이지의 스크린 리더가 ’English’를 한국어 발음으로 어색하게 읽습니다. 그 언어 사용자가 자기 언어를 못 알아듣죠. Q2. lang 값을 어떻게 정하나요? 레이블의 언어와 일치시킵니다. English→lang=“en”, 中文→lang=“zh”. 틀리면 오히려 잘못 읽히죠. Q3. CP-422(코드 축약 금지)와 모순 아닌가요? 아닙니다. 화면 레이블은 온전한 이름(English), 코드는 lang 속성 (en)입니다. 역할을 나누죠. 함께 갑니다.

6. 마무리

CP-426의 메시지:

English엔 lang=en을 — 언어 링크에 레이블과 일치하는 lang 속성을 선언하라.

다른 언어 레이블에 lang 속성이 없으면 스크린 리더가 한국어 발음으로 어색하게 읽습니다. 각 언어 링크에 일치하는 언어 코드를 lang 속성으로 줘 정확히 읽히게 하는 게 핵심이죠. 이로써 언어 변경 7개 규칙이 마무리됩니다. 다음 편부터는 화면 크기 조정(Text resize)입니다.

다음 편 예고 ▶ 「547. (CP-427) 화면 크기 조정 — 사용자가 글자/화면 크기를 조정하는 데 사용하고 있다.」

ViewCheck는 언어 링크에 lang 속성이 올바로 선언됐는지를 진단합니다.

📚 참고 출처

KRDS 컴포넌트 — 언어 변경(Language switcher) 가이드 — https://www.krds.go.kr/html/site/component/component_42.html

WCAG 2.1 SC 3.1.2 Language of Parts — https://www.w3.org/WAI/WCAG21/Understanding/language-of-parts.html

KRDS #ViewCheck #공공웹사이트 #전자정부 #디지털정부 #웹접근성 #디자인시스템 #UIUX #UI컴포넌트 #웹표준

KRDS,ViewCheck,공공웹사이트,전자정부,디지털정부,웹접근성,디자인시스템,UIUX,UI컴포넌트,웹표준

#KRDS#공공웹#컴포넌트#언어변경#lang속성#언어코드#스크린리더#다국어

관련 글