📦 EqualifyEverything / equalify-uic-analysis

📄 job_eq-449885.json · 1 lines
1{"_id": "685ad242eb03a9e478ff5248", "createdDate": "2025-06-24T16:28:50.704Z", "jobID": "eq-449885", "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/PDF_upload_guide.pdf", "size": 314180}, "validationResult": [{"details": {"passedRules": 1710, "failedRules": 14, "passedChecks": 22284, "failedChecks": 46, "tags": ["paragraph", "figure", "metadata", "alt-text", "text", "list", "structure", "font"], "ruleSummaries": [{"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.2.5.25", "testNumber": 2, "status": "failed", "failedChecks": 5, "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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[13](424 0 obj SESect Sect)/K[5](425 0 obj SEL L)/K[0](426 0 obj SEL L)/K[1](414 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[13](424 0 obj SESect Sect)/K[5](425 0 obj SEL L)/K[0](426 0 obj SEL L)/K[2](416 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[13](424 0 obj SESect Sect)/K[5](425 0 obj SEL L)/K[0](426 0 obj SEL L)/K[3](417 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[14](137 0 obj SESect Sect)/K[1](135 0 obj SEL L)/K[4](175 0 obj SEL L)/K[1](180 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[14](137 0 obj SESect Sect)/K[7](144 0 obj SEL L)/K[1](150 0 obj SEL L)/K[1](155 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 14289-2:2024", "clause": "8.2.5.25", "testNumber": 1, "status": "failed", "failedChecks": 2, "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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[13](424 0 obj SESect Sect)/K[5](425 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[13](424 0 obj SESect Sect)/K[5](425 0 obj SEL L)/K[0](426 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": "8.2.5.28.2", "testNumber": 1, "status": "failed", "failedChecks": 8, "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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[13](424 0 obj SESect Sect)/K[4](411 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[13](424 0 obj SESect Sect)/K[5](425 0 obj SEL L)/K[0](426 0 obj SEL L)/K[2](416 0 obj SELI LI)/K[0](415 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[14](137 0 obj SESect Sect)/K[2](139 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[14](137 0 obj SESect Sect)/K[3](140 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[14](137 0 obj SESect Sect)/K[4](141 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[14](137 0 obj SESect Sect)/K[5](142 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[14](137 0 obj SESect Sect)/K[6](143 0 obj SEP P)/K[0](161 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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[14](137 0 obj SESect Sect)/K[8](145 0 obj SEFigure Figure)", "errorMessage": "Figure structure element neither has an alternate description nor a replacement text", "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](32 0 obj PDMetadata)/XMPPackage[0]", "errorMessage": "The document metadata stream doesn't contain PDF/UA Identification Schema", "errorArguments": []}]}, {"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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[0](487 0 obj SEHn H2)", "errorMessage": "StructTreeRoot contains <Hn>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-L", "testNumber": 1, "status": "failed", "failedChecks": 3, "tags": ["list", "structure"], "description": "StructTreeRoot shall not contain <L>", "object": "SEL", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[3](481 0 obj SEL L)", "errorMessage": "StructTreeRoot contains <L>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[5](472 0 obj SEL L)", "errorMessage": "StructTreeRoot contains <L>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[8](225 0 obj SEL L)", "errorMessage": "StructTreeRoot contains <L>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 14289-2:2024", "clause": "8.4.3", "testNumber": 1, "status": "failed", "failedChecks": 10, "tags": ["alt-text", "text"], "description": "In all cases, where real content maps to Unicode PUA values, an ActualText or Alt entry shall be present", "object": "Glyph", "test": "isRealContent == false || unicodePUA == false || actualTextPresent == true || altPresent == true", "checks": [{"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[493]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 535352603 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[607]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 843959601 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[653]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 758465579 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[747]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 1167327028 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[890]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 1478334108 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[1280]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 1481751887 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[1564]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 402978317 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[1705]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 1417554340 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[1907]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 596333086 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/pages[0](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[2105]/usedGlyphs[0](HOIIBD+SymbolMT HOIIBD+SymbolMT 120 0 1485485458 0 true)", "errorMessage": "Real content maps to Unicode PUA values, but ActualText and Alt entry are not present", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-Sect", "testNumber": 1, "status": "failed", "failedChecks": 3, "tags": ["structure"], "description": "StructTreeRoot shall not contain <Sect>", "object": "SESect", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[12](199 0 obj SESect Sect)", "errorMessage": "StructTreeRoot contains <Sect>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[13](424 0 obj SESect Sect)", "errorMessage": "StructTreeRoot contains <Sect>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[14](137 0 obj SESect Sect)", "errorMessage": "StructTreeRoot contains <Sect>", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. LI-Figure", "testNumber": 1, "status": "failed", "failedChecks": 1, "tags": ["figure", "list", "structure"], "description": "<LI> shall not contain <Figure>", "object": "SEFigure", "test": "parentStandardType != 'LI'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[13](424 0 obj SESect Sect)/K[5](425 0 obj SEL L)/K[0](426 0 obj SEL L)/K[2](416 0 obj SELI LI)/K[0](415 0 obj SEFigure Figure)", "errorMessage": "<LI> contains <Figure>", "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](108 0 obj PDStructTreeRoot)", "errorMessage": "StructTreeRoot either doesn't contain or contains more than one <Document>", "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](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)", "errorMessage": "StructTreeRoot contains <Part>", "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](48 0 obj PDPage)/contentStream[0](219 0 obj PDSemanticContentStream)/operators[268]/font[0](Times-Roman)", "errorMessage": "The font program is not embedded", "errorArguments": []}]}, {"ruleStatus": "FAILED", "specification": "ISO 32005:2023", "clause": "Table 5. StructTreeRoot-P", "testNumber": 1, "status": "failed", "failedChecks": 8, "tags": ["paragraph", "structure"], "description": "StructTreeRoot shall not contain <P>", "object": "SEP", "test": "parentStandardType != 'StructTreeRoot'", "checks": [{"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[1](440 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[2](441 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[4](450 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[6](459 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[7](460 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[9](462 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[10](467 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "errorArguments": []}, {"status": "failed", "context": "root/document[0]/StructTreeRoot[0](108 0 obj PDStructTreeRoot)/K[0](111 0 obj SEPart Part)/K[11](466 0 obj SEP P)", "errorMessage": "StructTreeRoot contains <P>", "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](108 0 obj PDStructTreeRoot)", "errorMessage": "The structure tree root contains H2,P,P,L,P,L,P,P,L,P,P,P,Sect,Sect,Sect element(s) instead of a single Document structure element", "errorArguments": ["H2,P,P,L,P,L,P,P,L,P,P,P,Sect,Sect,Sect"]}]}]}, "jobEndStatus": "normal", "profileName": "PDF/UA-2 + Tagged PDF validation profile", "statement": "PDF file is not compliant with Validation Profile requirements.", "compliant": false}], "processingTime": {"start": 1750782528219, "finish": 1750782530549, "duration": "00:00:02.330", "difference": 2330}}], "batchSummary": {"duration": {"start": 1750782528041, "finish": 1750782530655, "duration": "00:00:02.614", "difference": 2614}, "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}}}}