Describe the bug
docs/ats_compatibility.md#L105 states:
Typst supports PDF/UA-1 (the universal accessibility standard) and all conformance levels of PDF/A (the archival standard). These standards require proper Unicode text, embedded fonts, and a complete structure tree. A PDF that meets these standards is, by definition, machine-readable.
But RenderCV's own PDF output never actually targets PDF/UA-1 (or any PDF standard) — it just relies on Typst's default tagged-PDF output, which gets close but isn't the same thing. Running veraPDF's PDF/UA-1 (ua1) validation profile against a RenderCV-generated PDF (engineeringresumes theme) fails 2 of ~20,600 checks:
ViewerPreferences.DisplayDocTitle not set on the document catalog (clause 7.1-10)
- No PDF/UA Identification XMP schema — the file never declares itself as PDF/UA-1 targeted at all (clause 5-1)
Every content/structure check passes (reading order, tags, headings, etc.), since Typst has produced tagged PDFs by default since v0.14 — the PDF is structurally almost there, it's just never told to actually target the standard.
To Reproduce
rendercv render <any-cv>.yaml (any theme)
- Validate the output PDF against PDF/UA-1, e.g. with veraPDF:
verapdf -f ua1 <output>.pdf
- Observe
FAIL, clauses 7.1-10 and 5-1
Root cause
src/rendercv/renderer/pdf_png.py#L42 (v2.8; unchanged on main, same call now at pdf_png.py#L43):
typst_compiler.compile(input=typst_path, format="pdf", output=pdf_path)
No pdf_standards argument is passed, even though the typst Python binding (and Typst's own --pdf-standard CLI flag) supports one directly.
Verified fix
Recompiling the same .typ output directly via typst.Compiler(...).compile(..., pdf_standards=["ua-1"]) (bypassing RenderCV) produces a PDF that passes veraPDF's ua1 profile with 0 failed checks — no template or CV content changes needed.
Suggested fix
Add an optional field to RenderCommand (schema/models/settings/render_command.py), e.g. pdf_standards: list[str] | None, threaded through to the compile() call in pdf_png.py.
Environment
RenderCV 2.8 (rendercv[full]), typst 0.15.0, Windows. Also reproduced on origin/main (1d4b87bc, 2026-03-25) — same call, unchanged.
Describe the bug
docs/ats_compatibility.md#L105states:But RenderCV's own PDF output never actually targets PDF/UA-1 (or any PDF standard) — it just relies on Typst's default tagged-PDF output, which gets close but isn't the same thing. Running veraPDF's PDF/UA-1 (
ua1) validation profile against a RenderCV-generated PDF (engineeringresumes theme) fails 2 of ~20,600 checks:ViewerPreferences.DisplayDocTitlenot set on the document catalog (clause 7.1-10)Every content/structure check passes (reading order, tags, headings, etc.), since Typst has produced tagged PDFs by default since v0.14 — the PDF is structurally almost there, it's just never told to actually target the standard.
To Reproduce
rendercv render <any-cv>.yaml(any theme)verapdf -f ua1 <output>.pdfFAIL, clauses7.1-10and5-1Root cause
src/rendercv/renderer/pdf_png.py#L42(v2.8; unchanged onmain, same call now atpdf_png.py#L43):No
pdf_standardsargument is passed, even though thetypstPython binding (and Typst's own--pdf-standardCLI flag) supports one directly.Verified fix
Recompiling the same
.typoutput directly viatypst.Compiler(...).compile(..., pdf_standards=["ua-1"])(bypassing RenderCV) produces a PDF that passes veraPDF'sua1profile with 0 failed checks — no template or CV content changes needed.Suggested fix
Add an optional field to
RenderCommand(schema/models/settings/render_command.py), e.g.pdf_standards: list[str] | None, threaded through to thecompile()call inpdf_png.py.Environment
RenderCV 2.8 (
rendercv[full]), typst 0.15.0, Windows. Also reproduced onorigin/main(1d4b87bc, 2026-03-25) — same call, unchanged.