브라우저 안에서만 계산
텍스트·UI 색상 대비 계산기
반올림 전 대비율로 일반 텍스트, 큰 텍스트, UI 구성요소의 WCAG 2.2 경계값을 각각 확인합니다.
무엇을 결정할 수 있나요?
두 색을 입력하면 sRGB 채널을 선형화하고 상대 휘도를 구한 뒤, 더 밝은 색과 어두운 색의 휘도로 대비율을 계산합니다.
화면에는 읽기 쉬운 소수점 둘째 자리 값을 보여주지만 통과와 실패는 반올림하지 않은 내부 값으로 결정합니다. 이 차이는 경계에 가까운 회색에서 중요합니다.
이 페이지의 고유 질문: 표시상 4.5:1로 보이는 색 조합이 실제 AA 경계값을 넘는가?
로컬 계산 도구
값을 입력해 검사하기
입력값은 브라우저 상태에서만 처리하며 서버·URL·Analytics로 보내거나 저장하지 않습니다.
자동으로 확인하는 범위
- 불투명 HEX·RGB 단색의 상대 휘도와 대비율 계산
- WCAG 2.2 일반 텍스트 AA·AAA, 큰 텍스트 AA·AAA, 비텍스트 UI 3:1 기준 분리
- 알파색은 실제 하위 배경이 있을 때 합성 후 계산
- 사진·영상·그라디언트와 실제 글자 크기 판단은 수동 확인으로 분리
입력값과 단위
- 전경색
- #RGB, #RRGGBB, rgb()/rgba() 형식의 글자·아이콘 색
- 배경색
- 전경 바로 뒤의 불투명 단색
- 검사 대상
- 일반 텍스트, 큰 텍스트, UI·의미 있는 그래픽 중 하나
- 기준 수준
- WCAG 2.2 AA 또는 AAA. 서로 다른 결과를 하나로 합치지 않음
판정할 때 지키는 원칙
- 일반 텍스트 AA는 원 대비율 4.5:1 이상, AAA는 7:1 이상을 사용합니다.
- 큰 텍스트 AA는 3:1 이상, AAA는 4.5:1 이상이지만 실제 큰 텍스트 정의 충족 여부는 글꼴 크기와 굵기를 함께 확인해야 합니다.
- UI 구성요소와 의미 있는 그래픽의 필요한 시각 정보는 3:1 하위검사를 사용하며, 비활성·장식 예외는 자동으로 확정하지 않습니다.
자체 검증 도식
수정 전·후 예제
반올림 경계의 회색 본문
실패: 표시값만 보고 결정
color: #777777;
background: #ffffff; /* 실제 약 4.478:1 */통과 후보: 원값으로 재검사
color: #767676;
background: #ffffff; /* 실제 약 4.542:1 */두 결과 모두 4.5로 표시될 수 있지만 원값을 사용하면 첫 조합은 AA 실패, 둘째 조합은 AA 통과입니다.
옅은 아이콘 경계
3:1 미만
.icon { color: #aaa; background: #fff; }대비를 높인 후보
.icon { color: #767676; background: #fff; }아이콘이 기능이나 상태를 전달한다면 텍스트가 아니라 비텍스트 대비 하위검사를 따로 확인합니다.
실무 판단 가이드
4.5:1만 확인하면 끝일까?
대비율이 화면에서 4.5:1로 보이면 모든 요소가 WCAG AA를 통과한다.
일반 텍스트, 큰 텍스트, 사용자 인터페이스의 시각 정보에는 서로 다른 하위검사가 적용됩니다. 먼저 요소 역할과 기준 수준을 선택해야 합니다.
표시값은 설명을 위한 반올림 결과입니다. 판정은 sRGB 선형화부터 계산한 원 대비율을 임계값과 직접 비교해야 합니다.
판단 순서
- 최종 계산된 전경·배경 단색을 확인한다.
- 텍스트인지 UI·그래픽인지 구분한다.
- 큰 텍스트라면 실제 크기와 굵기를 대조한다.
- 원 대비율로 선택 기준을 판정한다.
- 사진·그라디언트·예외는 수동 검토로 남긴다.
실패했을 때 복구
- 실패한 전경 또는 배경 한쪽을 단계적으로 밝거나 어둡게 조정합니다.
- 후보색을 같은 공식으로 다시 계산합니다.
- 실제 컴포넌트 상태와 hover·focus·disabled 조합을 다시 검사합니다.
회귀 테스트와 검수 증거
아래 fixture는 실제 고객 사례가 아니라 판정 로직이 같은 입력에 같은 결과를 내는지 확인하는 공개 회귀 자료입니다. 현장 사용 경험으로 과장하지 않습니다.
| Fixture ID | 입력 | 기대 결과 |
|---|---|---|
contrast-black-white | #000000 / #FFFFFF | 21:1, 모든 표시 프로필 통과 |
contrast-rounding-fail | #777777 / #FFFFFF | 약 4.478:1, 일반 텍스트 AA 실패 |
contrast-rounding-pass | #767676 / #FFFFFF | 약 4.542:1, 일반 텍스트 AA 통과 |
대표 fixture 검증 기록
- 검사 환경
- 브라우저 및 테스트 환경: 대표 fixture 기반 자동 테스트 및 DOM 파서 검증; 실제 화면낭독기 수동 검사는 미검사
- 예상 결과
- #777777은 원값 약 4.478로 fail, #767676은 약 4.542로 pass
- 자동 결과
- #777777은 약 4.478로 기준 미달(Fail), #767676은 약 4.542로 기준 충족(Pass) 결과를 반환하도록 설계되었습니다. (화면낭독기 음성 출력은 수동 검토 필요)
- 재검사 방법
- 두 입력의 표시값이 같아질 수 있어도 status가 서로 다른지 단위 테스트로 비교합니다.
자동 결과 뒤에 남는 검사
- 실제 CSS 계산색 대조
- 글자 크기·굵기 프로필
- 사진·그라디언트 여부
자동 판정의 한계
- 사진·영상·그라디언트의 가장 불리한 배경 영역을 자동 선택하지 않습니다.
- 글꼴 렌더링, 안티앨리어싱, 실제 큰 텍스트 해당 여부를 확정하지 않습니다.
- 여러 단계의 반투명 레이어와 blend-mode 합성은 지원하지 않습니다.
- 색상만으로 정보나 상태가 전달되는지는 사람이 직접 확인해야 합니다.
반드시 남는 수동 확인
- 실제 CSS에서 최종 계산된 전경·배경색이 입력값과 같은가?
- 텍스트가 큰 텍스트 정의의 크기와 굵기를 실제로 만족하는가?
- 사진이나 그라디언트 위라면 모든 위치에서 필요한 대비가 유지되는가?
- 로고·장식·비활성 예외를 잘못 적용하지 않았는가?
공식 상세 근거
- WCAG 2.2 Success Criterion 1.4.3 — Contrast (Minimum)
- WCAG 2.2 Success Criterion 1.4.6 — Contrast (Enhanced)
- WCAG 2.2 Success Criterion 1.4.11 — Non-text Contrast
이번 공개 검수 범위
WCAG 2.2 대비 공식·경계값 대조, Chromium 입력 흐름 및 산출 HTML 표본 검수
- 테스트 증거: contrast 단위 테스트와 #777777/#767676 Playwright 경계 회귀
- 콘텐츠 검토: 가이드의 통념·판단 순서와 fixture 결과를 도구 본문에서 중복 없이 대조
- 미검사·한계: 사진·그라디언트 실제 픽셀 표본 미검사
- 미검사·한계: 화면낭독기와 무관한 색상 계산 도구
자주 묻는 질문
4.48을 4.5로 반올림하면 통과인가요?
아닙니다. WCAG 대비 경계는 반올림하지 않은 계산값으로 비교해야 합니다. 반올림은 화면 표시용일 뿐입니다.
색상 선택기가 추천한 색이 유일한 정답인가요?
아닙니다. 현재 탐색 방향에서 찾은 한 후보입니다. 브랜드, 상태 구분, 인접 색을 함께 검토한 뒤 다시 계산해야 합니다.
통과 결과가 페이지 전체 준수를 뜻하나요?
아닙니다. 입력한 두 단색과 선택한 대비 하위검사 범위만 확인합니다.