Communitygithub.com

ultra11y

HTML/CSS/JSX 코드를 RGAA 4.1.2 + WCAG 2.1/2.2 AA 접근성 기준에 따라 감사(날짜 포함 보고서)하거나 접근성 있는 마크업을 작성/검토합니다. 의존성 없는 정적 엔진 + 에이전트 판단, 환각 방지 게이트 포함. skills.sh 에이전트 스킬.

ultra11y란 무엇인가요?

`ultra11y`는 접근성 감사와 접근성 있는 마크업 작성을 돕는 AI 에이전트 스킬입니다. RGAA 4.1.2와 WCAG 2.1/2.2 AA 기준을 기반으로 HTML, CSS, JSX/TSX 파일을 분석합니다. 핵심은 확정적(deterministic)이고 의존성이 없는 정적 엔진(`node scripts/ultra11y.mjs`)이 기계적으로 확인 가능한 비준수 사항(NC)을 감지하고, 사용자(에이전트)가 맥락을 고려한 판단(예: 대체 텍스트 적절성, 읽기 순서)을 내리는 '업무 분할' 방식입니다. 모든 비준수 사항은 실제 요소를 기반으로 하여 환각(hallucination)을 방지하며, '수동 평가 필요' 항목을 명확히 남겨 사용자가 확인할 수 있도록 합니다. 주요 명령어로는 `audit`(감사), `report`(보고서 생성), `fix`(수정 제안), `check`(검증), `criteria`(기준 조회) 등이 있으며, CI/CD 통합을 위한 `init` 명령어와 옵션으로 Docker 기반 동적 검사(`scan`)도 지원합니다. Claude Code, Cursor, Codex 등 다양한 AI 도구에서 활용 가능합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add maxgfr/ultra11y

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

ultra11y — RGAA 4.1.2 감사 및 접근성 작성 가이드

접근성 자동 도구는 문제의 일부만 볼 수 있습니다. ultra11y는 업무 분할을 통해 이를 해결합니다. 의존성 없는 확정적 엔진(node scripts/ultra11y.mjs <명령어> — npm install 불필요, 키 불필요)이 기계적 작업(기계 검증 가능한 비준수 사항을 감지하고 해당 RGAA 기준에 연결)을 수행하고, 사용자(에이전트)가 판단(대체 텍스트의 적절성, 맥락 속 제목, 읽기 순서)과 렌더링이 필요한 기준(대비, 포커스, 확대)을 처리합니다. 게이트(gate)는 환각된 비준수 사항이 살아남지 못하도록 차단합니다.

핵심 규칙:

  1. 비준수 사항을 절대 임의로 만들지 마십시오: 각 NC는 실제 요소를 인용하며(check가 확인) 해결 가능해야 합니다.
  2. HTML 네이티브 우선, ARIA는 마지막; 암시적 의미를 중복하지 마십시오.
  3. 잔여 항목은 명시적으로: 입증되지 않은 모든 렌더링/판단 기준은 '수동 평가 필요' 항목에 넣고, 조용히 준수되었다고 표시하지 마십시오.

상황에 따른 선택

  • '감사 / 적합성 보고서' → 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 참조).

관련 스킬