All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.l10n.web.rules.Web.TableWithoutCaptionCheck.html Maven / Gradle / Ivy

The newest version!

This rule is deprecated, and will eventually be removed.

Why is this an issue?

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:

  • adding a concise description via aria-label or aria-labelledby attributes in the <table>.
  • referencing a description element with an aria-describedby attribute in the <table>.
  • embedding the <table> inside a <figure> which also contains a <figcaption>.
  • adding a summary attribute to the <table> tag. However note that this attribute has been deprecated in HTML5.

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".

Resources

  • WCAG2, 1.3.1 - Info and Relationships
  • WCAG2, H39 - Using caption elements to associate data table captions with data tables




© 2015 - 2025 Weber Informatics LLC | Privacy Policy