Pytest plugin for WCAG 2.1 A/AA/AAA compliance checks on PDFs.
Project description
wcag-pdf-pytest
wcag-pdf-pytest is a pytest plugin that scaffolds WCAG 2.1
compliance testing for PDF documents. The plugin auto-generates one test per WCAG 2.1
Success Criterion (SC) that applies to PDFs, organizes them by conformance level, and
exposes CLI switches for narrowing execution to the criteria relevant to your review.
Features
- SC-aware test generation — each applicable WCAG 2.1 SC ships as an individual pytest module with structured docstrings that document the requirement.
- Level-based selection — mark sets (
A,AA,AAA) and CLI flags allow you to focus on the conformance tier under audit. - Context-aware filtering — opt-in inclusion of "Depends" criteria lets you decide when to execute context-sensitive checks.
- Extensible PDF inspection — centralize heavy lifting in
pdf_inspector.pyso new assertions or document parsers can be layered in without touching the generated tests.
Installation
pip
pip install wcag-pdf-pytest[pdf]
uv
uv add wcag-pdf-pytest[pdf]
Install the optional pdf extra when you need the bundled pypdf helpers.
Usage
Run the full WCAG 2.1 test suite against a PDF document:
pytest --wcag-pdf path/to/file.pdf
Execute only Level AA criteria using pytest markers:
pytest -m "AA" --wcag-pdf path/to/file.pdf
The plugin also exposes explicit CLI options:
pytest --wcag-pdf-level AA --wcag-pdf path/to/file.pdf
pytest --wcag-pdf-include-depends --wcag-pdf path/to/file.pdf
Tests are namespaced under the wcag21 marker to keep discovery isolated from other pytest
plugins. Each test is seeded with an xfail placeholder so you can progressively
replace the stub assertion with a concrete PDF accessibility check.
CLI reference
| Option | Description |
|---|---|
--wcag-pdf |
Path to one or more PDF files to validate. |
--wcag-pdf-level {A,AA,AAA} |
Restrict execution to a specific WCAG level. |
--wcag-pdf-include-depends |
Execute context-dependent criteria flagged as "Depends". |
Combine CLI switches with pytest marker expressions for granular selection during CI runs.
Extending PDF checks
Extend wcag_pdf_pytest/pdf_inspector.py with reusable utilities that evaluate
individual criteria. Generated tests should stay declarative — import helpers from the
inspector module to keep assertions maintainable and consistent across the suite.
License
Apache License 2.0. See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wcag_pdf_pytest-0.2.2.tar.gz.
File metadata
- Download URL: wcag_pdf_pytest-0.2.2.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8ae6cdde9e4cf64ab060722e6ba4ce7ba006dd44688ac692a2a084a3a9fbca3
|
|
| MD5 |
086f1faed19fcbfa7f2e5999667e4569
|
|
| BLAKE2b-256 |
5224fd095a411b229d1297fd374d4ffd740b8061e4908f4414fe7967b8cb5030
|
File details
Details for the file wcag_pdf_pytest-0.2.2-py3-none-any.whl.
File metadata
- Download URL: wcag_pdf_pytest-0.2.2-py3-none-any.whl
- Upload date:
- Size: 58.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33c8b35e0ee8fe9055c20a67de3f5eb6fca38cae91f237ab46c49f3457c6a9e5
|
|
| MD5 |
cd1214babe899c05bca4fb2f254deb48
|
|
| BLAKE2b-256 |
c84afeea47fcb3cfe6141878541a1fe5a8330f23a584abcccf043f9c0f27f40f
|