📦 EqualifyEverything / equalify-uic-analysis

📄 job_eq-449838.json · 1 lines
1{"_id": "685ad1ecc7195815bd412faa", "createdDate": "2025-06-24T16:27:24.240Z", "jobID": "eq-449838", "PDFresults": {"report": {"buildInformation": {"releaseDetails": [{"id": "core", "version": "1.28.1", "buildDate": 1745946180000}, {"id": "validation-model", "version": "1.28.1", "buildDate": 1745953500000}, {"id": "gui", "version": "1.28.1", "buildDate": 1748123640000}]}, "jobs": [{"itemDetails": {"name": "/home/pdf-worker/www/dist/scanners/fuel_cell_roadmap.pdf", "size": 442897}, "validationResult": [{"details": {"passedRules": 1706, "failedRules": 18, "passedChecks": 155722, "failedChecks": 51, "tags": ["annotation", "paragraph", "figure", "metadata", "alt-text", "syntax", "lang", "list", "structure", "font", "span"], "ruleSummaries": [{"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.20", "testNumber": 1, "status": "failed", "failedChecks": 7, "tags": ["annotation", "structure"], "description": "A link annotation and its associated content shall be enclosed in either a Link or Reference structure element", "object": "PDLinkAnnot", "test": "structParentStandardType == 'Link' || structParentStandardType == 'Reference'", "checks": [{"status": "failed", "context": "root/document[0]/pages[26](63 0 obj PDPage)/annots[0](65 0 obj PDLinkAnnot)", "errorMessage": "A Link annotation is an Artifact or is nested within null tag (standard type = null) instead of Link or Reference", "errorArguments": [null, null]}, {"status": "failed", "context": "root/document[0]/pages[26](63 0 obj PDPage)/annots[1](66 0 obj PDLinkAnnot)", "errorMessage": "A Link annotation is an Artifact or is nested within null tag (standard type = null) instead of Link or Reference", "errorArguments": [null, null]}, {"status": "failed", "context": "root/document[0]/pages[26](63 0 obj PDPage)/annots[2](67 0 obj PDLinkAnnot)", "errorMessage": "A Link annotation is an Artifact or is nested within null tag (standard type = null) instead of Link or Reference", "errorArguments": [null, null]}, {"status": "failed", "context": "root/document[0]/pages[26](63 0 obj PDPage)/annots[3](68 0 obj PDLinkAnnot)", "errorMessage": "A Link annotation is an Artifact or is nested within null tag (standard type = null) instead of Link or Reference", "errorArguments": [null, null]}, {"status": "failed", "context": "root/document[0]/pages[26](63 0 obj PDPage)/annots[4](69 0 obj PDLinkAnnot)", "errorMessage": "A Link annotation is an Artifact or is nested within null tag (standard type = null) instead of Link or Reference", "errorArguments": [null, null]}, {"status": "failed", "context": "root/document[0]/pages[27](76 0 obj PDPage)/annots[0](78 0 obj PDLinkAnnot)", "errorMessage": "A Link annotation is an Artifact or is nested within null tag (standard type = null) instead of Link or Reference", "errorArguments": [null, null]}, {"status": "failed", "context": "root/document[0]/pages[27](76 0 obj PDPage)/annots[1](79 0 obj PDLinkAnnot)", "errorMessage": "A Link annotation is an Artifact or is nested within null tag (standard type = null) instead of Link or Reference", "errorArguments": [null, null]}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Hn", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "StructTreeRoot shall not contain <Hn>", "object": "SEHn", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[0](2140 0 obj SEHn H2)", "errorMessage": "StructTreeRoot contains <Hn>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Document", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "StructTreeRoot shall contain exactly one <Document>", "object": "PDStructTreeRoot", "test": "kidsStandardTypes.split('&').filter(elem => elem == 'Document').length == 1", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)", "errorMessage": "StructTreeRoot either doesn't contain or contains more than one <Document>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.4.5.5.1", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["font"], "description": "The font programs for all fonts used for rendering within a conforming file shall be embedded within that file, as defined in ISO 32000-2:2020, 9.9", "object": "PDFont", "test": "Subtype == \"Type3\" || Subtype == \"Type0\" || renderingMode == 3 || containsFontFile == true", "checks": [{"status": "failed", "context": "root/document[0]/pages[0](2157 0 obj PDPage)/contentStream[0]/operators[108]/font[0](Times-Roman)", "errorMessage": "The font program is not embedded", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. LI-Span", "testNumber": 1, "status": "failed", "failedChecks": 2, "tags": ["list", "structure", "span"], "description": "<LI> shall not contain <Span>", "object": "SESpan", "test": "parentStandardType != 'LI'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[167](345 0 obj SEL L)/K[0](372 0 obj SEL L)/K[1](377 0 obj SELI LI)/K[0](378 0 obj SESpan StyleSpan)", "errorMessage": "<LI> contains <Span>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[167](345 0 obj SEL L)/K[0](372 0 obj SEL L)/K[1](377 0 obj SELI LI)/K[1](379 0 obj SESpan StyleSpan)", "errorMessage": "<LI> contains <Span>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Sect", "testNumber": 1, "status": "failed", "failedChecks": 2, "tags": ["structure"], "description": "StructTreeRoot shall not contain <Sect>", "object": "SESect", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[2](2150 0 obj SESect Sect)", "errorMessage": "StructTreeRoot contains <Sect>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)", "errorMessage": "StructTreeRoot contains <Sect>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Part", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "StructTreeRoot shall not contain <Part>", "object": "SEPart", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)", "errorMessage": "StructTreeRoot contains <Part>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.25", "testNumber": 1, "status": "failed", "failedChecks": 8, "tags": ["list", "structure"], "description": "If Lbl structure elements are present, the ListNumbering attribute shall be present on the respective L structure element; in such cases the value None shall not be used", "object": "SEL", "test": "containsLabels == false || ListNumbering != 'None'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[1](179 0 obj SEL L)/K[0](2107 0 obj SEL L)", "errorMessage": "List items contain Lbl structure elements, but the ListNumbering attribute is not present on the respective L structure element or it has value None", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[1](179 0 obj SEL L)/K[1](2108 0 obj SEL L)", "errorMessage": "List items contain Lbl structure elements, but the ListNumbering attribute is not present on the respective L structure element or it has value None", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[35](213 0 obj SEL L)", "errorMessage": "List items contain Lbl structure elements, but the ListNumbering attribute is not present on the respective L structure element or it has value None", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[168](346 0 obj SEL L)", "errorMessage": "List items contain Lbl structure elements, but the ListNumbering attribute is not present on the respective L structure element or it has value None", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[168](346 0 obj SEL L)/K[0](358 0 obj SEL L)", "errorMessage": "List items contain Lbl structure elements, but the ListNumbering attribute is not present on the respective L structure element or it has value None", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[170](348 0 obj SEL L)", "errorMessage": "List items contain Lbl structure elements, but the ListNumbering attribute is not present on the respective L structure element or it has value None", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[170](348 0 obj SEL L)/K[0](352 0 obj SEL L)", "errorMessage": "List items contain Lbl structure elements, but the ListNumbering attribute is not present on the respective L structure element or it has value None", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[170](348 0 obj SEL L)/K[1](353 0 obj SEL L)", "errorMessage": "List items contain Lbl structure elements, but the ListNumbering attribute is not present on the respective L structure element or it has value None", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "5", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["metadata"], "description": "The PDF/UA version of a file shall be specified in the value of the Metadata entry in the document catalog using the PDF/UA identification schema", "object": "MainXMPPackage", "test": "containsPDFUAIdentification == true", "checks": [{"status": "failed", "context": "root/document[0]/metadata[0](128 0 obj PDMetadata)/XMPPackage[0]", "errorMessage": "The document metadata stream doesn't contain PDF/UA Identification Schema", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.4.5.3.2", "testNumber": 1, "status": "failed", "failedChecks": 3, "tags": ["font"], "description": "All embedded Type 2 CIDFonts in the CIDFont dictionary shall contain a CIDToGIDMap entry that shall be a stream mapping from CIDs to glyph indices or the name Identity, as described in ISO 32000-2:2020, Table 115", "object": "PDCIDFont", "test": "Subtype != \"CIDFontType2\" || CIDToGIDMap != null || containsFontFile == false", "checks": [{"status": "failed", "context": "root/document[0]/pages[0](2157 0 obj PDPage)/contentStream[0]/operators[106]/font[0](BLIEHN+Wingdings-Regular)/DescendantFonts[0](BLIEHN+Wingdings-Regular)", "errorMessage": "A Type 2 CIDFont dictionary has missing or invalid CIDToGIDMap entry", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](2157 0 obj PDPage)/contentStream[0]/operators[210]/font[0](BLIEKB+SymbolMT)/DescendantFonts[0](BLIEKB+SymbolMT)", "errorMessage": "A Type 2 CIDFont dictionary has missing or invalid CIDToGIDMap entry", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[1](1 0 obj PDPage)/contentStream[0](2 0 obj PDSemanticContentStream)/operators[509]/font[0](BLIEBL+TimesNewRomanPSMT)/DescendantFonts[0](BLIEBL+TimesNewRomanPSMT)", "errorMessage": "A Type 2 CIDFont dictionary has missing or invalid CIDToGIDMap entry", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.4.5.6", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["font"], "description": "For every font embedded in a conforming file and referenced for rendering, the glyph width information in the font dictionary and in the embedded font program shall be consistent for every glyph", "object": "Glyph", "test": "renderingMode == 3 || widthFromFontProgram == null || widthFromDictionary == null || Math.abs(widthFromFontProgram - widthFromDictionary) <= 1", "checks": [{"status": "failed", "context": "root/document[0]/pages[0](2157 0 obj PDPage)/contentStream[0]/operators[435]/usedGlyphs[38](BLIEDL+TimesNewRomanPSMT BLIEDL+TimesNewRomanPSMT 173 0 764358458 0 true)", "errorMessage": "Glyph width 333.0078125 in the embedded font program is not consistent with the Widths entry of the font dictionary (value 0)", "errorArguments": ["333.0078125", "0"]}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.8", "testNumber": 2, "status": "failed", "failedChecks": 8, "tags": ["syntax"], "description": "All destinations whose target lies within the current document shall be structure destinations", "object": "PDGoToAction", "test": "containsStructDestination == true", "checks": [{"status": "failed", "context": "root/document[0]/OpenAction[0](2156 0 obj PDGoToAction)", "errorMessage": "Destination in GoTo action is not a structure destination", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/Outlines[0](outline 2197 0)/A[0](2198 0 obj PDGoToAction)", "errorMessage": "Destination in GoTo action is not a structure destination", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/Outlines[1](outline 2195 0)/A[0](2196 0 obj PDGoToAction)", "errorMessage": "Destination in GoTo action is not a structure destination", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/Outlines[2](outline 2194 0)/A[0](2207 0 obj PDGoToAction)", "errorMessage": "Destination in GoTo action is not a structure destination", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/Outlines[3](outline 2203 0)/A[0](2204 0 obj PDGoToAction)", "errorMessage": "Destination in GoTo action is not a structure destination", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/Outlines[4](outline 2205 0)/A[0](2206 0 obj PDGoToAction)", "errorMessage": "Destination in GoTo action is not a structure destination", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/Outlines[5](outline 2199 0)/A[0](2200 0 obj PDGoToAction)", "errorMessage": "Destination in GoTo action is not a structure destination", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/Outlines[6](outline 2201 0)/A[0](2202 0 obj PDGoToAction)", "errorMessage": "Destination in GoTo action is not a structure destination", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.2", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["structure"], "description": "The structure tree root shall contain a single Document structure element as its only child, as specified in ISO 32000-2:2020, Annex L and ISO/TS 32005", "object": "PDStructTreeRoot", "test": "kidsStandardTypes == 'Document'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)", "errorMessage": "The structure tree root contains H2,P,Sect,Sect element(s) instead of a single Document structure element", "errorArguments": ["H2,P,Sect,Sect"]}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.11.2", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["syntax"], "description": "The ViewerPreferences dictionary of the document catalog dictionary shall be present and shall contain at least the DisplayDocTitle key with a value of true, as described in ISO 32000-2:2020, Table 147", "object": "CosDocument", "test": "DisplayDocTitle == true", "checks": [{"status": "failed", "context": "root", "errorMessage": "ViewerPreferences dictionary is not present in the document Catalog, or DisplayDocTitle key is set to false or is not present in the ViewerPreferences dictionary (ViewerPreferences = null, DisplayDocTitle = null)", "errorArguments": [null, null]}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.25", "testNumber": 2, "status": "failed", "failedChecks": 6, "tags": ["list", "structure"], "description": "Any real content within an LI structure element that is not enclosed in an Lbl structure element shall be enclosed in an LBody structure element", "object": "SELI", "test": "hasContentItems == false", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[11](189 0 obj SEL L)/K[1](2072 0 obj SEL L)/K[1](2081 0 obj SELI LI)", "errorMessage": "The LI structure element contains real content as its direct child instead of enclosing it into Lbl or LBody structure elements", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[65](243 0 obj SEL L)/K[0](1865 0 obj SEL L)/K[1](1873 0 obj SELI LI)", "errorMessage": "The LI structure element contains real content as its direct child instead of enclosing it into Lbl or LBody structure elements", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[167](345 0 obj SEL L)/K[0](372 0 obj SEL L)/K[1](377 0 obj SELI LI)", "errorMessage": "The LI structure element contains real content as its direct child instead of enclosing it into Lbl or LBody structure elements", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[168](346 0 obj SEL L)/K[0](358 0 obj SEL L)/K[1](365 0 obj SELI LI)", "errorMessage": "The LI structure element contains real content as its direct child instead of enclosing it into Lbl or LBody structure elements", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[170](348 0 obj SEL L)/K[0](352 0 obj SEL L)/K[1](169 0 obj SELI LI)", "errorMessage": "The LI structure element contains real content as its direct child instead of enclosing it into Lbl or LBody structure elements", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[170](348 0 obj SEL L)/K[1](353 0 obj SEL L)/K[1](172 0 obj SELI LI)", "errorMessage": "The LI structure element contains real content as its direct child instead of enclosing it into Lbl or LBody structure elements", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-P", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["paragraph", "structure"], "description": "StructTreeRoot shall not contain <P>", "object": "SEP", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[1](2141 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.4.4", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["lang"], "description": "The default natural language for content and text strings shall be specified using the Lang entry, with a non-empty value, in the catalog dictionary", "object": "PDDocument", "test": "containsLang == true", "checks": [{"status": "failed", "context": "root/document[0]", "errorMessage": "Catalog dictionary does not contain Lang entry", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.28.2", "testNumber": 1, "status": "failed", "failedChecks": 5, "tags": ["figure", "alt-text", "structure"], "description": "A Figure structure element shall have at least one of the following properties: a) an alternate description (Alt property), as specified in ISO 32000-2:2020, 14.9.3; b) a replacement text (ActualText property) that represents the content enclosed by the Figure structure element", "object": "SEFigure", "test": "Alt != null || ActualText != null", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[132](310 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[134](312 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[137](315 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[139](317 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](132 0 obj PDStructTreeRoot)/K[0](133 0 obj SEPart Part)/K[3](177 0 obj SESect Sect)/K[141](319 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "errorArguments": []}]}]}, "jobEndStatus": "normal", "profileName": "PDF/UA-2 + Tagged PDF validation profile", "statement": "PDF file is not compliant with Validation Profile requirements.", "compliant": false}], "processingTime": {"start": 1750782437857, "finish": 1750782444046, "duration": "00:00:06.189", "difference": 6189}}], "batchSummary": {"duration": {"start": 1750782437490, "finish": 1750782444188, "duration": "00:00:06.698", "difference": 6698}, "totalJobs": 1, "outOfMemory": 0, "veraExceptions": 0, "failedEncryptedJobs": 0, "failedParsingJobs": 0, "validationSummary": {"nonCompliantPdfaCount": 1, "compliantPdfaCount": 0, "failedJobCount": 0, "totalJobCount": 1, "successfulJobCount": 1}, "featuresSummary": {"failedJobCount": 0, "totalJobCount": 0, "successfulJobCount": 0}, "repairSummary": {"failedJobCount": 0, "totalJobCount": 0, "successfulJobCount": 0}, "multiJob": false}}}}