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.

Reply via email to