[#13401] - Table component HTML rendering, accessibility, Section 508 improvements

Category:
Bug report
Priority:
High
Status:
Feedback Requested
Project: Severity:
Major
Resolution:
Open
Component: Reproducibility:
Always
Assigned to:

The table component generates well formed HTML, but it falls short with respect to accessibility and I don't expect it would take too much effort to get that component where it needs to be, for HTML export.

1) please add support for <th> tags - currently, the table header, column header rows generate <td> tags, so for users with screen readers etc, there's no way to distinguish between column headings and data
2) the table component is generating empty rows/cells - I'm assuming these are placeholders for the table header, column header, table footer, column footer etc rows, these appear to be getting generated whether or not they're used
3) there appears to be allot of 'clutter' getting generated in terms of attributes on the HTML tags - it would be great if this were revisited and cleaned up; this just equates to 'noise' for users accessing the content with screen readers etc. Can provide examples if needed, but it's pretty straight forward to see the noise generated when viewing html source on a rendered table

Additional request: it seems there's some limited support on text fields for HTML table tags, via the 'html markup' attribute. However, any <th> tags are getting rewritten as <td> tags. In an attempt to work around the table component limitations, I tried 'forcing' column headers, but they're getting rewritten. It would be nice if <th> tags were properly supported in general and not rewritten as <td> tags.

Thank you for your consideration!

EDIT: updated this to high priority, major severity for two reasons. 1) All users should be able to access HTML based content in 2021 (even if it's a graceful degradation scenario, as long as they have equal access and can navigate the content) 2) This is a legal requirement for U.S. federal government entities - by law, any/all digitally delivered content needs to be accessible by federal government employees with disabilities (and the general public where applicable)

v7.9
table
darth_fader's picture
Joined: Mar 7 2010 - 9:45pm
Last seen: 6 days 13 hours ago

5 Comments:

#1
  • Priority:Normal» High
  • Severity:Minor» Major
#2

I'll add, the reason the table component doesn't generate section 508 compliant HTML is because of the table header, table footer elements. Those are generated whether they're used or not. It's a bit of an empty gesture to update the JasperServer UI for 8.1 to be accessible, while not having accessible report output. I don't know who that would benefit. Additionally, it may be worth implementing support for Highcharts accessibility support.

I don't understand the downvotes, the HTML output from the JasperReports LIB is a mess, and if the goal is to stay competitive with Qlik, Tableau, SSRS etc., this shouldn't be shrugged off. I suppose I should quit bitching and start contributing.

#3
  • Status:New» Feedback Requested
  • Assigned:nobody» teodord

Hi,

In release 6.19.0 we introduced initial support for accessible HTML export. There is even a new sample under /demo/samples/accessible.
https://jasperreports.sourceforge.net/sample.reference/accessible/
Not sure if you tried it.

Thank you,
Teodor

#4

Teodor,

I did see in the changelog that accessibility support had been added, and it will be one of the first pieces I evaluate when we upgrade (JasperServer 8.1 sandbox env just got created). The documentation around that was a bit murky in the changelog itself, apologies for the misunderstanding. I hadn't tested with these new properties. If this clears the bar of section 508 compliance, this is a MAJOR win for users and will extend Jasper to larger applications within the U.S. Fed Gov't and beyond. This is a marketable update from my point of view.

FYI - a workaround for users on somewhat older versions that need Section 508 compliant output - look into the JSON output support that can be added to tables and crosstabs. JasperServer can return JSON to the browser, the browser can then markup that JSON with accessible HTML, and you will have solved the problem that way as well. It involves an extra markup step, but it works and it fast/stable.

Thank you,

Nathan M

#5

Teodor,

I'm going to review the crosstab and list components as well, and I'll try to contribute a patch to the JR lib if I can resolve any potential issues with those components around well-formed HTML. I really appreciate you and your team's efforts here, this is a major win for users.

Sincerely,

Nathan M

Feedback