== Why is this an issue? Table headers are essential to enhance the accessibility of a table's data, particularly for assistive technologies like screen readers. These headers provide the necessary context to transform data into information. Without headers, users get rapidly lost in the flow of data. This rule raises an issue whenever a `` does not contain any `` of the table should contain `
` elements. === Exceptions No issue will be raised on `` used for layout purpose, i.e. when it contains a `role` attribute set to `"presentation"` or `"none"`. [source,html] ----
Name Age
John Doe 42
---- Note that https://www.w3schools.com/html/html_layout.asp[using for layout purpose is a bad practice]. No issue will be raised on `
` containing an `aria-hidden` attribute set to `"true"`. [source,html] ----
---- == How to fix it The first `
` elements, with the appropriate description of what the data in those columns represents. === Going the extra mile Headers should be properly associated with the corresponding `` cells by using either a `scope` attribute or `headers` and `id` attributes. See https://www.w3.org/WAI/tutorials/tables/tips/[W3C WAI Web Accessibility Tutorials] for more information. === Code examples ==== Noncompliant code example [source,html,diff-id=1,diff-type=noncompliant] ----
Name Age
John Doe 24
Alice Doe 54
---- ==== Compliant solution [source,html,diff-id=1,diff-type=compliant] ----
Name Age
John Doe 24
Alice Doe 54
---- == Resources === Documentation * https://www.w3.org/WAI/WCAG21/quickref/?versions=2.0#qr-content-structure-separation-programmatic[WCAG2, 1.3.1] - Info and Relationships * https://www.w3.org/TR/WCAG20-TECHS/H51[WCAG2, H51] - Using table markup to present tabular information ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Add "
" headers to this "" === Highlighting The opening
tag, without its content. endif::env-github,rspecator-view[]