ultra11y — RGAA 4.1.2 감사 및 접근성 작성 가이드
접근성 자동 도구는 문제의 일부만 볼 수 있습니다.
ultra11y는 업무 분할을 통해 이를 해결합니다. 의존성 없는 확정적 엔진(node scripts/ultra11y.mjs <명령어> — npm install 불필요, 키 불필요)이 기계적 작업(기계 검증 가능한 비준수 사항을 감지하고 해당 RGAA 기준에 연결)을 수행하고, 사용자(에이전트)가 판단(대체 텍스트의 적절성, 맥락 속 제목, 읽기 순서)과 렌더링이 필요한 기준(대비, 포커스, 확대)을 처리합니다. 게이트(gate)는 환각된 비준수 사항이 살아남지 못하도록 차단합니다.
핵심 규칙:
- 비준수 사항을 절대 임의로 만들지 마십시오: 각
NC는 실제 요소를 인용하며(check가 확인) 해결 가능해야 합니다.- HTML 네이티브 우선, ARIA는 마지막; 암시적 의미를 중복하지 마십시오.
- 잔여 항목은 명시적으로: 입증되지 않은 모든 렌더링/판단 기준은 '수동 평가 필요' 항목에 넣고, 조용히 준수되었다고 표시하지 마십시오.
상황에 따른 선택
- '감사 / 적합성 보고서' →
node scripts/ultra11y.mjs audit … --json, 이후report,check;references/audit.md참조. - '대규모 저장소 / 스마트 감사' → 초점을 좁히기:
--changed(git diff), 템플릿 우선 순위, 중복 제거,--max-files;references/scale.md참조. - '수정 사항 적용' →
fix(기본적으로 드라이런,--write로 안전한 수정 사항 적용, 나머지는 제안만 하며 임의로 생성하지 않음);references/fix.md참조. - '저장소 내 자동 유지 (훅 / CI)' →
init --hook/--ci/--baseline(새로운 비준수 사항에 대해서만 실패);references/automation.md참조. - '이 코드를 접근성 있게 만들기 / 검토' → 네이티브 우선 원칙에 따라 코드 조각 감사(
audit - < component.html);references/authoring.md및references/forbidden-patterns.md참조. - '특정 기준 X는 무엇을 의미하나요 / 어떤 주제인가요' →
criteria;references/criteria.md참조. - '국제 표준 (WCAG / EN 301 549 / Section 508)' →
report/criteria에--standard wcag사용 ;references/methodology.md참조. - '고신뢰도 감사' →
verify --report … --semantic;references/verify.md참조. 방법론 및 형식:references/methodology.md참조. - '대비 / 렌더링 확인 (선택적 Docker 티어)' →
scan <url> --merge …(headless 브라우저의 axe-core) ;references/dynamic.md참조.
명령어 치트 시트
node scripts/ultra11y.mjs audit "src/**/*.html" --json > audit.json
node scripts/ultra11y.mjs audit - < component.html # stdin을 통한 HTML
node scripts/ultra11y.mjs audit "src/**/*.tsx" --jsx # JSX/TSX best-effort
node scripts/ultra11y.mjs audit --changed --json # git diff만 (대규모 저장소)
node scripts/ultra11y.mjs report --in audit.json --out audits
node scripts/ultra11y.mjs report --in audit.json --standard wcag # WCAG 보기 (프레젠테이션)
node scripts/ultra11y.mjs criteria 11.1 # 특정 기준 + 테스트
node scripts/ultra11y.mjs criteria --theme 8 --list # 특정 주제 / 목록 표시
node scripts/ultra11y.mjs check --report audits/rgaa-AAAA-MM-JJ.md
node scripts/ultra11y.mjs verify --report audits/rgaa-AAAA-MM-JJ.md --semantic
node scripts/ultra11y.mjs fix "src/**/*.html" # 드라이런 ; --write 적용
node scripts/ultra11y.mjs init --hook --baseline # 회귀 방지 (훅 + 베이스라인)
node scripts/ultra11y.mjs scan https://example.com --merge audits/audit-latest.json # Docker 티어
모든 출력은 --json으로 기계 판독 가능. 보고서는 기본적으로 프랑스어, --lang en 사용 가능.
엔진, 판단, 잔여 위험 결합
audit 출력은 각 기준을 분류합니다: 정적 하위 집합에 대해 C/NC/NA ; 렌더링/판단 기준은 manual (residualRisks에 나열). 엔진의 NC는 확인된 후보 (file:line 인용). 사용자가 manual 기준을 결정하고 렌더링 기준을 '수동 확인 필요'로 표시해야 합니다. 보고서는 모든 적용 가능한 기준이 정당한 C/NC/NA로 표시되고 모든 잔여 위험이 명명된 경우에만 완전합니다.
하지 말아야 할 것
- 엔진이 찾지 못했고 사용자가 볼 수 없는 비준수 사항을 임의로 만들지 마십시오 (인라인 리터럴 색상의 대비는 정적으로 판단됨; 계산된 대비 — 외부 CSS, 변수 — 는
scan(Docker 티어)을 사용하거나 선언 전에 렌더링에서 확인). - 네이티브 의미를 중복하는 ARIA를 추가하지 마십시오.
- 사람의 확인 없이 렌더링/판단 기준을 '준수'로 표시하지 마십시오.
references/criteria.md를 수동으로 편집하지 마십시오 (저장소에서 생성됨).
범위
정적 엔진: 오프라인, 확정적, 의존성 없음; HTML + JSX/TSX (best-effort) + stdin 입력. 렌더링 기준 (계산된 대비, reflow)은 선택적 티어 scan (Docker 내 axe-core)에서 처리됨; 가시적 포커스, 200% 텍스트 확대, 호버 시 콘텐츠는 사람 검토 대상 (잔여 위험). 데이터: RGAA 4.1.2 © DINUM, License Ouverte / Etalab 2.0 (NOTICE 참조).