https://bugs.documentfoundation.org/show_bug.cgi?id=152234
Bug ID: 152234 Summary: FILESAVE PDF PAC tool reports "Widget annotation not nested inside a Form structure element" with form objects Product: LibreOffice Version: 7.5.0.0 alpha0+ Master Hardware: All OS: All Status: UNCONFIRMED Severity: normal Priority: medium Component: Printing and PDF export Assignee: libreoffice-bugs@lists.freedesktop.org Reporter: kelem...@ubuntu.com Blocks: 139007 Created attachment 183804 --> https://bugs.documentfoundation.org/attachment.cgi?id=183804&action=edit Example file with all form controls from Writer When the attached file with all Writer Form controls is exported to PDF with PDF/UA enabled and the file is checked in the PAC tool, the reported error is "Widget annotation not nested inside a Form structure element" 1, Open attached file 2, Export it as PDF, with enabled PDF/UA option 3, Check with the PAC tool: https://pdfua.foundation/en/pdf-accessibility-checker-pac PAC would report the error on the attached screenshot. VeraPDF https://demo.verapdf.org/ with PDF/UA setting on the second page, reports: Validation information Rule Status Specification: ISO 14289-1:2014, Clause: 7.18.1, Test number: 3 A form field whose hidden flag is not set and whose rectangle is not outside the crop-box shall have a TU key present or all its Widget annotations shall have alternative descriptions (in the form of an Alt entry in the enclosing structure elements) Failed 13 occurrences Hide PDWidgetAnnot isOutsideCropBox == true || (F & 2) == 2 || (TU != null && TU != '') || (Alt != null && Alt != '') root/document[0]/pages[0](1 0 obj PDPage)/annots[0](22 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[1](26 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[2](28 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[3](31 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[4](50 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[5](33 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[6](36 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[7](38 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[8](40 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[9](42 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[10](44 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[11](46 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[12](48 0 obj PDWidgetAnnot) Specification: ISO 14289-1:2014, Clause: 7.18.4, Test number: 2 If the Form element omits a Role attribute (Table 348), it shall have only one child: an object reference (14.7.4.3) identifying the widget annotation per ISO 32000-1:2008, 14.8.4.5, Table 340. Failed 13 occurrences Hide SEForm roleAttribute != null || hasOneInteractiveChild == true root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[16](21 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[17](25 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[18](27 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[19](30 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[20](32 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[21](35 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[22](37 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[23](39 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[24](41 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[25](43 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[26](45 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[27](47 0 obj SEForm Form) root/document[0]/StructTreeRoot[0](82 0 obj PDStructTreeRoot)/K[0](4 0 obj SEDocument Document)/K[28](49 0 obj SEForm Form) Specification: ISO 14289-1:2014, Clause: 7.18.4, Test number: 1 A Widget annotation shall be nested within a Form tag per ISO 32000-1:2008, 14.8.4.5, Table 340. Failed 13 occurrences Hide PDWidgetAnnot structParentType == 'Form' || isOutsideCropBox == true || (F & 2) == 2 root/document[0]/pages[0](1 0 obj PDPage)/annots[0](22 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[1](26 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[2](28 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[3](31 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[4](50 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[5](33 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[6](36 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[7](38 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[8](40 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[9](42 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[10](44 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[11](46 0 obj PDWidgetAnnot) root/document[0]/pages[0](1 0 obj PDPage)/annots[12](48 0 obj PDWidgetAnnot) Specification: ISO 14289-1:2014, Clause: 7.1, Test number: 3 Content shall be marked as Artifact or tagged as real content Failed 5 occurrences Hide SESimpleContentItem parentStructureTag != null || parentsTags.split('&').filter(elem => elem == 'Artifact').length > 0 root/document[0]/pages[0](1 0 obj PDPage)/annots[1](26 0 obj PDWidgetAnnot)/appearance[0](102 0 obj PDSemanticContentStream)/content[0]/contentItem[0] root/document[0]/pages[0](1 0 obj PDPage)/annots[2](28 0 obj PDWidgetAnnot)/appearance[0](104 0 obj PDSemanticContentStream)/content[0]/contentItem[0] root/document[0]/pages[0](1 0 obj PDPage)/annots[3](31 0 obj PDWidgetAnnot)/appearance[0](105 0 obj PDSemanticContentStream)/content[0]/contentItem[0] root/document[0]/pages[0](1 0 obj PDPage)/annots[4](50 0 obj PDWidgetAnnot)/appearance[0](114 0 obj PDSemanticContentStream)/content[0]/contentItem[0] root/document[0]/pages[0](1 0 obj PDPage)/contentStream[0](2 0 obj PDSemanticContentStream)/content[18]/contentItem[0] Version: 7.5.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 5116d6ad85d804e7b7897bc57a4a4bf9d5bed4f1 CPU threads: 14; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win Locale: de-DE (hu_HU); UI: en-US Calc: threaded Referenced Bugs: https://bugs.documentfoundation.org/show_bug.cgi?id=139007 [Bug 139007] [META] PDF accessibility -- You are receiving this mail because: You are the assignee for the bug.