In exported PDF files, HEADING tags cannot be read by a screen reader. This makes the resulting PDF unusable for people who use screen readers. This is a Section 508 Accessibility Compliance failure. This bug report covers the errors in the heading tags (H1, H2, and so on). (See separate bug report for errors in TABLE tags.)
Jaspersoft Software used: Jasper Studio 6.0.0 and the 6.0.0 project files: TABULAR demo.
Test software used: JAWS (version 15), NVDA (version 2014.3), Adobe Acrobat Professional (version XI).
See attached files:
- TabularReport.jrxml = the JRXML file provided with the TABULAR demo.
- TabularReport.pdf = the resulting PDF file.
-- JRXML SUMMARY: -----
The JRXML file contains the following lines to add an H1 heading to an exported PDF report:
To enable pdf tagging:
<property name="net.sf.jasperreports.export.pdf.tagged" value="true"/>
To add the H1 heading tag:
<property name="net.sf.jasperreports.export.pdf.tag.h1" value="full"/>
(See the attached JRXML file for complete details)
-- TEST DETAILS: -----
Screen reader test results: After exporting to PDF, I tested the file using two screen readers: JAWS and NVDA. Neither screen reader is able to read the heading text, or even
indicate that a heading exists on the page. Screen reader commands to list headings or jump to the heading fail.
Acrobat Pro test results:
- In the ORDER panel, I see the heading text listed TWICE.
- The tag tree looks correct. In spite of this, the screen reader test still fails.
-- ACROBAT WORKAROUND: -----
If I go to the ORDER pane in the Acrobat Professional and delete the FIRST instance of the heading from the order list, JAWS and NVDA can then see and announce the headings
properly. (This indicates that there is a problem in the internal structure of the PDF file that is not exposed in the Tag tree.)
-- CONCLUSION: -----
It appears Jasper Studio is creating the heading structure incorrectly, at a binary level that is not exposed by Acrobat Pro. Even though the heading tags exist, neither screen
reader was able to read the headings.
Note: Bug #5591 documents a proposed fix for this error in JasperReport 4. I am not able to verify whether the proposed fix would work in Studio 6.0.0.
URL for the Jasper 6.6.0 project files used in this test: