ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: "Dr. Dominik Klein" <Dominik.Klein@outlook.com>
To: ntg-context@ntg.nl
Subject: Accessibility and Tagged PDFs: Bugs and Feature Requests
Date: Sun, 28 Jun 2015 12:59:26 +0200	[thread overview]
Message-ID: <BLU436-SMTP14891AA3C606C368C0AF788F4AB0@phx.gbl> (raw)

Context is the only Tex-based system that allows to properly tag a pdf. 
Tagged PDFs are one major requirement for accessibility.

Indeed, in several large organizations/universities, accessibility is 
mandated by law, and this is a major obstacle for using Tex. In practice 
compliance is often assessed with Acrobat Pro's
accessibility checker.

Context produces a nice tag-structure, but there are some minor issues 
that prevent compliance to [1], and hence Acrobat Pro complains during 
the check. The main issues are:

1.) Elements that are not contained in the structure tree are not marked 
as an artifact. Consider this example:

-------------------------------
\setuptagging[state=start]

\setuppagenumbering
[location=,
  alternative=doublesided]

\setupheadertexts
   [{Chapter~\getmarking[chapternumber]\hskip1em\getmarking[chapter]}]
   [{Header Right}]
   [{Header Left}]
   [{Chapter~\getmarking[chapternumber]\hskip1em\getmarking[chapter]}]

\setupfootertexts
   [Organization Name]
   [pagenumber]
   [pagenumber]
   [Organization Name]

\starttext
\startfrontmatter
something
\stopfrontmatter

\startbodymatter
some more text here
\stopbodymatter
\stoptext
-------------------------------

Header, footer, pagenumber etc. will not be included in the tag 
structure. Of course this makes absolutely sense and is correct, however 
according to Section 14.8.2.2.2 of [1], then this content that is not in 
the structure tree should be marked as an artifact, i.e.

/Artifact
   BMC
   ..
   EMC

or in an advanced way with /Artifact PropertyList where the type of 
Artifact can be defined. It would be nice if those elements that are not 
included in the tag tree would be marked as artifacts by default. The 
same holds for \startelement[ignore] when one wants to explicitly remove 
something from the structure tree.

2.) Images without alternate text:
According to Section 14.9.3 of [1], alternate descriptions in human 
readable text should be provided for images. It would be really helpful,
if these could be defined in the source tex file, and then automatically
added when creating the object in the structure tree. I.e. it would be
nice to have something like:

\placefigure[top][Image Reference]{Caption}{
\externalfigure[cow.pdf][width=10cm][alternate text = "This images shows 
a beautiful cow."]
}

The same holds for formulas: Whereas the mathml-like tagging of Context 
is very advanced, sometimes it might be still helpful to supply a 
textual description (alt-text ="The definition of the Pythagorean 
theorem: a^2 + b^2 = c^2")

3.) Tag names of the resulting tag structure:
Section 14.8.4 of [1] defines standard structure types, such as <H>, 
<P>, <Sect> etc. Context creates a tag-tree that uses names directly 
representing the structure names of the context laguage, such as 
<sectiontitle>. This should however be mapped to something standard, 
such as <H>. Interestingly these mappings seem to have been considered 
in strc-tag.mkiv but I was unable to generate such a tagged pdf. 
Editing/Outcommenting things in strc-tag.mkiv didn't work for me. It 
would be nice if there was a switch somewhere, i.e. 
\setuptagging[state=start,tagnames=pdf17] - or maybe I overlooked something?

4.) Acrobat Pro always complains that the language for the whole 
document is not set.

5.) Tables
The generated structure looks something like this:
<table>
  <tablerow>
    <tablecell>
    ...
  <tablerow>
    <tablecell>
  ...

Here, not only are the tag names non-compliant, also the tag structure
should distinguish between the table header (THead), and table rows 
(TBody), c.f. Section 14.8.4.3.1 of [1]. A simple heuristic would be
to always put the first line into THead tags, and the rest of the able 
into TBody.

6.) It would be nice if a flat tag structure could be created 
optionally. This is not a required feature according to [1], and in fact 
a properly nested structure is surely preferable for the final output; 
for debugging or checking during document creation however, a flat 
structure tree sometimes is easier to browse through.

All in all, these seem to be the only issues that prevent accessible PDF 
documents with context. For those within an organization where 
accessibility is required legally for all publications, compliance to at 
least Acrobat Pro's checks is a huge issue. I do not know how difficult 
these things are to implement in Context (personally I am just lost in 
the code), but looking at e.g. tex.stackexchange
for question related to accessibility, this is indeed a major obstacle 
for several people.

cheers

- Dominik


[1] ISO 32000-1:2008, available at
http://www.adobe.com/devnet/pdf/pdf_reference.html
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

             reply	other threads:[~2015-06-28 10:59 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-28 10:59 Dr. Dominik Klein [this message]
2015-06-30  8:32 ` luigi scarso
2015-06-30  9:00 ` Alan BRASLAU
2015-06-30 15:58   ` Dominik Klein
2015-06-30 16:02     ` luigi scarso
2015-07-01 15:51 ` Hans Hagen
2015-07-01 16:47 ` Hans Hagen
2015-07-01 17:02 ` Hans Hagen
2015-07-01  6:08 Christoph Reller
2015-07-03  8:12 Dominik Klein
2015-07-03 17:19 ` Hans Hagen
2015-07-04 16:45   ` Alan BRASLAU
2015-07-05 11:11     ` Hans Hagen
2015-07-05 20:04       ` Dr. Dominik Klein
2015-07-06  8:01         ` Hans Hagen
     [not found] <mailman.1.1435831202.18251.ntg-context@ntg.nl>
2015-07-03 13:16 ` Christoph Reller
2015-07-03 17:09   ` Hans Hagen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BLU436-SMTP14891AA3C606C368C0AF788F4AB0@phx.gbl \
    --to=dominik.klein@outlook.com \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).