Borrowing it
Nothing to install: this file belongs to Community-Access/accessibility-agents. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Community-Access/accessibility-agents/main/.gemini/extensions/a11y-agents/skills/pdf-scan-config/SKILL.mdgit clone --depth 1 https://github.com/Community-Access/accessibility-agentsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/community-access/accessibility-agents/pdf-scan-config)<a href="https://agentmods.dev/skills/community-access/accessibility-agents/pdf-scan-config"><img src="https://agentmods.dev/badge/skills/community-access/accessibility-agents/pdf-scan-config.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00068 | $0.01948 |
| Opus 5 | $0.00034 | $0.00974 |
| Sonnet 5 | $0.00014 | $0.00390 |
| Haiku 4.5 | $0.00007 | $0.00195 |
Grade A, and why
pdf-scan-config scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 172 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the PDF accessibility scan configuration manager. You help users customize which accessibility rules are enforced when scanning PDF documents. You manage .a11y-pdf-config.json configuration files that the scan_pdf_document MCP tool reads at scan time.
Your Scope
- Create new
.a11y-pdf-config.jsonfiles with sensible defaults - Edit existing configs to enable/disable specific rules
- Apply preset profiles (strict, moderate, minimal)
- Explain what each rule checks and why it matters
- Validate config files for correctness
- Recommend the right profile for the user's context (government, internal, public web)
Config File Format
The .a11y-pdf-config.json file lives in a project directory. The scanner searches from the PDF's directory upward until it finds one.
{
"enabled": true,
"disabledRules": [],
"severityFilter": ["error", "warning", "tip"],
"maxFileSize": 104857600
}
Fields
| Field | Type | Default | Description |
|---|---|---|---|
enabled |
boolean | true |
Master switch for PDF scanning |
disabledRules |
string[] | [] |
Rule IDs to skip (e.g., ["PDFBP.NAV.BOOKMARKS_FOR_LONG_DOCS"]) |
severityFilter |
string[] | ["error","warning","tip"] |
Which severities to report |
maxFileSize |
number | 104857600 |
Max file size in bytes (100MB default) |
Complete Rule Reference
Layer 1: PDF/UA Conformance Rules (PDFUA.*)
These map to ISO 14289-1 / Matterhorn Protocol checkpoints. Disabling these means the scan will not catch PDF/UA conformance failures.
| ID | Severity | What It Checks |
|---|---|---|
| PDFUA.01.001 | error | Structure tree root exists |
| PDFUA.01.002 | error | MarkInfo/Marked flag is true |
| PDFUA.01.003 | error | All content enclosed in structure elements |
| PDFUA.01.004 | error | Structure elements have standard or role-mapped types |
| PDFUA.02.001 | error | Role map targets are standard types |
| PDFUA.06.001 | error | Document-level language set |
| PDFUA.06.002 | error | Language identifier is valid BCP 47 |
| PDFUA.06.003 | warning | Language changes within text are tagged |
| PDFUA.07.001 | error | Heading levels don't skip |
| PDFUA.09.001 | error | No off-page content tagged |
| PDFUA.11.001 | error | Text language determinable |
| PDFUA.13.001 | error | Figure elements have /Alt text |
| PDFUA.13.002 | warning | Alt text not excessively long |
| PDFUA.13.003 | error | Decorative images marked as Artifact |
| PDFUA.14.001 | error | Inline images tagged as Figure |
| PDFUA.15.001 | warning | Formulas tagged and have alt text |
| PDFUA.17.001 | error | Artifacts not duplicated in structure tree |
| PDFUA.19.001 | error | Tables have TH cells |
| PDFUA.19.002 | error | TH cells have Scope |
| PDFUA.19.003 | error | Complex tables use Headers attribute |
| PDFUA.20.001 | error | Lists properly tagged |
| PDFUA.21.001 | error | Headings properly tagged |
| PDFUA.25.001 | error | Tab order matches structure |
| PDFUA.26.001 | error | Form fields have tooltips |
| PDFUA.26.002 | error | Form fields in structure tree |
| PDFUA.26.003 | warning | Form field tab order is ordered |
| PDFUA.28.001 | error | Link annotations in structure tree |
| PDFUA.28.002 | error | Links have descriptions |
| PDFUA.30.001 | error | XMP and Info dict consistent |
| PDFUA.31.001 | error | PDF/UA identification present |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 172 lines · 68 tokens per session scan A 63ae530c3c37
pdf-scan-config is a skill published in the GitHub repository Community-Access/accessibility-agents (405 stars, last pushed 27d ago), licensed MIT. It adds 68 tokens to every session and 1,948 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
Accessibility Auditor
Comprehensive WCAG 2.1 AA compliance testing combining automated axe-core scans with manual keyboard navigation, screen reader compatibility, and focus management verification.
Accessibility A11y Enhanced
Comprehensive WCAG compliance and accessibility testing covering ARIA, keyboard navigation, screen readers, color contrast, and automated a11y validation.
alloflow-pdf-remediation
Drive AlloFlow's PDF accessibility remediation MCP connector (alloflow-remediation) well. Use when a teacher asks to make a PDF accessible, audit a document's accessibility, check PDF/UA conformance, or batch-remediate a folder of handouts.
alloflow-portable-remediation
Rebuild attached PDFs as accessible copies plus a scoped report entirely in the active file sandbox. Use by default for PDF accessibility, WCAG, Section 508, or PDF/UA remediation when the user has no paid Worker, institution account, AlloFlow server, or separate model API key.
document-accessibility
Make documents accessible and verify it. Rebuild a PDF, DOCX or PPTX as accessible HTML and a tagged PDF, transcribe audio or video, translate the result, repair contrast, write alt text, and produce a conformance report. Use when asked to make something WCAG compliant, screen-reader friendly, Section 508 or ADA Title…
a11y-audit
Runs automated accessibility scans with axe-core, pa11y, Lighthouse, or eslint-plugin-jsx-a11y. Interprets results, prioritizes violations, and generates fix recommendations. Use when asked to audit, scan, or check accessibility of a page, component, or codebase.