{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-19T23:10:56.893Z",
  "lang": "en",
  "slug": "outloud",
  "url": "https://tesign.com/en/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": "Check if a PDF reads correctly aloud",
  "one_liner": "A PDF accessibility checker that shows what a screen reader would actually say.",
  "text": {
    "why": "The standard checkers are a Windows desktop program and a Java validator, neither of which fits a Mac or a CI pipeline. Both also test whether the keys exist, so alt text reading \"IMG_2041.jpg\" or an empty header cell still passes. outloud adds a second layer that catches those.",
    "take": "The pane headed \"read as a screen reader would\" does the persuading. Seeing table values announced against silence makes the point faster than any rule id.",
    "build": [
      "Python, installed with pipx install outloud. Check a file from the terminal, or open a window with --view and drop PDFs in. Ninety rules (88 implemented, 2 reported as \"not run\") are split into conformance rules for ISO 14289-1 (PDF/UA-1) and semantic rules; on 58 fixtures and 102 real files the conformance layer agreed with veraPDF on all",
      "It emits SARIF for CI, needs no Java, and nothing is uploaded."
    ],
    "who": [
      {
        "role": "Anyone publishing reports or notices as PDFs, accessibility reviewers, and teams producing public-sector or educational material.",
        "situation": null
      }
    ],
    "start": [
      {
        "command": false,
        "text": "Install with pipx install outloud, then run outloud file.pdf, or open the viewer with outloud --view and drop a PDF in."
      }
    ],
    "caveat": [
      "It says plainly that it is an evaluation, not a certification and not legal advice. Semantic rules are heuristics and can be wrong, colour contrast is not covered yet, and only PDF/UA-1 is tested. The project is only days old."
    ]
  },
  "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": "Commercial use, redistribution OK. Keep notices; mark changes.",
    "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": "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours."
  },
  "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": "NEW",
      "value": "0h OLD WHEN SEEN"
    }
  ],
  "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": "The outloud window: findings on the left, the marked-up PDF page in the middle, and the screen-reader reading order on the right.",
    "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": [
    "This file was produced by the same build, from the same data, as the tesign.com item page. The text is editorial; the numbers are stored observations.",
    "null in the JSON means not observed — never zero. The Markdown writes [unconfirmed] for it.",
    "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours.",
    "A summary, not legal advice."
  ]
}
