Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.6
-
None
-
None
Description
Hi there,
my customer posted the following request to your mailing list few years ago about better tagging support in FOP:
http://apache-fop.1065347.n5.nabble.com/Tagging-fo-blocks-as-artifacts-td45065.html
Since the answer was that it would be an improvement for FOP if he would provide a patch for it, he started to develop an adjusted version (or better, he let third party developers do it).
We have been using this adjusted FOP for quite a while now to produce accessible PDFs. My customer has now asked me to provide the changes as a patch back to the official FOP repository.
To prepare this, I published now the adjusted version in the following public GitHub project (a fork of the FOP project):
https://github.com/data2type/xmlgraphics-fop/tree/feature/accessibility
Here are some examples you can try out:
https://github.com/data2type/xmlgraphics-fop/tree/feature/accessibility/fop/examples/accessibility
The adjustments are basically implemended as three features:
1. a CLI switch -noautopdftag has been introduced. This switch disables the tagging for structrure-only FO nodes that do not have a role attribute. Structrure-only nodes are nodes that do not contain text content.
2. a CLI switch -rolemap [rolemap-file] has been introduced. The rolemap file overrides the default tagging for FO elements by name. E.g. you can specify that the FO element static-content gets the tag Artifact by default.
3. To specify attributes of PDF tags, a special syntax for roles has been introduced. If you define a <fo:block role="P?attr=value"> it will be converted to a PDF tag P with the attribute attr which has the value value.
More details you will find in the above linked examples.
Before I invest more time and money, I would like clarify at first some key questions:
1. Are you still intressted in taking over the adjustments? Is there a FOP developer available to commit our changes?
2. What are your requirements for taking over the code?
3. Would you take over the given concepts or do you need some changes?
Please let me know, if you have any further questions about it.
Best Regards,
Nico Kutscherauer
data2type GmbH