F46: Layout Tables and False Semantic Markup
David · AI Research Engine
Analytical lens: Balanced
Higher education, transit, historic buildings
AI-assisted · Source-linked · Editorially reviewed · Methodology
Trust note
This article was drafted with AI assistance, reviewed against accessibility.chat editorial standards, and should be treated as research and education rather than legal advice. We prioritize primary sources and correct material errors.

"The th element is used to mark the column and row headers of the table. A screen reader uses the information in th elements to speak the header information that changes as the user navigates the table."
That's the W3C's own explanation — precise, functional, and quietly damning for the pattern Failure F46 (opens in new window) describes. Because when a developer drops a <th> into a layout table, they're not marking up data. They're dressing presentational scaffolding in semantic clothing. And screen readers, trusting the markup, announce header information that means nothing — or worse, actively misleads.
It's 2026, and layout tables still appear in production code. Usually they're legacy. Sometimes they're generated by WYSIWYG editors or email builders. Occasionally they're deliberate, written by developers who learned HTML before CSS layout was reliable. Whatever the origin, WCAG 2.2 Success Criterion 1.3.1 (Info and Relationships) (opens in new window) draws a clear line: structure conveyed visually must be conveyed programmatically — and structure conveyed programmatically must actually reflect the content's meaning. F46 is the failure document that names what happens when those two obligations collide in the wrong direction.
The Failure
F46 describes a specific pattern: using <th> elements, summary attributes, or <caption> elements inside a table that exists purely for visual layout. The W3C's official failure document (opens in new window) provides a representative example — a three-column layout table where the page title is marked as <th>:
<table> <tr> <th colspan="3">Page Title</th> </tr> <tr> <td><div>navigation content</div></td> <td><div>main content</div></td> <td><div>right sidebar content</div></td> </tr> <tr> <td colspan="3">footer</td> </tr></table>Visually, this renders fine. A sighted user sees a page with a title, three content columns, and a footer. The <th> is probably just bold and centered. But a screen reader encounters this table and announces it as a data table — because that's what the markup says it is. It reads "Page Title" as a column header. It may announce the number of columns and rows. It may offer table navigation commands. None of that is useful. All of it is noise.
The same failure applies to summary attributes on layout tables (even descriptive ones like summary="layout table") and <caption> elements. The W3C is explicit: "When spoken, this information does not provide value and will only distract users navigating the content via a screen reader."
The affected success criterion is 1.3.1 Info and Relationships (opens in new window), which requires that information and relationships conveyed through presentation be programmatically determinable. F46 is a failure of that criterion — not because the layout table lacks structure, but because it asserts structure that doesn't exist.
Why This Matters
Screen reader users navigate tables differently from other content. NVDA, JAWS, and VoiceOver all offer table-specific commands — moving between cells, reading headers, announcing position within a grid. When a layout table is marked with <th>, those commands activate on content that has no tabular relationship. A user navigating what they expect to be a data table discovers it's actually a nav bar, a sidebar, and a footer column. The announced headers describe nothing.
The cognitive load compounds. A screen reader user who encounters an unexpected table announcement must decide: is this a data table I need to navigate? Is this structural noise I should skip? That decision costs time and attention — and it's a decision sighted users never face. This is the kind of friction that research on automated testing limitations consistently flags: the barrier isn't a missing attribute, it's a meaning mismatch that requires human judgment to catch.
Users with cognitive disabilities face a related problem. Screen readers often announce table dimensions — "table with 3 columns and 3 rows" — before reading content. That announcement sets an expectation. When the content doesn't match a data table's logic, the expectation breaks. Orientation suffers.
The Fix
The corrected pattern is straightforward. If a table must be used for layout (and CSS-based layouts are strongly preferred), strip all semantic table markup:
<!-- Remove th, summary, and caption entirely --><table> <tr> <td colspan="3">Page Title</td> </tr> <tr> <td><div>navigation content</div></td> <td><div>main content</div></td> <td><div>right sidebar content</div></td> </tr> <tr> <td colspan="3">footer</td> </tr></table>Better still — and the W3C recommends this directly — replace the layout table with CSS. A three-column layout is a solved problem with flexbox or grid. That approach retains semantic meaning for actual data tables while removing the ambiguity entirely. The role="presentation" attribute can also suppress table semantics for assistive technologies when a layout table genuinely cannot be refactored:
<table role="presentation"> <!-- layout content here --></table>This tells assistive technologies to ignore the table structure entirely. It's a pragmatic bridge for legacy code, not a long-term architecture.
Applying This
| Pattern | Failure? | Fix |
|---|---|---|
<th> in layout table | Yes — F46 | Replace with <td> or use CSS layout |
summary attribute on layout table | Yes — F46 | Remove the attribute |
<caption> on layout table | Yes — F46 | Remove the element |
headers or scope on layout table | Yes — same failure | Remove or refactor |
Layout table with role="presentation" | No | Acceptable interim fix |
Empty summary="" on layout table | Not recommended, not a failure | Remove anyway |
For development teams, F46 is a case where automated tools can help — but only partially. Axe and similar tools detect <th> in tables that lack proper data-table structure, and some flag layout tables with semantic markup. But as our research on testing methodology shows, automated tools miss context-dependent failures at rates that should give any compliance program pause. A table that looks like it might be data — say, a two-column key-value layout — may pass automated checks while still failing F46 in practice.
Code review is the more reliable catch point. Add a rule: any <th> element requires a corresponding data relationship justification. If the reviewer can't articulate what data the header describes, the markup is wrong. For legacy codebases, a grep for <th combined with visual inspection of table purpose takes minutes and surfaces most instances.
Email templates and CMS-generated HTML deserve special attention. Both are common sources of layout tables with semantic markup, often invisible to developers who never touch the generated output.
CORS Perspective
F46 sits at an interesting intersection of the compliance framework challenge that affects higher education and transit organizations particularly hard: the failure is technically simple, but organizationally it surfaces in legacy systems, third-party tools, and generated markup that no single team owns. Community impact falls disproportionately on screen reader users — a population whose needs are rarely centered in sprint planning. Operationally, the fix is low-cost when caught early and expensive when embedded in a CMS template serving thousands of pages. Strategically, F46 is the kind of failure that makes a compliance program look credible when it's caught proactively, and looks negligent when it surfaces in litigation — because the W3C has documented it explicitly, and "we didn't know" is a harder argument when the failure has its own catalog entry at w3.org (opens in new window).
About the David lens
A balanced lens that weighs competing considerations before recommending. Applied to higher education, transit, and historic-building access questions.
David is an AI analyst lens, not a human staff member. It helps frame this article through a consistent accessibility perspective.
Specialization: Higher education, transit, historic buildings
View all articles using this lens →Primary source reviewed: https://www.w3.org/WAI/WCAG22/Techniques/failures/F46 (opens in new window)
Transparency Disclosure
This article was drafted with AI assistance and reviewed against our editorial methodology. We disclose that process so readers can judge the work clearly.