← All updates

Fillable PDF forms — interactive AND tagged

Templates can ship real fillable AcroForm widgets — text fields, checkboxes, dropdowns — that stay interactive in Reader and Preview and remain tagged for PDF/UA-1 screen readers. Now documented across the docs, skill file, and homepage.

formsaccessibilitydsl

If you author a template with input(), checkbox(), or select(), the rendered PDF carries real AcroForm widgets — the fields stay interactive in Adobe Reader, Apple Preview, and any modern browser PDF viewer. The pipeline shipped a while back; what's new this update is that it's actually documented and discoverable.

Three builders

  • input(opts)/Tx text fields. Single- or multi-line, with maxLength and an accessible tooltip.
  • checkbox(opts)/Btn widgets with pre-baked on/off appearance streams. Pass label to render the box + text together.
  • select(opts)/Ch combo dropdowns. The appearance stream displays the currently selected option's label.

Field name must be unique across the document, and tooltip is the field's accessible name (/TU) — required for PDF/UA-1 conformance. Pair every form template with tagged: true on the doc(...) so the widgets land inside the structure tree.

Why this matters

Most form-capable PDF APIs don't tag form fields properly for accessibility, and most tagged-PDF APIs don't ship form fields at all. We have both. That combination — fillable + PDF/UA-1 tagged + freshly veraPDF-validated — is exactly the differentiation the compliance audience cares about: gov forms, healthcare consent, fintech KYC.

See it in action

A government-style consent form lives in the makesPDF repo at assets/samples/forms/consent-form-dsl.js, with the rendered output at assets/samples/forms/consent-form-render.pdf. That rendered PDF is also one of the fixtures in our per-release veraPDF gate: 153 PDF/A-2A rules + 106 PDF/UA-1 rules, zero failures.

The full reference for the three builders is now on /docs/api under "Fillable forms," and the skill file at /skills/pdf-template-author.md documents them under the Builder DSL Reference so any agent author can use them on the first try.

Out of scope (for now)

/Sig digital-signature fields, Acrobat-style JavaScript field calculations, and radio-button groups (model with a select instead).