Tables
Table may be used for layout
WCAG 2.2 success criterion 1.3.1 Info and Relationships (Level A)
- WCAG 2.2
- 1.3.1 Info and Relationships
- Level
- A
- Default severity
- Needs review
- Available in
- Free
Why it matters
Screen readers announce every table as a table — "table, 1 row, 3 columns" — and move through it cell by cell. When a table is only there to put a logo next to a phone number, or three images side by side, that is noise that makes the page harder to follow. Old pages, pasted email templates and some page builders still use tables this way.
Who it affects: Screen reader users, who hear the header for each cell as they move through a table.
What Lumtera flags
Tables with no header cells, no caption and no Table block caption that look like layout: a table with another table inside it, a table whose cells hold only images, or a table with a single row. Only the outer table of a nested layout is reported. Tables marked role="presentation" are skipped, and tables with two or more rows and columns but no headers are left to the "Table has no header cells" check.
Check ID table-layout — use it to filter the content report or with wp lumtera issues --rule.
How to fix it in WordPress
If the table only places content side by side, rebuild it with a Columns, Row or Grid block. If it really holds data, add a header row (Table block settings > Header section) so each value is announced with its heading. For layout tables you cannot change, add role="presentation" to the table element.
Example
<table>
<tr><td><img src="logo.png" alt="Rosa's Café"></td><td><img src="award.png" alt="Best brunch 2026"></td></tr>
</table>
<div class="wp-block-columns">
<div class="wp-block-column"><img src="logo.png" alt="Rosa's Café"></div>
<div class="wp-block-column"><img src="award.png" alt="Best brunch 2026"></div>
</div>
How to check your fix
- Update the post. The issue disappears from the Accessibility sidebar on the next check, and from the site report on the next scan.
- With a screen reader, move cell by cell (VoiceOver: Ctrl + Option + arrow keys). Each value should be announced with its column or row header.
Find this issue across your whole site
Lumtera runs this check in the block editor sidebar as you write, in the Elementor panel, in Review mode on the live page, and across the whole site in the content report and with wp lumtera scan. You can change its severity or turn it off in Accessibility → Settings.
Related checks
-
WCAG 1.3.1 · AError
Heading is empty
-
WCAG 1.3.1 · ANeeds review
Heading level is skipped
-
WCAG 1.3.1 · ATip
Content uses an H1 heading
-
WCAG 1.3.1 · ATip
Bold text may be a heading
-
WCAG 1.3.1 · ATip
Heading is very long
-
WCAG 1.3.1 · ANeeds review
Form field has more than one label
Start with the free plugin today
All 64 checks, the editor sidebar, Elementor panel and site report — free, with no account and no page limits.