Thank you so much Hans & Mikhael!

I tested one of my lecture notes and get two complaints from VeraPDF:
(90 failed checks and 577444 passed checks…)


Specification: ISO 32005:2023, Clause: Table 5. P-Div, Test number: 1   
<P> shall not contain <Div>     Failed
24 occurrences  Hide
SEDiv   
parentStandardType != 'P'       
root/document[0]/StructTreeRoot[0](231 0 obj PDStructTreeRoot)/K[0](239 0 obj 
SEDocument document)/K[0](240 0 obj SEPart documentpart)/K[21](605 0 obj SESect 
section)/K[1](611 0 obj SEDiv sectioncontent)/K[3](1770 0 obj SESect 
section)/K[1](1775 0 obj SEDiv sectioncontent)/K[4](1876 0 obj SEP 
paragraph)/K[2](1885 0 obj SEDiv formula)


and

Specification: ISO 14289-2:2024, Clause: 8.2.2, Test number: 1  
Content that is not considered real shall be an artifact        Failed
66 occurrences  Hide
SESimpleContentItem     
isTaggedContent == true || parentsTags.contains('Artifact') == true     
root/document[0]/pages[1](2 0 obj PDPage)/contentStream[0](407 0 obj 
PDSemanticContentStream)/content[3]/contentItem[0]


I am absolutely clueless about these two. Is there a way to find out what the 
problem is and how I can fix it?

Thanks again,

Matthias





> On Aug 13, 2025, at 11:12 AM, Hans Hagen via ntg-context <ntg-context@ntg.nl> 
> wrote:
> 
>       Hi,
> 
> Due to some pressure on this list we have been looking into reasonable 
> mapping from context structure onto what pdf sees as structure as of 2025. 
> This is not without risk as the pdf standard, tools, interpretations, 
> whatever are in constant flux. We don't fall into the target audience so our 
> decisions are guess work at best.
> 
> That said, we now do the following. If you enable tagging
> 
>  \setuptagging[state=start]
> 
> you get normal tagging, without so called rolemapping. This can work out ok 
> with (future) more clever parsers of the content stream (think llm). It 
> doesn't pollute the pdf too much but of course bloats it.
> 
> Then, if you want to go fuzzy, you can say
> 
> \setupbackend
>  [format=pdf/ua-2]
> 
> \setuptagging
>  [state=start]
> 
> This gives some basic mapping. Then there is a basic mapping that or with 
> Mikael figured out and tested on lecture notes and a math book. Of course 
> runtime increases (so the book now needs 14 sec instead of 8 but so be it we 
> might be able to improve that a little bit but all that math ... it's not 
> like one tags all day).
> 
> \setuptagging
>  [state=start,
>   preset=basic,
> % preset={basic,\jobname},
>   comment={just a basic test document}]
> 
> You can kick in your own mappings, e.g. which could already be done with 
> commands but we now prefer using an "imp" file as hard pdf mapping doesn't 
> belong in a document setup. You, as user / author knows best what mapping is 
> nneeded and can work. There is tagging-basic.tex document that explains this.
> 
> We advise to delay tagging (if needed at all, which in my case is never) to 
> when a document is finished (maybe by wrapping in a mode tagging) so that no 
> runtime is wasted during writing / designing.
> 
> You can test / check some with
> 
> mtxrun --script pdf --structure [--detail --save]  yourdocument
> mtxrun --script pdf --validate  [--interaction]    yourdocument
> 
> where the second one calls for verapdf, or simply test with
> 
> mtxrun --script pdf --check yourdocument
> 
> this is only for testing purposes; we might add some to it depending on our 
> own or user demand. The possibly generated file serves no other purpose (and 
> obeys crap-in-crap-out).
> 
> Of course, different versions of verapdf can result in different results
> 
> By default we ignore interaction because that is a mess in tagged pdf but you 
> can use option=interaction to get something if needed. We think that when a 
> document validates with exception of link/references no one is harmed.
> 
> After the context meeting we will freeze the basic mapping but one can of 
> course always modulate on it,
> 
> Hans & Mikael
> 
> (who will now pick up on more rewarding and fun things that we'd put in the 
> hold)
> 
> -----------------------------------------------------------------
>                                          Hans Hagen | PRAGMA ADE
>              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> -----------------------------------------------------------------
> 
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the 
> Wiki!
> 
> maillist : ntg-context@ntg.nl / 
> https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
> webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
> archive  : https://github.com/contextgarden/context
> wiki     : https://wiki.contextgarden.net
> ___________________________________________________________________________________

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / 
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki     : https://wiki.contextgarden.net
___________________________________________________________________________________

Reply via email to