Bug 68: Table — Layout Table Without Semantics

WCAG 1.3.1 (Info & Relationships) | Table used for layout instead of data, confuses screen readers.

Bug: Layout Table Treated as Data

Sidebar

Navigation items

Main Content

Article content here...

Screen reader announces non-existent headers/structure, confusing layout.

Bug: Layout Table Without role="presentation"
<!-- BUG: Layout table with no semantics marked --> <table> <tr> <td>Sidebar</td> <td>Content</td> </tr> </table> <!-- FIXED: HAL adds role="presentation" --> <table role="presentation"> <tr> <td>Sidebar</td> <td>Content</td> </tr> </table>
Bug: Nested Tables Confusing Structure

Nested layout tables create complex linearization that confuses screen readers. Modern CSS (Flexbox, Grid) should be used instead.

Bug: Table Without Borders, Looks Like Layout
Header 1 Header 2
Data 1 Data 2

Visual styling (borders) shouldn't determine semantic meaning. Use <th> and proper markup.

How HAL Fixes This: HAL detects layout tables (no header cells, visual-only structure) and adds role="presentation" or role="none". For data tables, HAL ensures proper semantic markup regardless of styling. HAL may also recommend restructuring with modern CSS alternatives (Flexbox, Grid) instead of nested layout tables.