NShiftKey-Rule-Guide logo NShiftKey-Rule-Guide

"<table>" tags should have a description

Web:TableWithoutCaptionCheck

In order to be accessible to visually impaired users, it is important that tables provides a description of its content before the data is accessed.

The simplest way to do it, and also the one recommended by WCAG2 is to add a <caption> element inside the <table>.

Other technics this rule accepts are:

See W3C WAI Web Accessibility Tutorials for more information.

This rule raises an issue when a <table> has neither of the previously mentioned description mechanisms.

Noncompliant Code Example

<table> <!-- Noncompliant -->
  ...
<table>

Compliant Solution

Adding a <caption> element.

<table>
  <caption>New York City Marathon Results 2013</caption>
  ...
</table>

Adding an aria-describedby attribute.

<p id="mydesc">New York City Marathon Results 2013</p>
<table aria-describedby="mydesc">
  ...
</table>

Embedding the table in a <figure> which also contains a <figcaption>.

<figure>
  <figcaption>New York City Marathon Results 2013</figcaption>
  <table>
    ...
  </table>
</figure>

Adding a summary attribute. However note that this attribute has been deprecated in HTML5.

<table summary="New York City Marathon Results 2013">
  ...
</table>

Exceptions

No issue will be raised on <table> used for layout purpose, i.e. when it contains a role attribute set to "presentation" or "none". Note that using <table> for layout purpose is a bad practice.

No issue will be raised either on <table> containing an aria-hidden attribute set to "true".

See