← Back to all articles

Accessibilità PDF/UA-1, attiva di default, via API

SealDoc Team · · 5 min read

La Direttiva Europea sull’Accessibilità (Direttiva 2019/882) è in vigore dal 28 giugno 2025. Non è più un argomento “ce ne occuperemo dopo”. Banche, telco, aziende e-commerce con fatturato superiore a 10 M€, portali del settore pubblico e fornitori di media audiovisivi devono fornire ogni PDF destinato ai clienti in una forma navigabile da un utente di lettore di schermo. Le sanzioni variano per stato membro ma raggiungono i 100 000 € per infrazione in NL e DE. La direttiva rinvia a EN 301 549, che rinvia a ISO 14289-1, ovvero PDF/UA-1.

SealDoc produce archivi PDF/A-3 da due anni. Aggiungere PDF/UA-1 alla stessa uscita era da tempo nella roadmap; il mandato UE l’ha spostato da “utile” a “portante per il nostro posizionamento di compliance”. Da oggi, ogni documento che SealDoc genera può uscire come un ibrido PDF/A-3u taggato e accessibile ai lettori di schermo, inviando un campo aggiuntivo nella richiesta.

Cosa cambia

POST /api/documents/generate e POST /api/invoices/generate ora accettano un campo accessibilityLevel. Il valore di default è "None", che preserva l’output byte-esatto del flusso esistente. Impostatelo a "PdfUa1" e il convertitore cambia percorso: export PDF taggato con albero di struttura, identificatore di metadati PDF/UA-1, e un controllo post-volo veraPDF contro ISO 14289-1.

POST /api/invoices/generate HTTP/1.1
Host: api.sealdoc.eu
X-Api-Key: ...
Content-Type: application/json

{
  "seller": { "name": "FeFem Holding B.V.", "vatNumber": "NL000000000B01", ... },
  "buyer": { "name": "Acme Corp", ... },
  "invoiceNumber": "INV-2026-001",
  "invoiceDate": "2026-05-07",
  "currency": "EUR",
  "vatRate": 0.22,
  "vatLabel": "22% IVA",
  "lines": [ ... ],
  "accessibilityLevel": "PdfUa1"
}

La risposta è la stessa forma jobId che già conoscete. Il PDF che potete poi scaricare ha un albero di struttura, testi alternativi dove pertinenti, intestazioni di tabella correttamente taggate e un attributo di lingua. Un lettore di schermo che lo percorre annuncia “Fattura 2026-001. Cliente: Acme Corp. Subtotale: 1750 euro” invece di “Fattura 2026 001 Acme Corp 1750”.

Cosa abbiamo misurato

Prima di attivare il flag, abbiamo fatto passare un corpus di 12 documenti attraverso la nuova pipeline e validato ogni output contro verapdf -f ua1. Il corpus copre documenti minimali, fatture semplici e complesse, paragrafi multilingue, contenuto ricco di Unicode, intestazioni profondamente annidate, tabelle senza intestazioni, tabelle con intestazioni corrette, liste annidate e un documento lungo da 50 sezioni.

Risultati: 8 documenti su 12 hanno superato tutte le 106 regole ISO 14289-1. I 4 rimanenti hanno superato 105 su 106 con lo stesso unico fallimento (clausola 7.4.2, annidamento delle intestazioni), causato dall’importatore HTML di LibreOffice che promuove il primo <h1> a metadato Title del documento. Il nostro template di fattura in InvoiceHtmlBuilder usa paragrafi stilizzati invece di una miscela di intestazioni <h1>/<h2>, quindi quel caso non si applica. Una fattura rappresentativa ottiene 106/106 nella nuova pipeline con 2778 controlli veraPDF individuali tutti superati.

Perché conta strategicamente

La Direttiva Europea sull’Accessibilità è il tipo di regolamentazione che crea finestre d’acquisto da panico. I responsabili compliance stanno cercando attivamente ora, la maturità dei fornitori è disomogenea, e la maggior parte delle opzioni esistenti sono strumenti desktop (axesPDF Quickfix), librerie Java con licenza enterprise (iText con il modulo Pdf/UA), o servizi di remediation manuale fatturati a documento. Nessuna di queste è API-first, nessuna produce un ibrido PDF/A-3 + PDF/UA-1 nella stessa chiamata, e nessuna è sovrana UE per costruzione.

Abbiamo costruito la nostra versione sull’export PDF taggato nativo di LibreOffice e sul validatore Universal Accessibility open source di veraPDF. Nessuna libreria commerciale è coinvolta. Il costo infrastrutturale marginale rispetto alla nostra pipeline PDF/A-3 esistente è trascurabile. Possiamo consegnare questo ai nostri prezzi esistenti senza impatto sul margine.

Cosa è in scope e cosa no

In scope: documenti e fatture che SealDoc genera direttamente dal vostro input strutturato (Markdown, HTML o JSON di fattura). La struttura del template è sotto il nostro controllo, il percorso di conversione è sotto il nostro controllo, e possiamo garantire la qualità dell’output.

Non ancora in scope: auto-remediation di PDF arbitrari caricati. Prendere una brochure di 30 pagine creata da un grafico in InDesign cinque anni fa e dedurne la struttura semantica da euristiche di layout è un problema di ricerca di più mesi con qualità di output incerta. Non promettiamo ciò che non possiamo consegnare. Se ne avete bisogno: contattateci, ci sono integrazioni partner che hanno senso qui.

Livello di piano

PDF/UA-1 è una funzionalità Growth-e-superiori (slug pdf_ua nel set di funzionalità del vostro piano). I livelli Developer e Starter continuano a ricevere PDF/A-3 non taggati di default. Il flag viene rifiutato con un 402 Payment Required se il vostro piano non lo include, con il target di upgrade nominato nella risposta in modo che il vostro SDK client possa rimandare alla pagina corretta.

Se siete su Starter e un cliente enterprise vi chiede fatture accessibili: è una conversazione Growth, e la facciamo volentieri.

Validarlo voi stessi

Ogni output PDF/UA-1 di SealDoc supera lo stesso validatore verapdf -f ua1 che gli Stati membri UE citano nei loro audit di compliance. Scaricate un PDF generato, eseguite veraPDF localmente, e vedrete la stessa riga passedRules="106" failedRules="0" che pubblichiamo nei nostri benchmark interni. Non vi chiediamo di prendere la rivendicazione di marketing sulla fiducia; il validatore è open source, la norma è pubblicata da ISO, e l’output è binario-riproducibile per richiesta.

Sprint 53 consegna PDF/UA-1 oggi. Sprint 53 era stimato a sei giorni e mezzo di lavoro ingegneristico. Siamo rimasti sotto budget perché la pipeline di conversione esistente faceva già la maggior parte del lavoro; la rivendicazione di marketing “l’unica API sovrana UE che consegna Factur-X 1.0 più PDF/UA-1 in una singola chiamata” è ora effettivamente vera e validata.


← Back to all articles