More on accessibility/checking with Canvas
Dear List, Using the current version, it is now pretty straightforward to create PDFs that pass VeraPDF with PDF/UA-2. Canvas (which is commonly used in the US) has an accessibility checker: https://community.canvaslms.com/t5/Canvas-Basics-Guide/How-do-I-use-the-Acce... The file tagging-basic.pdf scores 40% accessibility, with three complaints: This PDF does not have headings This PDF does not have a title This PDF contains text with insufficient contrast The last item I can fix. A title can be added in Canvas. Of course, the document has all the ConTeXt headings, but apparently Canvas is not able to see them (nor the title). On the Canvas page it says about headings: • Sequential headings: Heading levels should not be skipped (e.g. H2 to H4). However, the tool does not check if the first header starts with H2 or whether the headings are sequential with the rest of the content in the page. Tables do not begin with H1, which is designated for the page title. Is there a way to make the headings visible in the PDF? Thanks, Matthias (I can help with testing and give you access to a Canvas site, if needed)
Hi,
On Thu, Aug 28, 2025 at 3:24 PM Matthias Weber
Dear List,
Using the current version, it is now pretty straightforward to create PDFs that pass VeraPDF with PDF/UA-2.
Canvas (which is commonly used in the US) has an accessibility checker:
https://community.canvaslms.com/t5/Canvas-Basics-Guide/How-do-I-use-the-Acce...
The file tagging-basic.pdf scores 40% accessibility, with three complaints:
This PDF does not have headings
This PDF does not have a title
This PDF contains text with insufficient contrast
The last item I can fix. A title can be added in Canvas.
Of course, the document has all the ConTeXt headings, but apparently Canvas is not able to see them (nor the title).
On the Canvas page it says about headings:
• Sequential headings: Heading levels should not be skipped (e.g. H2 to H4). However, the tool does not check if the first header starts with H2 or whether the headings are sequential with the rest of the content in the page. Tables do not begin with H1, which is designated for the page title.
Is there a way to make the headings visible in the PDF?
Thanks,
Matthias
(I can help with testing and give you access to a Canvas site, if needed)
I am sorry. Canvas uses the Ally checker, and the specification of what it does and does not is simply not available. In particular, it does not follow UA-2. (Maybe more something like PDF1.X). The title is in the file, but not in the place where Ally is expecting it (and there it is not, as far as I understand, compatible with UA-2...). Joseph from the LaTeX team wrote on their forum, see https://usergroup.ally.ac/s/discussion/post/post/view?id=2362 We also have Canvas at our university. I have written to the accessibility people at our university and explained that the tool they pay for is not good for the purpose. There will be no work from our side to try to satisfy the Ally checker. It is a black box. /Mikael PS "Funnily" enough, you just missed the pdf accessibility talk/discussion at the ConTeXt meeting (as well as the dinner afterwards...) :)
On 8/29/2025 12:03 PM, Pawel Urbanski wrote:
Hi Everyone, I'm using Contxt to typeset my book. I chose it, for hte PDF tagging support allowed me to revie things without sighted assistance. Few months back, I noticed the following things, which can be interesting: 1. Reading PDFs in Chrome/Brave gives the best results with NVDA screen reader , which I use. 2. Adobe Reader renders some characters that are likely different types of spaching characters or glues some words without placing spaces in between. 3. I had some issues navigating by headings, namely skipping headings at osme lover levels, but maybe it is fixed now.
We had some discussions about how to proceed with tagging so here's a bit of a summary. - basically pdf tagging is conceptually crap and not getting any better so that is something we need to live with; there is no way we can influence it, we have to live with it (as we do with fonts, unicode, whatever comes from outside the text world that doesnt' always suits wwll) - it looks like the audience for tagging is kind of ignored; it has become the domain of bad standards (that are no standards as they get adapted; 'iso' has little meaning here), applications that have to comply (and when it's hard the standard gets adapted), a small amount of viewers (that behave differently), commerrcial and whatever interests (leverage). - validation and government demands don't help much and the former to some extent even makes it worse because .. well .. gov demands it (of course without much detail apart from it being / becoming requirements: chickens and eggs) From the point of view of context (!) we perfer to look at it from the users point fo view becauseit's in the end the user that matters so we have to make choices. (1) For various reasons tagging the content stream has been part of pdf already a long time. Basically one add structure to the page content stream. Let's call this tagging level zero. We had quite some discussion (and demonstration / testing) of how currently AI tooling deals with content, including pdf and given what we observed the impression is that a clean pdf file with such structural tags in the end are most reliable. Apart from actually recognizing structure without tagging, clear directives can be enough. It might be that within a decade all this (2) and (3) mentioned next cna be ingored and ism obsolete, mayeb even confusing and pointing in the wrong direction. (2) When one starts adding some rolemapping, say around version 1.7 something that context supported for quite a while, additional indicators to some (still undefined machinery) could be of help. That version one mapping permits a sort of okay structure -> pdf/html (or whatever one consider this mix) and math (which only serves a sub-audience) basically is an text + mathml like tree / representation. (3) Then came pdf 2 with ua2 so we call that version 2. The role mapping actually became more limited and even keeps deteriorating as we speak. This relates to validation. When the demand is 'it has to validate wrt pdf's idea of structure' then one has to work around this and in the end gets a pretty inconsistent mapping, especially when one talks of more complex structure (beyond simple heads, a few lists and maybe tables). It looks like tagging / validation has become an aim of its own (not unsurprisingly because that's where money is made). There is also some expectations wrt reflow but when that is intended, just go html (which is why we spend time on the export and have picked up on that, more later.) So, we have level zero structure and tagging in all cases, but in level two we crappify it by rolemapping to suite the validation. However, we can decide to have a middle way: we just map onto what pdf we thinks makes most sense. That means that future AI driven backends can behave well, and likely current less clever ones also can handle it as it is unlikely that they do much crying over things: juist read the stuff and play safe. An occasional pdf rolemap might help but as much looks ignored anyway why bother. It means that we don't validate but are therwise quite okay. Unfortunately the generic NonStruct became sort of useless and the kind of exclusive inline/block modes lead to strange mappings. One even has to rely on Artifact for non artifacts. One reason for thinking that way is that we notice that the target audience knows very well how to deal with matters. There is no need to underestimate already available tools and usage patterns. We should concentrate on content. Also, we can stimulate rendering two versions: the intended as well as more accessible version with additional (typeset) clues, maybe reordered, maybe improved access. So, we like to know what is really needed, what would really help a visual impaired reader. We don't care about other documents (let them go rolemapping, validate and pretend being accessible) but about how to make our documents accessible and useful. Does the reader care more about (say) verapdf being happy (for a suboptimal rolemapped or crippled documents) or does she/he wants a useful document. Currently we can validate a context document with as reliable as possible rolemapping (keep in mind: we start from rich structure, not from limited and weird rolemaps)
I'm very eager and happy to help with real-world and pragmattic experience. Unfortunately, I could not make it to hte conference in Poland, where I'm based, due to some minor health chaos.
That is indeed a pitty but health is more important. Anyway it's users like you who should come up with the demands, not standards, committees, companies and whatever. So just push us for solutions. As always with (context) demands: it's users who drive it. And in the end it is the document and content that matter to them. We rather spend time on that than on something 'standard'. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On 8/28/25 19:25, Mikael Sundqvist wrote:
[...] PS "Funnily" enough, you just missed the pdf accessibility talk/discussion at the ConTeXt meeting (as well as the dinner afterwards...) :)
It would be great to have the slides for https://meeting.contextgarden.net/2025/programme.shtml. In my case, not only for accessibility, but also for columnsets. Pablo
On 9/2/25 17:29, Pablo Rodriguez via ntg-context wrote:
[...] It would be great to have the slides for https://meeting.contextgarden.net/2025/programme.shtml.
Sorry for not having checked before: some presentation slides (not accessibility and columnsets) are already available. Many thanks to the authors and the uploaders for these slides, Pablo
On 9/2/2025 5:29 PM, Pablo Rodriguez via ntg-context wrote:
On 8/28/25 19:25, Mikael Sundqvist wrote:
[...] PS "Funnily" enough, you just missed the pdf accessibility talk/discussion at the ConTeXt meeting (as well as the dinner afterwards...) :)
It would be great to have the slides for https://meeting.contextgarden.net/2025/programme.shtml.
In my case, not only for accessibility, but also for columnsets.
accessibility: no slides, we showed examples, explained some pdf internals, had a discussion, etc export: idem signal: there is some (i have to check it and then will add it to the distribution) but it's of little use as you don't have the gadget (assembled in the workshop) but more about that tracing/status tool later Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On 9/2/25 19:17, Hans Hagen via ntg-context wrote:
[...] accessibility: no slides, we showed examples, explained some pdf internals, had a discussion, etc
export: idem
signal: there is some (i have to check it and then will add it to the distribution) but it's of little use as you don't have the gadget (assembled in the workshop) but more about that tracing/status tool later
Many thanks for your reply, Hans. Are there slides for columnsets? Right now they woud be very useful for me. Many thanks for your help, Pablo
Am 02.09.25 um 19:35 schrieb Pablo Rodriguez via ntg-context:
On 9/2/25 19:17, Hans Hagen via ntg-context wrote:
[...] accessibility: no slides, we showed examples, explained some pdf internals, had a discussion, etc
export: idem
signal: there is some (i have to check it and then will add it to the distribution) but it's of little use as you don't have the gadget (assembled in the workshop) but more about that tracing/status tool later
Many thanks for your reply, Hans.
Are there slides for columnsets? Right now they woud be very useful for me.
Mikael showed the same as in Bachotek: https://www.gust.org.pl/bachotex/2025-pl/presentations/columns-hhmps.pdf Hraban
On 9/2/25 19:44, Henning Hraban Ramm wrote:
Am 02.09.25 um 19:35 schrieb Pablo Rodriguez via ntg-context:
[...] Are there slides for columnsets? Right now they woud be very useful for me.
Mikael showed the same as in Bachotek: https://www.gust.org.pl/bachotex/2025-pl/presentations/columns-hhmps.pdf
Many thanks for your reply, Hraban. It seems that I have to wait until Hans/Mikael write proper documentation (as announced in another thread). Pablo
Hi, is alt text (label for externalfigure) broken? \enabledirectives [backend.usetags=testing] \setuptagging[state=start] \setupstructure[state=start] \setupbackend[format=pdf/ua-1] \noheaderandfooterlines \setupexternalfigures[location=default] \starttext \externalfigure[test_photo][label={sunset}] \stoptext In april the «Alt:» was correctly written «sunset» on «https://ngpdf.com/editor/editFile», see screenshot attached. I just re-ran this test file with recent context (12.November). Now it writes «image»? Best wishes, Steffen
xAm 02.09.2025 um 19:56 schrieb Pablo Rodriguez via ntg-context
mailto:ntg-context@ntg.nl>: On 9/2/25 19:44, Henning Hraban Ramm wrote:
Am 02.09.25 um 19:35 schrieb Pablo Rodriguez via ntg-context:
[...] Are there slides for columnsets? Right now they woud be very useful for me.
Mikael showed the same as in Bachotek: https://www.gust.org.pl/bachotex/2025-pl/presentations/columns-hhmps.pdf https://www.gust.org.pl/bachotex/2025-pl/presentations/columns-hhmps.pdf
Many thanks for your reply, Hraban.
It seems that I have to wait until Hans/Mikael write proper documentation (as announced in another thread).
Pablo ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl mailto:ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl webpage : https://www.pragma-ade.nl https://www.pragma-ade.nl/ / https://context.aanhet.net https://context.aanhet.net/ (mirror) archive : https://github.com/contextgarden/context https://github.com/contextgarden/context wiki : https://wiki.contextgarden.net https://wiki.contextgarden.net/ ___________________________________________________________________________________
Hi Pablo, thanks for the fast reply! Ok, and all the other terms in the test file are still correct? Or did something else change, regarding the accessibility requirements? Yours, Steffen
Am 15.11.2025 um 19:11 schrieb Pablo Rodriguez via ntg-context
: On 11/15/25 18:37, Steffen Wolfrum wrote:
Hi,
is alt text (label for externalfigure) broken?
Hi Steffen,
it has been renamed to `alternativetext`.
Best,
Pablo
___________________________________________________________________________________ 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 ___________________________________________________________________________________
On 11/15/25 19:22, Steffen Wolfrum wrote:
Hi Pablo, thanks for the fast reply!
Ok, and all the other terms in the test file are still correct?
Sorry, Steffen, but I really don’t know. I helped some time ago with accesibility, but I have never used accessible documents myself. I just tested basic test cases and reported what was wrong. `tagging-basic.pdf` should give you an overview on how to get the right results.
Or did something else change, regarding the accessibility requirements?
As far as I can remember, there were no other changes. But right now I’m testing issues with fields (which comes from improving digital signatures in PDF documents for “Linux”). So, I can only say that you can use the veraPDF validator and see what may be wrong. But first, it would be extremely sensible to follow the indications from `tagging-basic.pdf` (and maybe `tagging.pdf` [both come with ConTeXt]) first. Sorry, but this is all I can offer right now. I hope it may be of some (or even any) help to you, Pablo
Hi Pablo,
Am 15.11.2025 um 19:54 schrieb Pablo Rodriguez via ntg-context
: But first, it would be extremely sensible to follow the indications from `tagging-basic.pdf` (and maybe `tagging.pdf` [both come with ConTeXt]) first.
Sorry, but this is all I can offer right now.
Thanks you very much for mentioning these manuals. Great, I didn't know they are there, but now I found them. Thanks for your attention! Steffen
On 11/15/25 20:52, Steffen Wolfrum wrote:
Hi Pablo,
Thanks you very much for mentioning these manuals. Great, I didn't know they are there, but now I found them.
Hi Steffen, on a second thought, I wonder whether \setupbackend[format=pdf/ua-2] might give you better results. Just in case it might help, Pablo
Hi Steffen The new manuals should help to create PDFs that pass VeraPDF. I have managed to make three large sets of lecture notes ‘accessible’ that are heavy on math and images. I have encountered a few glitches (for instance, with \setuphead using before= and after=). I’ll be happy to give you access to the complete sources if you think this will be helpful. Canvas uses Ally to check PDFs, and the accessibility score I can get with it is about 50%. Mikael has looked into this, and he wrote earlier on the mailing list:
I am sorry. Canvas uses the Ally checker, and the specification of what it does and does not is simply not available. In particular, it does not follow UA-2. (Maybe more something like PDF1.X). The title is in the file, but not in the place where Ally is expecting it (and there it is not, as far as I understand, compatible with UA-2...).
Joseph from the LaTeX team wrote on their forum, see https://usergroup.ally.ac/s/discussion/post/post/view?id=2362
We also have Canvas at our university. I have written to the accessibility people at our university and explained that the tool they pay for is not good for the purpose.
There will be no work from our side to try to satisfy the Ally checker. It is a black box.
/Mikael
My institution is currently satisfied if I provide them with VeraPDF-certified, UA-2 compliant PDFs… There is another issue with PDFs compiled with \setupbackend[format=pdf/ua-2] \setuptagging [state=start, preset=basic, level=2, option=interaction ] That I have not been able to figure out: All viewers I have tried on my Mac crash when opening large PDFs that are compiled this way, typically when I reach a page that contains a figure. With one exception: Acrobat. I don’t know whether it’s ConTeXt or the readers that struggle with accessible PDFs. It also only happens with larger PDFs (50+ pages, maybe) The viewers work fine when I compile the files without the accessibility preamble. Best, Matthias
On Nov 16, 2025, at 1:11 AM, Pablo Rodriguez via ntg-context
wrote: On 11/15/25 20:52, Steffen Wolfrum wrote:
Hi Pablo,
Thanks you very much for mentioning these manuals. Great, I didn't know they are there, but now I found them.
Hi Steffen,
on a second thought, I wonder whether \setupbackend[format=pdf/ua-2] might give you better results.
Just in case it might help,
Pablo ___________________________________________________________________________________ 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 ___________________________________________________________________________________
Hi Matthias, On Sun, 2025-11-16 at 13:50 -0500, Matthias Weber wrote:
That I have not been able to figure out: All viewers I have tried on my Mac crash when opening large PDFs that are compiled this way, typically when I reach a page that contains a figure.
With one exception: Acrobat. I don’t know whether it’s ConTeXt or the readers that struggle with accessible PDFs.
It also only happens with larger PDFs (50+ pages, maybe)
The viewers work fine when I compile the files without the accessibility preamble.
Does GhostScript show any errors/warnings if you run it on one of the PDFs? $ gs -dNOPAUSE -dBATCH -sDEVICE=nullpage <filename>.pdf If there are any errors, then that's probably the source of the problem (and so should theoretically be fairly easy to fix); if there aren't any errors, then it'll probably be trickier to figure out what exactly is causing the crashes. Thanks, -- Max
Hi Max, I ran Ghostscript on both the accessible and the untagged version of my file, and I am getting the following in both cases: p. 151: WARNING: pdfi_create_indexed() got 6 values, expected at least 9 values WARNING: Image has unsupported ColorSpace (not a name) The following errors were encountered at least once while processing this file: error executing PDF token circular reference to indirect object error in image colour The following warnings were encountered at least once while processing this file: recoverable image error garbage left on stack Page 151 is one of the critical pages that consistently crashes Preview on the Mac (but only in the accessible version). I regularly use PDF images created/edited with Illustrator, and I leave the Illustrator fork in the PDF. p. 151 contains one of them, but there are many others in that file. Matthias
On Nov 17, 2025, at 7:50 AM, Max Chernoff via ntg-context
wrote: Hi Matthias,
On Sun, 2025-11-16 at 13:50 -0500, Matthias Weber wrote:
That I have not been able to figure out: All viewers I have tried on my Mac crash when opening large PDFs that are compiled this way, typically when I reach a page that contains a figure.
With one exception: Acrobat. I don’t know whether it’s ConTeXt or the readers that struggle with accessible PDFs.
It also only happens with larger PDFs (50+ pages, maybe)
The viewers work fine when I compile the files without the accessibility preamble.
Does GhostScript show any errors/warnings if you run it on one of the PDFs?
$ gs -dNOPAUSE -dBATCH -sDEVICE=nullpage <filename>.pdf
If there are any errors, then that's probably the source of the problem (and so should theoretically be fairly easy to fix); if there aren't any errors, then it'll probably be trickier to figure out what exactly is causing the crashes.
Thanks, -- Max ___________________________________________________________________________________ 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 ___________________________________________________________________________________
On 11/17/2025 2:37 PM, Matthias Weber wrote:
p. 151:
WARNING: pdfi_create_indexed() got 6 values, expected at least 9 values
So what does that refer to? Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
I will try to isolate the problem tonight and report back. Thanks, Matthias
On Nov 17, 2025, at 11:22, Hans Hagen via ntg-context
wrote: On 11/17/2025 2:37 PM, Matthias Weber wrote:
p. 151: WARNING: pdfi_create_indexed() got 6 values, expected at least 9 values
So what does that refer to?
Hans
----------------------------------------------------------------- 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 ___________________________________________________________________________________
On 11/15/2025 7:22 PM, Steffen Wolfrum wrote:
Hi Pablo, thanks for the fast reply!
fwiw, renaming the key to a more spefific one was discussed / mentioned on the list
Ok, and all the other terms in the test file are still correct?
Maybe try this: mtxrun --script pdf --check
Or did something else change, regarding the accessibility requirements? How should one know ... tagged pdf is a (conceptual) mess and will remain so, but we do our best to support it.
I don't use tagging for my documents but as long as you keep the structure sane you should be fine. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (8)
-
Hans Hagen -
Henning Hraban Ramm -
Matthias Weber -
Max Chernoff -
Mikael Sundqvist -
Pablo Rodriguez -
Pawel Urbanski -
Steffen Wolfrum