RULE 5-1
MainXMPPackage
The PDF/UA version and conformance level of a file shall be specified using the PDF/UA Identification extension schema.
Error
The document metadata stream doesn't contain PDF/UA Identification Schema.
ISO 14289-1:2014 · Validation profile
Complete set of machine-checkable rules derived from the veraPDF validation profile for PDF/UA-1. Each rule maps to a specific clause of ISO 14289-1:2014 and defines the object type, the requirement, and the error message veraPDF emits on failure.
Each rule below specifies a structural or metadata constraint that a PDF/UA-1 conforming file must satisfy. Rule IDs match the veraPDF canonical numbering so cross-referencing validator output is direct. Scroll through to explore every check; or jump to the engine architecture to see how each rule maps to a pipeline stage.
32 clauses · click any header to expand the rules
5 rules
+ −
RULE 5-1
MainXMPPackage
The PDF/UA version and conformance level of a file shall be specified using the PDF/UA Identification extension schema.
Error
The document metadata stream doesn't contain PDF/UA Identification Schema.
RULE 5-2
PDFUAIdentification
The value of 'pdfuaid:part' shall be the part number of the International Standard to which the file conforms.
Error
The 'part' property of the PDF/UA Identification Schema is not 1 for PDF/UA-1 conforming file.
RULE 5-3
PDFUAIdentification
Property 'part' of the PDF/UA Identification Schema shall have namespace prefix 'pdfuaid'.
Error
Property 'part' of the PDF/UA Identification Schema has an invalid namespace prefix.
RULE 5-4
PDFUAIdentification
Property 'amd' of the PDF/UA Identification Schema shall have namespace prefix 'pdfuaid'.
Error
Property 'amd' of the PDF/UA Identification Schema has an invalid namespace prefix.
RULE 5-5
PDFUAIdentification
Property 'corr' of the PDF/UA Identification Schema shall have namespace prefix 'pdfuaid'.
Error
Property 'corr' of the PDF/UA Identification Schema has an invalid namespace prefix.
1 rule
+ −
RULE 6.1-1
CosDocument
The file header shall consist of '%PDF-1.n' followed by a single EOL marker, where 'n' is a single digit number between 0 and 7.
Error
A file header does not match the pattern %PDF-1.n, where 'n' is a single digit number between 0 and 7.
1 rule
+ −
RULE 6.2-1
CosDocument
The document catalog dictionary shall include a MarkInfo dictionary containing an entry, Marked, whose value shall be true.
Error
MarkInfo dictionary is not present in the document catalog, or Marked entry is set to false or is not present in the MarkInfo dictionary.
Ref: ISO 32000-1:2008, 14.7.1
12 rules
+ −
RULE 7.1-1
SEMarkedContent
Content marked as Artifact should not be present inside tagged content.
Error
Content marked as Artifact is present inside tagged content.
RULE 7.1-2
SEMarkedContent
Tagged content should not be present inside content marked as Artifact.
Error
Tagged content is present inside content marked as Artifact.
RULE 7.1-3
SESimpleContentItem
Content shall be marked as Artifact or tagged as real content.
Error
Content is neither marked as Artifact nor tagged as real content.
RULE 7.1-4
CosDocument
Files shall have a Suspects value of false.
Error
Suspects entry has a value of true.
Ref: ISO 32000-1:2008, 14.7.1
RULE 7.1-5
SENonStandard
All non-standard structure types shall be mapped to the nearest functionally equivalent standard type in the role map dictionary of the structure tree root.
Error
Non-standard structure type is not mapped to a standard type.
Ref: ISO 32000-1:2008, 14.8.4
RULE 7.1-6
PDStructElem
A circular mapping shall not exist.
Error
A circular mapping exists.
RULE 7.1-7
PDStructElem
Standard tags defined in ISO 32000-1:2008, 14.8.4, shall not be remapped.
Error
Standard type is remapped.
Ref: ISO 32000-1:2008, 14.8.4
RULE 7.1-8
PDDocument
The Catalog dictionary of a conforming file shall contain the Metadata key whose value is a metadata stream. The metadata stream dictionary shall contain entry Type with value /Metadata and entry Subtype with value /XML.
Error
The document catalog dictionary doesn't contain metadata key or metadata stream dictionary does not contain either entry Type with value /Metadata or entry Subtype with value /XML.
Ref: ISO 32000-1:2008, 14.3.2
RULE 7.1-9
MainXMPPackage
The Metadata stream in the document's catalog dictionary shall contain a title entry.
Error
Metadata stream does not contain title.
RULE 7.1-10
CosDocument
The document catalog dictionary shall include a ViewerPreferences dictionary containing a DisplayDocTitle key, whose value shall be true.
Error
ViewerPreferences dictionary is not present in the document Catalog, or DisplayDocTitle key is set to false or is not present in the ViewerPreferences dictionary.
RULE 7.1-11
PDDocument
The logical structure of the conforming file shall be described by a structure hierarchy rooted in the StructTreeRoot entry of the document's Catalog dictionary.
Error
StructTreeRoot entry is not present in the document catalog.
Ref: ISO 32000-1:2008, 14.7
RULE 7.1-12
PDStructElem
A structure element dictionary shall contain the P (parent) entry.
Error
A structure element dictionary does not contain the P (parent) entry.
Ref: ISO 32000-1:2008, 14.7.2, Table 355
41 rules
+ −
RULE 7.2-2
PDOutline
Natural language in the Outline entries shall be determined.
Error
Natural language in the Outline entries cannot be determined.
RULE 7.2-3
SETable
Table element may contain only TR, THead, TBody, TFoot and Caption elements.
Error
Table element contains element(s) different from TR, THead, TBody, TFoot or Caption.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-4
SETR
TR element should be contained in Table, THead, TBody or TFoot element.
Error
TR element not contained in Table, THead, TBody and TFoot element.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-5
SETHead
THead element should be contained in Table element.
Error
THead element not contained in Table element.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-6
SETBody
TBody element should be contained in Table element.
Error
TBody element not contained in Table element.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-7
SETFoot
TFoot element should be contained in Table element.
Error
TFoot element not contained in Table element.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-8
SETH
TH element should be contained in TR element.
Error
TH element not contained in TR element.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-9
SETD
TD element should be contained in TR element.
Error
TD element not contained in TR element.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-10
SETR
TR element may contain only TH and TD elements.
Error
TR element contains not a TH or TD elements.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-11
SETable
Table element should contain zero or one THead kid.
Error
Table element contains more than one THead kid.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-12
SETable
Table element should contain zero or one TFoot kid.
Error
Table element contains more than one TFoot kid.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-13
SETable
If Table element contains TFoot kid, Table element should contain one or more TBody kids.
Error
Table element contains TFoot kid, but does not contain TBody kids.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-14
SETable
If Table element contains THead kid, Table element should contain one or more TBody kids.
Error
Table element contains THead kid, but does not contain TBody kids.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-15
SETableCell
A table cell shall not have intersection with other cells.
Error
Table cell has intersection with other cells.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-16
SETable
Table element may contain a Caption element as its first or last kid.
Error
Table element contains Caption not as its first or last child.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-17
SELI
LI element should be contained in L element.
Error
LI element not contained in L element.
Ref: ISO 32000-1:2008, 14.8.4.3.3
RULE 7.2-18
SELBody
LBody element should be contained in LI element.
Error
LBody element not contained in LI element.
Ref: ISO 32000-1:2008, 14.8.4.3.3
RULE 7.2-19
SEL
L element may contain only L, LI and Caption elements.
Error
L element contains element(s) different from L, LI or Caption.
Ref: ISO 32000-1:2008, 14.8.4.3.3
RULE 7.2-20
SELI
LI element may contain only Lbl and LBody elements.
Error
LI element contains not a Lbl or LBody elements.
Ref: ISO 32000-1:2008, 14.8.4.3.3
RULE 7.2-21
PDStructElem
Natural language for text in ActualText attribute shall be determined.
Error
Natural language for text in ActualText attribute cannot be determined.
RULE 7.2-22
PDStructElem
Natural language for text in Alt attribute shall be determined.
Error
Natural language for text in Alt attribute cannot be determined.
RULE 7.2-23
PDStructElem
Natural language for text in E attribute shall be determined.
Error
Natural language for text in E attribute cannot be determined.
RULE 7.2-24
PDAnnot
Natural language in the Contents entry for annotations shall be determined.
Error
Natural language in the Contents entry for annotations cannot be determined.
RULE 7.2-25
PDFormField
Natural language in the TU key for form fields shall be determined.
Error
Natural language in the TU key for form fields cannot be determined.
RULE 7.2-26
SETOCI
TOCI element should be contained in TOC element.
Error
TOCI element not contained in TOC element.
Ref: ISO 32000-1:2008, 14.8.4.2
RULE 7.2-27
SETOC
TOC element may contain only TOC, TOCI and Caption elements.
Error
TOC element contains element(s) different from TOC, TOCI or Caption.
Ref: ISO 32000-1:2008, 14.8.4.2
RULE 7.2-28
SETOC
TOC element may contain a Caption element only as its first kid.
Error
TOC element contains Caption child not as its first one.
Ref: ISO 32000-1:2008, 14.8.4.2
RULE 7.2-29
CosLang
If the Lang entry is present, its value shall be a language identifier as described in ISO 32000-1:2008, 14.9.2 (Language-Tag per RFC 3066).
Error
Value of the Lang entry is not a Language-Tag.
Ref: ISO 32000-1:2008, 14.9.2, RFC 3066, 2.1
RULE 7.2-30
SEMarkedContent
Natural language for text in ActualText attribute in Span Marked Content shall be determined.
Error
Natural language for text in ActualText attribute in Span Marked Content cannot be determined.
RULE 7.2-31
SEMarkedContent
Natural language for text in Alt attribute in Span Marked Content shall be determined.
Error
Natural language for text in Alt attribute in Span Marked Content cannot be determined.
RULE 7.2-32
SEMarkedContent
Natural language for text in E attribute in Span Marked Content shall be determined.
Error
Natural language for text in E attribute in Span Marked Content cannot be determined.
RULE 7.2-33
XMPLangAlt
Natural language for document metadata shall be determined.
Error
Natural language for document metadata cannot be determined.
RULE 7.2-34
SETextItem
Natural language for text in page content shall be determined.
Error
Natural language for text in page content cannot be determined.
RULE 7.2-36
SETHead
THead element may contain only TR elements.
Error
THead element contains not a TR elements.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-37
SETBody
TBody element may contain only TR elements.
Error
TBody element contains not a TR elements.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-38
SETFoot
TFoot element may contain only TR elements.
Error
TFoot element contains not a TR elements.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-39
SETable
Table element may contain only one Caption element.
Error
Table element contains several Caption elements instead of one.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-40
SEL
L element may contain a Caption element only as its first kid.
Error
L element contains Caption child not as its first one.
Ref: ISO 32000-1:2008, 14.8.4.2
RULE 7.2-41
SETable
Table columns shall have the same number of rows (taking into account row spans).
Error
Some table columns span different number of rows.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-42
SETable
Table rows shall have the same number of columns (taking into account column spans).
Error
Some table rows span different number of columns.
Ref: ISO 32000-1:2008, 14.8.4.3.4
RULE 7.2-43
SETable
Table rows shall have the same number of columns (taking into account column spans).
Error
Some table rows span different number of columns.
Ref: ISO 32000-1:2008, 14.8.4.3.4
1 rule
+ −
RULE 7.3-1
SEFigure
Figure tags shall include an alternative representation or replacement text that represents the contents marked with the Figure tag.
Error
Figure structure element neither has an alternate description nor a replacement text.
Ref: ISO 32000-1:2008, 14.7.2
1 rule
+ −
RULE 7.4.2-1
SEHn
For non-strongly-structured documents, heading tags shall be used with H1 first, descending sequences shall proceed in strict numerical order without skipping levels.
Error
A heading level is skipped in a descending sequence of header levels.
Ref: ISO 32000-1:2008, 14.8.4.3.5
3 rules
+ −
RULE 7.4.4-1
PDStructElem
Each node in the tag tree shall contain at most one child H tag.
Error
A node contains more than one H tag.
RULE 7.4.4-2
SEH
All documents shall be either strongly or weakly structured, but not both.
Error
Document uses both H and H# tags.
RULE 7.4.4-3
SEHn
All documents shall be either strongly or weakly structured, but not both.
Error
Document uses both H and H# tags.
2 rules
+ −
RULE 7.5-1
SETD
If the table's structure is not determinable via Headers and IDs, then structure elements of type TH shall have a Scope attribute.
Error
TD does not contain Headers attribute, and Headers for this table cell can not be determined via algorithm from ISO 32000-2, 14.8.4.8.3.
Ref: ISO 32000-2, 14.8.4.8.3
RULE 7.5-2
SETD
If the table's structure is not determinable via Headers and IDs, then structure elements of type TH shall have a Scope attribute.
Error
TD references undefined Header(s), and Headers for this table cell can not be determined via algorithm from ISO 32000-2, 14.8.4.8.3.
Ref: ISO 32000-2, 14.8.4.8.3
1 rule
+ −
RULE 7.7-1
SEFormula
All mathematical expressions shall be enclosed within a Formula tag and shall have Alt or ActualText attributes.
Error
Formula structure element neither has an alternate description nor a replacement text.
Ref: ISO 32000-1:2008, 14.8.4.5
2 rules
+ −
RULE 7.9-1
SENote
Note tag shall have ID entry.
Error
ID key of the Note tag is not present.
RULE 7.9-2
SENote
Each Note tag shall have unique ID key.
Error
ID key of the Note tag is non-unique.
2 rules
+ −
RULE 7.10-1
PDOCConfig
Each optional content configuration dictionary that forms the value of the D key, or an element in the Configs array, shall contain the Name key.
Error
Missing or empty Name entry of the optional content configuration dictionary.
RULE 7.10-2
PDOCConfig
The AS key shall not appear in any optional content configuration dictionary.
Error
AS key is present in the optional content configuration dictionary.
1 rule
+ −
RULE 7.11-1
CosFileSpecification
The file specification dictionary for an embedded file shall contain the non-empty F and UF keys.
Error
The file specification dictionary for an embedded file does not contain either F or EF key or at least one of the keys is empty.
1 rule
+ −
RULE 7.15-1
PDAcroForm
Dynamic XFA forms shall not be used.
Error
Dynamic XFA forms is present.
1 rule
+ −
RULE 7.16-1
PDEncryption
An encrypted conforming file shall contain a P key in its encryption dictionary and the 10th bit position of the P key shall be true.
Error
The file is encrypted but does not contain a P entry in its encryption dictionary, or the 10th bit position of the P entry is false.
Ref: ISO 32000-1:2008, 7.6.3.2
3 rules
+ −
RULE 7.18.1-1
PDAnnot
An annotation, excluding annotations of subtype Widget, PrinterMark or Link, shall be nested within an Annot tag.
Error
An annotation, excluding annotations of subtype Widget, PrinterMark or Link, is an Artifact or is not nested within an Annot tag.
RULE 7.18.1-2
PDAnnot
An annotation (except Widget or hidden annotations, or those outside the crop-box) shall have either Contents key or an Alt entry in the enclosing structure element.
Error
An annotation whose hidden flag is not set and whose rectangle is not outside the crop-box has neither Contents key nor an Alt entry in the enclosing structure element.
RULE 7.18.1-3
PDWidgetAnnot
A form field shall have a TU key present or all its Widget annotations shall have alternative descriptions (Alt entry in the enclosing structure elements).
Error
A form field neither has TU key nor its Widget annotations have alternative descriptions.
1 rule
+ −
RULE 7.18.2-1
PDTrapNetAnnot
Annotations of subtype TrapNet shall not be permitted.
Error
An annotation of subtype TrapNet exists.
1 rule
+ −
RULE 7.18.3-1
PDPage
Every page on which there is an annotation shall contain in its page dictionary the key Tabs, and its value shall be S.
Error
A page with annotation(s) does not contain a Tabs key or has a Tabs key with a value other than S.
2 rules
+ −
RULE 7.18.4-1
PDWidgetAnnot
A Widget annotation shall be nested within a Form tag.
Error
A widget annotation is an Artifact or is not nested within a Form tag.
Ref: ISO 32000-1:2008, 14.8.4.5
RULE 7.18.4-2
SEForm
If the Form element omits a Role attribute, it shall have only one child: an object reference identifying the widget annotation.
Error
The Form element omits a Role attribute and doesn't have only one child identifying the widget annotation.
Ref: ISO 32000-1:2008, 14.8.4.5
2 rules
+ −
RULE 7.18.5-1
PDLinkAnnot
Links shall be tagged according to ISO 32000-1:2008, 14.8.4.4.2, Link Element.
Error
A link annotation is an Artifact or is not nested within a Link tag.
Ref: ISO 32000-1:2008, 14.8.4.4.2
RULE 7.18.5-2
PDLinkAnnot
Links shall contain an alternate description via their Contents key.
Error
A link annotation does not include an alternate description in the Contents Key.
Ref: ISO 32000-1:2008, 14.9.3
2 rules
+ −
RULE 7.18.6.2-1
PDMediaClip
In the media clip data dictionary, the optional CT key is required.
Error
CT key is missing from the media clip data dictionary.
Ref: ISO 32000-1:2008, 13.2.4.2, Table 274
RULE 7.18.6.2-2
PDMediaClip
In the media clip data dictionary, the optional Alt key is required.
Error
Alt key is missing from the media clip data dictionary.
Ref: ISO 32000-1:2008, 13.2.4.2, Table 274
1 rule
+ −
RULE 7.18.8-1
PDPrinterMarkAnnot
PrinterMark annotations, if present, shall be considered Incidental Artifacts.
Error
A PrinterMark annotation is included in logical structure.
Ref: ISO 32000-1:2008, 14.8.2.2.3
2 rules
+ −
RULE 7.20-1
PDXForm
A conforming file shall not contain any reference XObjects.
Error
The document contains a reference XObject (Ref key in the form XObject dictionary).
RULE 7.20-2
PDXForm
The content of Form XObjects shall be incorporated into structure elements.
Error
Form XObject contains MCIDs and is referenced more than once.
Ref: ISO 32000-1:2008, 14.7.2
1 rule
+ −
RULE 7.21.3.1-1
PDType0Font
For composite (Type 0) fonts, the CIDSystemInfo entry in its CIDFont dictionary and its Encoding dictionary shall be compatible per the rules for Identity-H/V or matching Registry/Ordering/Supplement.
Error
CIDSystemInfo entries the CIDFont and CMap dictionaries of a Type 0 font are not compatible.
1 rule
+ −
RULE 7.21.3.2-1
PDCIDFont
All embedded Type 2 CIDFonts shall contain a CIDToGIDMap entry that is a stream mapping from CIDs to glyph indices or the name Identity.
Error
A Type 2 CIDFont dictionary has missing or invalid CIDToGIDMap entry.
Ref: ISO 32000-1:2008, 9.7.4, Table 117
3 rules
+ −
RULE 7.21.3.3-1
PDCMap
All CMaps used within a PDF/UA file, except those listed in ISO 32000-1:2008, 9.7.5.2, Table 118, shall be embedded.
Error
A non-standard CMap is not embedded.
Ref: ISO 32000-1:2008, 9.7.5.2, Table 118
RULE 7.21.3.3-2
CMapFile
For embedded CMaps, the WMode entry in the CMap dictionary shall be identical to the WMode value in the embedded CMap stream.
Error
WMode entry in the embedded CMap and in the CMap dictionary are not identical.
RULE 7.21.3.3-3
PDReferencedCMap
A CMap shall not reference any other CMap except those listed in ISO 32000-1:2008, 9.7.5.2, Table 118.
Error
A CMap references another non-standard CMap.
Ref: ISO 32000-1:2008, 9.7.5.2, Table 118
2 rules
+ −
RULE 7.21.4.1-1
PDFont
The font programs for all fonts used for rendering within a conforming file shall be embedded within that file.
Error
The font program is not embedded.
Ref: ISO 32000-1:2008, 9.9
RULE 7.21.4.1-2
Glyph
Embedded fonts shall define all glyphs referenced for rendering within the conforming file.
Error
Not all glyphs referenced for rendering are present in the embedded font program.
Ref: ISO 32000-1:2008, 9.6.6.4
2 rules
+ −
RULE 7.21.4.2-1
PDType1Font
If the FontDescriptor dictionary of an embedded Type 1 font contains a CharSet string, then it shall list the character names of all glyphs present in the font program.
Error
A CharSet entry in the Descriptor dictionary of a Type1 font incorrectly lists glyphs present in the font program.
RULE 7.21.4.2-2
PDCIDFont
If the FontDescriptor dictionary of an embedded CID font contains a CIDSet stream, then it shall identify all CIDs which are present in the font program.
Error
A CIDSet entry in the Font descriptor does not correctly identify all glyphs present in the embedded font subset.
1 rule
+ −
RULE 7.21.5-1
Glyph
For every font embedded in a conforming file and used for rendering, the glyph width information in the font dictionary and in the embedded font program shall be consistent.
Error
Glyph width information in the embedded font program is not consistent with the Widths entry of the font dictionary.
4 rules
+ −
RULE 7.21.6-1
TrueTypeFontProgram
For all non-symbolic TrueType fonts used for rendering, the embedded TrueType font program shall contain one or several non-symbolic cmap entries.
Error
The embedded font program for a non-symbolic TrueType font does not contain non-symbolic cmap entries.
RULE 7.21.6-2
PDTrueTypeFont
All non-symbolic TrueType fonts shall have either MacRomanEncoding or WinAnsiEncoding as the Encoding value. Differences arrays shall only use glyph names from the Adobe Glyph List.
Error
A non-symbolic TrueType font encoding does not define a correct mapping to the Adobe Glyph List.
RULE 7.21.6-3
PDTrueTypeFont
Symbolic TrueType fonts shall not contain an Encoding entry in the font dictionary.
Error
A symbolic TrueType font specifies an Encoding entry in its dictionary.
RULE 7.21.6-4
TrueTypeFontProgram
The 'cmap' table in the embedded font program for a symbolic TrueType font shall contain either exactly one encoding or at least the Microsoft Symbol (3,0) encoding.
Error
The embedded font program for a symbolic TrueType font contains more than one cmap subtable.
2 rules
+ −
RULE 7.21.7-1
Glyph
The Font dictionary of all fonts shall define the map of all used character codes to Unicode values, either via a ToUnicode entry or other mechanisms as defined in ISO 14289-1, 7.21.7.
Error
The glyph can not be mapped to Unicode.
Ref: ISO 14289-1:2014, 7.21.7
RULE 7.21.7-2
Glyph
The Unicode values specified in the ToUnicode CMap shall all be greater than zero, but not equal to either U+FEFF or U+FFFE.
Error
The glyph has an invalid Unicode value, which is either 0, or is equal to U+FEFF or U+FFFE.
1 rule
+ −
RULE 7.21.8-1
Glyph
A PDF/UA compliant document shall not contain a reference to the .notdef glyph from any of the text showing operators, in any content stream.
Error
The document contains a reference to the .notdef glyph.
← Engine
Seven-stage pipeline, verified fixes (B1–B17), disclosed limitations, and the stage-by-stage rules each stage addresses.
Sideways reference
All 86 success criteria across 4 principles and 13 guidelines, with level and version labels. The other standard the engine validates against.
Open reference →
source: veraPDF validation profiles — ISO 14289-1:2014 (PDF/UA-1).