인포그랩design-skills

a11y-audit 가이드

대비, 키보드, 읽는 순서를 계산하고 통과·미달·미시험으로 판정할 때

한 줄 결과물: 달성기준별 판정표와 글자/바탕 대비 표. 모든 대비 숫자는 contrast.py 출력이다.

스킬 본문: ../../a11y-audit/SKILL.md

언제 쓰나

  • 화면의 접근성 문제를 찾고 고칠 방향을 정할 때(빠른 리뷰)
  • 통과·미달·미시험(NT)을 기준별로 남기는 감사가 필요할 때
  • 구현 중에 키보드, 포커스, 라벨, ARIA를 점검할 때
  • 쓰지 않을 때: 스크린 리더 호환성 검증, 법적 적합성 선언

샘플

접근성 점검 결과: 대비 표와 항목별 판정

위 이미지는 아래 입력으로 만든 결과물의 모양이다. 이 모양(대비 표 + 항목별 판정 + 확인하지 못한 것)을 맞추면 된다.

입력값
모드 / 수준빠른 리뷰 / WCAG 2.2 AA
대비 쌍#286a1b/#FFFFFF, #328523/#FFFFFF, #6b7280/#FFFFFF, #9ca3af/#FFFFFF
판정 규칙일반 글자 4.5 이상, 큰 글자와 UI 3 이상
남긴 것포커스 표시는 "검토 필요", 스크린 리더는 "미시험(NT)"

숫자 6.63, 4.65, 4.83, 2.54는 아래 2단계 명령의 실제 출력이다. 표의 나머지 판정(키보드, 포커스, 스크린 리더)은 모양을 보여 주는 예시다.

따라하기

  1. 모드와 범위를 정한다. 에이전트에게 이렇게 요청한다.
    a11y-audit 스킬로 빠른 리뷰를 해 줘.
    대상: <URL 또는 파일 경로>, 수준: AA, 범위: 로그인 화면과 대시보드 2개.
  2. 대비를 계산한다. 글자색과 실제로 보이는 바탕색 쌍마다 한 번씩 실행한다. #은 따옴표로 감싼다.
    python3 a11y-audit/scripts/contrast.py '#286a1b' '#ffffff'
    # -  #286a1b on #ffffff  =  6.63:1  | 일반 글자 4.5 통과 | 큰 글자·UI 3.0 통과
    python3 a11y-audit/scripts/contrast.py '#9ca3af' '#ffffff'
    # -  #9ca3af on #ffffff  =  2.54:1  | 일반 글자 4.5 미달 | 큰 글자·UI 3.0 미달
    투명도가 있으면 '#000000@0.5'처럼 쓰면 바탕 위에 합성한다. 쌍이 많으면 --pairs 파일.csv(fg,bg,라벨)를 쓴다. 바탕이 사진이나 그라데이션이면 deck-qa의 픽셀 측정을 쓴다.
  3. 키보드와 읽는 순서를 본다. 키보드만으로 모든 동작이 되는지, 포커스 표시가 보이는지, 포인터 대상이 24x24px 이상인지 확인한다.
  4. 판정한다. 항목마다 통과, 미달, 해당 없음, 미시험(NT), 검토 필요 중 하나를 쓴다. 미달에는 위치, 기준, 수정 방법, 심각도(치명, 주요, 경미)를 붙인다.
  5. 출력 틀에 맞춰 보고한다.
    모드: 빠른 리뷰   수준: AA   범위: 로그인, 대시보드
    | 기준 | 판정 | 위치 | 증거 | 심각도 | 수정 |
    대비 표: | 쌍(글자/바탕) | 비율 | 필요 | 판정 |
    자동 점검: 확정 n건 / 검토 필요 n건
    확인하지 못한 것: 스크린 리더 실사용

흔한 실패

  • 대비를 눈대중이나 흑백 변환으로 "통과"라고 쓴다. 숫자는 스크립트 출력만 쓴다.
  • 직접 확인하지 않은 항목에 "대응 완료"를 쓴다. 증거가 없으면 NT로 남긴다.
  • 자동 검사 통과를 적합 판정으로 쓴다. 자동 검사는 전체 문제의 일부만 본다.
  • 글자 크기를 WCAG 위반처럼 쓴다. WCAG에는 최소 글자 크기 기준이 없고, 팀 권장으로만 판정한다.

다음 스킬