Section 508 and SSRS

Section 508 is a US Government standard for making technology more accessible to people with disabilities. It’s a must for public-facing government websites, and for companies that do business with the federal government.

One of the trickiest things in accessibility is tables. Imagine you have a 12 column wide table that goes for 50 rows.  Someone using a screen reader to have that information read to them needs context for each of the columns in the subsequent rows. You have to supply that context through metadata, linking each cell back to the header.

Microsoft began supporting basic table accessibility in SSRS when it issued two patches to the HTML4 and MHTML rendering assemblies. On SQL 2008 R2, you have these patches at version 10.50.1753 and higher. On SQL 2012 & 2014 you are all set, just heed the following note.

Important Note: Accessible rendering is not done by default. You must modify the RsReportServer.config to set AccessibleTablix=true for each render option (e.g. HTML4 and MHTML). See the KB articles for more details on how to locate and modify the file. This will work for Report Manager if you’re using native mode, but it won’t work if you’re using the Report Viewer control in a custom .NET application. For custom .NET applications, you need set the option programatically:

this.rdlViewer.InteractiveDeviceInfos.Add("AccessibleTablix", "true");

I am not 100% sure how to set this option for SSRS SharePoint integrated mode, but I would be guess in that case the RsReportServer.config setting would be picked up there.

Here is a look at how the HTML renders differently with and without AccessibleTablix=true:

Regular HTML
Without AccessibleTablix set to true, no id or headers tags
Accessible HTML
With AccessibleTablix, headers tags in each cell link back the id of the header cell

While setting AccessibleTablix will give you the links between header and cell, it will not render the header row using <th> rather than <td>. Many 508 testing programs, such as the Wave Toolbar for Firefox, will ding you for that.

It appears that MSFT hasn’t really added much to SSRS since SQL 2008 R2 except for better support for Chrome and iOS. So SSRS HTML4 and MHTML renderings are pretty much the same in 2014 and 2012 as they were in 2008 R2.  Therefore it seems unlikely that SSRS HTML4 reports will ever be fully Section 508 compliant.

The Voluntary Product Accessibility Templates (VPATS) that Microsoft has created for the various SQL Server versions support the notion that SSRS Section 508 support is only provided at a basic, limited level.