오픈소스 도구 Outloud는 PDF/UA-1과 WCAG 2.2 기준으로 PDF를 검사하고, 명령줄·CI·브라우저 앱에서 결과를 확인하게 해준다. 제작사 Visionably는 기존 검증기가 놓치는 문서 내용과 태그의 불일치도 찾아낸다고 설명한다.

설치는 pipx나 uv로 할 수 있다. PDF는 로컬에서 처리하며, 제작사에 따르면 파일을 업로드하지 않는다.

text
pipx install outloud # or: uv tool install outloud
outloud report.pdf # check it
outloud --view # or open the app and drop files in

검사 결과에는 페이지와 근거, 관련 ISO 조항·Matterhorn Protocol 체크포인트·WCAG 2.2 기준, 한 줄짜리 수정 안내가 포함된다. 문서 구조 트리와 화면 낭독기가 읽을 순서의 미리보기도 제공하고, 발견 항목을 렌더링된 페이지에서 표시한다. 결과는 터미널 외에 JSON, SARIF 2.1.0, HTML로 내보낼 수 있다.

Outloud는 요구사항 충족 여부를 확인하는 적합성 규칙과, 페이지의 실제 내용이 태그와 맞는지 살피는 의미 규칙을 나눠 제공한다. 예를 들어 대체 텍스트가 파일명인지, 표의 머리글 셀이 비어 있는지, 본문 문장이 장식으로 표시돼 화면 낭독기에서 건너뛰어지는지 등을 검사한다. 제작사는 적합성 규칙이 veraPDF와 58개 단일 결함 테스트 파일 및 실제 파일 102개, 총 160개에서 모두 일치했다고 밝혔다.

사용 예시는 다음과 같다. 경고만 있는 결과는 review, 오류가 하나 이상이면 fail로 판정하며, --fail-on warning을 지정하면 경고도 종료 상태를 실패로 바꾼다.

text
outloud file.pdf # findings on the terminal, exit 1 if any error
outloud a.pdf b.pdf reports/ # several files; directories are searched
outloud file.pdf --criteria # add the PDF/UA-1 and WCAG 2.2 tables
outloud out.pdf --source in.pdf # also compare a remediated file with its original
outloud *.pdf --json r.json --sarif r.sarif --html r.html
outloud file.pdf --layer conformance # only what a validator would run
outloud file.pdf --only TBL-011,TAG-003 # or --skip
outloud --list-rules

브라우저 앱은 로컬 서버로 실행되고, 파일은 종료할 때 삭제되는 임시 폴더에 둔다. CI에서는 SARIF 결과를 GitHub 코드 스캐닝에 올릴 수 있다. 자세한 내용과 설치 방법은 Outloud 저장소에서 확인할 수 있다.

제작사는 91개 규칙 가운데 89개를 구현했고, 나머지 2개는 실행하지 않은 항목으로 표시한다고 설명한다. 자체 비교에서 Outloud는 veraPDF보다 2~10배 빨랐지만, pdfa11y보다는 5~20배 느렸다. 측정은 2026년 9월 17일 한 대의 컴퓨터에서 진행했으며, 속도 차이는 주로 JVM 시작 여부와 Python 처리 방식에 따른다고 제작사는 밝혔다.

다만 Outloud는 인증이나 법률 자문이 아니라 평가 도구다. 의미 규칙은 휴리스틱이므로 잘못 판단할 수 있고, WCAG 기준의 ‘통과’는 자동 검사에서 문제를 찾지 못했다는 뜻이지 기준 충족을 보증하지 않는다. 색상 대비는 아직 측정하지 않으며, 현재 PDF/UA-1만 검사한다. PDF/UA-2와 색상 대비 검사는 로드맵에 올라 있다.

부록: 원문 예시

text
?doc=report&tab=crit&fw=wcag22&f=TBL-011
text
](https://github.com/visionably/outloud/blob/main/docs/COMPARISON-pdfa11y.md). Run the comparisons on your own files with [
text
](https://github.com/visionably/outloud/blob/main/scripts/compare_verapdf.py) and [
text
](https://github.com/visionably/outloud/blob/main/src/outloud/rules/catalogue.yaml) and documented in [