색 대비 검사 (WCAG 접근성)

글자색과 배경색의 대비비를 계산해 WCAG AA·AAA 기준 통과 여부를 알려 주고, 미달이면 색감을 지키면서 기준을 넘는 색을 제안합니다.

색 대비 검사

#abc · #aabbcc · rgb(1,2,3) · rgba(0,0,0,.5) 모두 됩니다. 글자색의 투명도는 배경 위에 겹쳐 계산하고, 배경색의 투명도는 계산에서 뺍니다.

대비비-
일반 글자-
쓰임필요한 값판정
일반 글자 (AA)4.5:1
일반 글자 (AAA)7:1
큰 글자 (AA)3:1
큰 글자 (AAA)4.5:1
글자 아닌 것 (AA)3:1

이렇게 고치면 됩니다

사용 방법

  1. 글자색과 배경색을 적거나 왼쪽 색 고르개로 고릅니다. 적는 대로 바로 계산합니다.
  2. 큰 글씨로 대비비가 나오고, 그 옆에 일반 글자 기준의 판정이 나옵니다.
  3. 미리보기에서 실제 색으로 그린 글자와 테두리를 눈으로 확인합니다.
  4. 표에서 쓰임 다섯 가지의 통과 · 미달을 보고, 미달이면 이렇게 고치면 됩니다에 나온 색을 씁니다.

처음 화면으로 본 예시

처음 값은 흰 배경(#ffffff) 위의 회색 글자(#767676)입니다. 대비비는 4.54:1, 옆의 판정은 "통과 (AA)"입니다.

쓰임필요한 값판정
일반 글자 (AA)4.5:1통과
일반 글자 (AAA)7:1미달
큰 글자 (AA)3:1통과
큰 글자 (AAA)4.5:1통과
글자 아닌 것 (AA)3:1통과

"이렇게 고치면 됩니다"에는 일반 글자 (AA) "이미 넘습니다", 일반 글자 (AAA) #595959, 큰 글자·테두리 (AA) "이미 넘습니다"라고 나옵니다. 글자색을 #595959로 바꾸면 대비비가 7:1이 되어 가장 엄격한 기준도 넘습니다.

자주 쓰는 색 짝의 대비비

글자색 / 배경색대비비일반 글자큰 글자
#000 / #fff21:1통과 (AAA)통과 (AAA)
#595959 / #fff7:1통과 (AAA)통과 (AAA)
#767676 / #fff4.54:1통과 (AA)통과 (AAA)
#777 / #fff4.47:1미달통과 (AA)
#949494 / #fff3.03:1미달통과 (AA)
#aaa / #fff2.32:1미달미달
#fff / #1e90ff3.23:1미달통과 (AA)
#fff / #ffff001.07:1미달미달
#000 / #ffff0019.55:1통과 (AAA)통과 (AAA)
rgba(0,0,0,.5) / #fff3.94:1미달통과 (AA)
rgba(0,0,0,.6) / #fff5.74:1통과 (AA)통과 (AAA)

넣을 수 있는 꼴

넣은 글읽은 색비고
#abc#aabbcc세 자리는 한 자리씩 겹쳐 읽습니다
abc#aabbcc# 없이도 읽습니다
#aabbccdd#aabbcc · 투명도 0.87끝 두 자리는 투명도
#abcd#aabbcc · 투명도 0.87네 자리의 끝 한 자리도 투명도
rgb(1 2 3)#010203쉼표 대신 빈칸
rgb(1 2 3 / 50%)#010203 · 투명도 0.5빗금 뒤는 투명도
rgb(100%, 0%, 0%)#ff0000퍼센트
rgb(300,0,0)#ff0000255를 넘는 값은 255로 맞춥니다
#abcde읽지 못함자릿수가 3 · 4 · 6 · 8이 아닙니다
red읽지 못함색 이름은 읽지 않습니다
hsl(0 100% 50%)읽지 못함hsl()은 읽지 않습니다

대문자와 소문자는 가리지 않고, 앞뒤 빈칸은 버립니다. 투명도가 1을 넘으면 1로 맞춥니다.

반투명 색

고쳐 주는 색 읽는 법

글자색 / 배경색일반 글자 (AA)일반 글자 (AAA)큰 글자·테두리 (AA)
#777 / #fff#767676#595959이미 넘습니다
#aaa / #fff#757575#585858#949494
#ff0000 / #fff#ed0000#b50000이미 넘습니다
#fff / #1e90ff#262626이 배경에서는 밝기만 바꿔서는 넘길 수 없습니다. 배경색을 바꾸세요.이미 넘습니다
#999 / #808080#171717이 배경에서는 밝기만 바꿔서는 넘길 수 없습니다. 배경색을 바꾸세요.#e1e1e1
rgba(0,0,0,.5) / #fff#000000#000000이미 넘습니다

기준값

쓰임AAAAA
일반 글자4.5:17:1
큰 글자 (18pt 이상 · 굵은 14pt 이상)3:14.5:1
글자가 아닌 것 (테두리·아이콘·그래프)3:1—

AA는 대부분의 접근성 지침이 요구하는 수준이고, AAA는 더 엄격한 기준입니다. 공공 웹사이트라면 AA를 맞춰야 합니다. 글자가 아닌 것에는 AAA 기준이 없습니다.

계산 방법

  1. 각 색의 R·G·B를 0~1로 바꿉니다.
  2. 채널마다 0.04045 이하면 c ÷ 12.92, 넘으면 ((c + 0.055) ÷ 1.055)2.4
  3. 상대 휘도 = 0.2126 R + 0.7152 G + 0.0722 B
  4. 대비비 = (밝은쪽 + 0.05) ÷ (어두운쪽 + 0.05)

처음 값으로 따라가 보면, #767676의 채널은 셋 다 118이라 118 ÷ 255 = 0.4627이고, 2번 식을 거치면 0.1812입니다. 세 채널이 같으니 상대 휘도도 0.1812입니다. 흰색의 상대 휘도는 1이므로 (1 + 0.05) ÷ (0.1812 + 0.05)를 셈해 4.54:1이 나옵니다.

초록의 계수가 파랑의 열 배인 것이 눈에 띕니다. 사람 눈이 초록에 가장 민감하기 때문입니다. 그래서 노란 배경 위 흰 글씨는 보기엔 밝기 차이가 커 보여도 대비비가 2:1도 안 됩니다.

자주 걸리는 것들

색만으로 알리지 마세요

대비비를 맞춰도 색맹인 분에게는 빨강과 초록이 같아 보일 수 있습니다."빨간 칸이 오류입니다" 같은 안내는 글자나 기호를 함께 써야 합니다(WCAG 1.4.1). 이 검사는 밝기 차이만 보며, 색상 구분까지 봐 주지는 않습니다.

이런 문구가 뜰 때

문구까닭과 할 일
글자색을 읽을 수 없습니다.글자색 칸이 비었거나 읽는 꼴이 아닙니다. 위의 "넣을 수 있는 꼴"대로 적으세요. 두 칸을 다 읽지 못하면 이 문구가 먼저 뜹니다.
배경색을 읽을 수 없습니다.배경색 칸이 비었거나 읽는 꼴이 아닙니다.
배경색에 투명도가 있어 투명도는 빼고(불투명으로 보고) 계산했습니다.오류가 아니라 알림입니다. 배경색의 투명도를 빼고 계산했다는 뜻입니다.
이 배경에서는 밝기만 바꿔서는 넘길 수 없습니다. 배경색을 바꾸세요.글자색의 밝기를 어떻게 바꿔도 그 기준을 넘지 못합니다. 배경을 더 밝게 하거나 더 어둡게 하세요.

함께 쓰면 좋은 도구

자주 묻는 질문

대비비는 어떻게 계산하나요?

두 색의 상대 휘도를 구해 (밝은쪽 + 0.05) / (어두운쪽 + 0.05)로 나눕니다. 값은 1(같은 색)부터 21(검정과 흰색)까지입니다. WCAG 2.2에 정의된 공식 그대로입니다.

왜 초록이 더 밝게 계산되나요?

사람 눈이 초록에 가장 민감하기 때문입니다. 상대 휘도는 0.2126 R + 0.7152 G + 0.0722 B로, 초록의 비중이 파랑의 열 배입니다. 그래서 노란 배경 위 흰 글씨는 눈으로 보기엔 차이가 커 보여도 대비비가 낮게 나옵니다.

"큰 글자"는 몇 pt부터인가요?

18pt(약 24px) 이상이거나, 굵은 글씨로 14pt(약 18.66px) 이상이면 큰 글자입니다. 기준이 4.5에서 3으로 낮아집니다. 글자가 크면 획이 굵어 덜 뚜렷해도 읽히기 때문입니다.

글자가 아닌 것도 기준이 있나요?

네. 단추 테두리, 입력칸 테두리, 아이콘, 그래프의 선처럼 뜻을 전달하는 요소는 배경과 3:1 이상이어야 합니다(WCAG 1.4.11). 장식일 뿐이라면 기준이 없습니다.

반투명 색도 되나요?

됩니다. rgba(0,0,0,.5)나 #00000080처럼 넣으면 배경과 겹친 실제 색으로 계산합니다. 투명도를 빼고 계산하면 흰 배경 위 50% 검정이 21:1로 나오는데, 실제로는 회색이라 그만큼 뚜렷하지 않습니다.

rgba(0,0,0,.5)와 #00000080은 왜 결과가 다른가요?

.5는 정확히 50%이고, 16진수 80은 128/255로 약 50.2%입니다. 그래서 흰 배경에 겹친 색이 한 단계 다르고(#808080 · #7f7f7f), 대비비도 달라집니다(3.94:1 · 4:1).

red 같은 색 이름이나 hsl()로 넣어도 되나요?

읽지 않습니다. 넣으면 "글자색을 읽을 수 없습니다."나 "배경색을 읽을 수 없습니다."라는 문구가 뜹니다. 읽는 꼴은 HEX(3 · 4 · 6 · 8자리)와 rgb() · rgba()입니다. hsl() 값은 색상 코드 변환 도구에서 HEX로 바꿔 넣으면 됩니다.

기준을 못 넘으면 어떻게 고치나요?

"이렇게 고치면 됩니다"에 나오는 색을 쓰시면 됩니다. 색감은 그대로 두고 밝기만 옮겨 기준을 넘는 가장 가까운 색을 찾습니다. 배경이 중간 밝기면 어떤 밝기로도 넘길 수 없는 경우가 있는데, 그때는 배경색을 바꿔야 한다고 알려 드립니다.

이 도구가 도움이 되었다면 공유해 주세요
결과가 이상한가요? 알려 주세요
어떤 이야기인가요?

적어 주신 글과 접속 국가만 저장합니다. 도구에 넣은 값이 자동으로 함께 보내지는 일은 없으니, 필요한 내용은 위에 직접 적어 주세요. 답장을 드릴 수는 없습니다.

계산 결과는 참고용이며 법적 효력이 없습니다.