{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-19T23:10:56.893Z",
  "lang": "ko",
  "slug": "outloud",
  "url": "https://tesign.com/item/outloud/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/outloud/",
      "json": "https://tesign.com/item/outloud/index.json",
      "markdown": "https://tesign.com/item/outloud/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/outloud/",
      "json": "https://tesign.com/en/item/outloud/index.json",
      "markdown": "https://tesign.com/en/item/outloud/index.md"
    }
  },
  "name": "outloud",
  "use_label": "PDF 접근성 점검",
  "one_liner": "PDF를 화면낭독기가 실제로 어떻게 읽는지 보여 주고 빠진 곳을 짚어 주는 검사 도구.",
  "text": {
    "why": "기존 검사 도구는 윈도우 전용 프로그램이거나 자바 검증기라서 맥이나 자동 빌드에서는 쓰기 어렵다. 게다가 \"대체 텍스트가 있는가\"만 보기 때문에, 대체 텍스트가 IMG_2041.jpg이거나 표 머리글이 비어 있어도 통과시킨다. outloud는 규격 검사에 더해 그런 것까지 찾아낸다.",
    "take": "오른쪽에 \"화면낭독기라면 이렇게 읽는다\"를 나란히 보여 주는 화면이 설득력 있다. 표 값이 머리글 없이 줄줄이 읽히는 장면을 한 번 보면 왜 고쳐야 하는지 바로 이해된다.",
    "build": [
      "파이썬으로 만들었고 pipx install outloud 한 줄로 설치한다. 터미널에서 파일을 검사하거나 --view로 창을 열어 PDF를 끌어다 놓는다. 규칙은 90개(88개 구현, 2개는 \"검사 안 함\"으로 표시)이고 규격 검사(ISO 14289-1, PDF/UA-1)와 의미 검사를 나눠서 보여 준다. 규격 검사는 160개 파일에서 veraPDF와 결과가 전부 일치했다고 밝힌다. CI에 붙일 SARIF 출력도 있고, 자바가 필요 없으며 파일이 어디로도 올라가지 않는다."
    ],
    "who": [
      {
        "role": "보고서나 안내문을 PDF로 배포하는 사람, 접근성 점검을 맡은 담당자, 공공·교육 자료를 만드는 곳.",
        "situation": null
      }
    ],
    "start": [
      {
        "command": false,
        "text": "pipx install outloud로 설치한 뒤 outloud 파일.pdf를 실행하거나, outloud --view로 창을 열어 PDF를 끌어다 놓는다."
      }
    ],
    "caveat": [
      "검사이지 인증이 아니고 법적 판단도 아니라고 스스로 밝힌다. 의미 검사는 추정이라 틀릴 수 있고, 색 대비는 아직 보지 않으며 PDF/UA-1만 다룬다. 공개된 지 얼마 되지 않은 초기 단계다."
    ]
  },
  "cta": {
    "type": "install",
    "label": "INSTALL",
    "url": "https://visionably.ai/research/outloud"
  },
  "ready": "install",
  "categories": [
    "dev-tools",
    "productivity"
  ],
  "categories_confirmed": true,
  "tags": [
    "pdf",
    "접근성",
    "화면낭독기",
    "검사"
  ],
  "platform": [
    "cli",
    "windows",
    "macos",
    "linux"
  ],
  "license": {
    "spdx": "Apache-2.0",
    "scope": "permissive",
    "scope_text": "상업 이용·수정·재배포 가능. 고지 유지, 바꾼 부분은 표시.",
    "url": "https://spdx.org/licenses/Apache-2.0.html",
    "note": null,
    "open_source": true
  },
  "language": "Python",
  "source_urls": {
    "canonical": "https://visionably.ai/research/outloud",
    "github": "https://github.com/visionably/outloud",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "showhn",
        "url": "https://github.com/visionably/outloud",
        "posted_at": "2026-09-18T05:03:28.000Z",
        "hn_url": "https://news.ycombinator.com/item?id=49750366"
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-19T18:00:00.000Z",
    "stars": 7,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-19T22:59:49.768Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": null,
    "star_delta_30d": null,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": 3,
    "hn_points_observed_at": "2026-09-19T22:20:56.121Z",
    "store": null,
    "method": "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다."
  },
  "ranks": null,
  "activity": {
    "pushed_at": "2026-09-18T05:07:32.000Z",
    "owner_type": "Organization",
    "open_issues": 0,
    "contributors": 1,
    "releases_count": 1,
    "latest_release": {
      "tag": "v0.2.0",
      "published_at": "2026-09-17T12:45:16.000Z",
      "prerelease": false
    },
    "checked_at": "2026-09-19T22:59:49.768Z",
    "core_checked_at": "2026-09-19T22:59:49.768Z"
  },
  "signals": [
    {
      "kind": "new",
      "label": "신규",
      "value": "생성 0h 만에 포착"
    }
  ],
  "images": {
    "og": "https://tesign.com/img/outloud-dc98635606.png",
    "cover": "https://tesign.com/img/outloud-dc98635606.png",
    "cover_width": 2880,
    "cover_height": 1800,
    "gallery": [
      "https://tesign.com/img/outloud-dc98635606.png",
      "https://tesign.com/img/outloud-2093d4e7e2.png",
      "https://tesign.com/img/outloud-7007975677.png",
      "https://tesign.com/img/outloud-39f0794078.png"
    ],
    "alt": "outloud 검사 화면. 왼쪽에 오류·경고 목록, 가운데에 표시가 얹힌 PDF, 오른쪽에 화면낭독기가 읽는 순서가 나란히 있다.",
    "tier": 2
  },
  "dates": {
    "first_seen_at": "2026-09-18T05:45:35.078Z",
    "source_created_at": "2026-09-18T05:03:28.000Z",
    "discovery_hours": 0.7019661111111111,
    "launch_signal_at": "2026-09-18T05:03:28.000Z",
    "kept_at": "2026-09-19T22:45:27.579Z",
    "first_published_at": "2026-09-19T22:45:27.650Z",
    "updated_at": "2026-09-19T22:45:27.621Z",
    "ingestion_mode": "live"
  },
  "notes": [
    "이 파일은 tesign.com 항목 페이지와 같은 빌드에서 같은 데이터로 만들어졌습니다. 소개 글은 편집자가 쓴 것이고, 숫자는 저장된 관측값입니다.",
    "JSON의 null은 관측하지 않았다는 뜻입니다 — 0이 아닙니다. 마크다운에서는 [확인 필요]로 적습니다.",
    "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다.",
    "요약이며 법적 조언이 아닙니다."
  ]
}
