← All criteria
1.3.1 (tables)Level AWCAG 2.0Auto-fix: Partial

Info and Relationships — semantic tables

Tabular data must use semantic table markup (`<table>`, `<thead>`, `<tbody>`, `<th scope>`, `<td>`) so screen readers can navigate the data with row/column header context.

What it requires

A focused subsection of WCAG 1.3.1 covering tabular data specifically. Visual users see a grid; screen-reader users navigate by cell with each cell announced as "row 3, column 2, [header label], [cell value]". This requires real `<table>` markup with `<th scope="col">` and `<th scope="row">`.

Common failure: `<div class="grid">` styled to look like a table but rendering with no row/column header context to assistive technology. Browsers + screen readers cannot recover the table semantics from the visual styling.

Common Shopify failure

Nutrition-facts panel on food merchant's product page rendered as styled `<div>` grid. Spec table on electronics merchant's product page rendered as flexbox layout. Comparison-matrix block from a page-builder app rendered as nested divs.

How to fix it

AccessComply detects grid-styled non-semantic tables via heuristic (rectangular grid + numeric content + header-like first row) and rewrites them to semantic `<table>` markup with `<th scope="col">` and `<th scope="row">` declarations.

Merchant QA checklist

  • Scan the storefront page where this pattern appears: product pages, collection pages, cart drawer, customer-account pages, and any landing page built with theme sections.
  • Confirm the issue is fixed in the rendered browser output, not only in the Liquid file. Shopify section settings, app blocks, and third-party scripts can reintroduce the same 1.3.1 (tables) failure after a theme edit.
  • Re-test the affected component with keyboard navigation and a screen-reader accessibility tree before publishing the theme, especially when the fix changes markup or ARIA attributes.

How AccessComply handles it

AccessComply treats WCAG 1.3.1 (tables) as a rendered-storefront issue first. The scanner checks the live DOM and computed styles, maps the finding back to the Shopify theme file that produced it, then classifies the fix as a guided partial fix. When automation is safe, the app writes the smallest theme-code change needed and keeps the original theme backup available. When merchant judgment is required, the issue is surfaced for manual review instead of pretending the page is fixed.

Primary source: W3C — WCAG 2.0 Understanding 1.3.1 (tables)