We'd like to set Google Analytics cookies to learn how people use the Knowledge Base, so we can improve it. We set them only if you accept.

Skip to main content
Digital Accessibility Knowledge Base

empty-table-header

Web validation

Table header cells should include visible text that clearly describes their associated row or column.

Data tables rely on header cells to give screen reader users essential context. When a <th> element is empty, assistive technology cannot announce a meaningful header, so people who are blind or have low vision must guess the relationship between cells. Visible text in every header helps everyone understand, navigate, and interpret the information.

Pass Patterns

All <th> elements have text

The table header contains clear, visible text that identifies each column.

HTML
<table>
    <thead>
        <tr>
            <th scope="col">Student Name</th>
            <th scope="col">Grade</th>
            <th scope="col">GPA</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Jose Ramirez</td>
            <td>10</td>
            <td>3.7</td>
        </tr>
    </tbody>
</table>

Fail Patterns

An empty <th> element

The header cell is present but empty, so no text is exposed to assistive technology.

HTML
<table>
    <thead>
        <tr>
            <th scope="col"></th>
            <th scope="col">Grade</th>
            <th scope="col">GPA</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Jose Ramirez</td>
            <td>10</td>
            <td>3.7</td>
        </tr>
    </tbody>
</table>

Try It Yourself

Using a screen reader

New to screen reader testing, or need a refresher?
Review this article first: Practical guides for using screen readers

  1. Load the page and open a screen reader, then navigate to the table.
  2. Go to the table cells and move between columns.

Expected result: The screen reader announces the column’s position (e.g., “column one of three”), and its name, providing the context for the column’s content.

Actual result: The screen reader only announces the column’s position with no additional context.

FAQ

Why is this validation considered a best practice?

WCAG does not explicitly forbid empty header cells, yet providing visible text improves comprehension for screen reader users and prevents confusion when navigating large tables. It is therefore treated as a best practice that strengthens overall accessibility without being a strict success criterion requirement.

Why is this issue marked as Minor?

An empty header rarely blocks access to the data itself, but it can slow navigation and force users to guess relationships, especially in complex tables. The impact is noticeable but not critical, so the severity is Minor.

Standards and Regulations

This issue is classified as "Best Practice," meaning it isn't tied to a specific WCAG success criterion or any other regulation or standard; however it still affects the experience of some users. These issues fall outside formal compliance requirements, yet addressing them improves usability and accessibility in practice.

Personas impacted by this issue

Learn More