How to fix empty table header on Adobe Commerce (Magento)
Add descriptive text to every table header cell (`<th>`) so that screen readers can announce what each column or row represents.
Steps for Adobe Commerce (Magento)
- Tables in Adobe Commerce appear in product listing pages, comparison pages (`catalog/product/compare/list.phtml`), cart (`checkout/cart/item/default.phtml`), and order history templates.
- SSH into your server or use your IDE to open the relevant `.phtml` template file inside your custom theme directory: `app/design/frontend/<Vendor>/<Theme>/`.
- Search for `<th` tags that have no text content between the opening and closing tag. Add a descriptive text label or `aria-label` attribute to each.
- Common locations: `Magento_Catalog/templates/product/list.phtml`, `Magento_Checkout/templates/cart/item/default.phtml`, `Magento_Catalog/templates/product/compare/list.phtml`.
- After editing, run `bin/magento cache:clean && bin/magento cache:flush` from the CLI to clear the cache.
- Re-test with axe DevTools or WAVE on the storefront to confirm all table headers now have accessible names.
<th scope="col">Price (USD)</th>
<!-- Visually hidden label for a decorative/spacer corner cell -->
<th scope="col" aria-label="Product thumbnail"></th>
<!-- Icon-only header with aria-label -->
<th scope="col" aria-label="Add to cart"></th>What is empty table header?
A table header cell (`<th>`) is the label that sits at the top of a column or the start of a row in an HTML table — it tells everyone what kind of data that column or row contains (e.g., "Product Name," "Price," "Quantity"). An "empty table header" means one or more of those label cells exists in your page's code but contains no readable text. The cell may look fine visually (perhaps it's a decorative spacer or uses an icon), but it has nothing for a screen reader to announce. Screen readers rely on header text to describe a table's structure, so when a header is blank, users who are blind or have low vision lose the context they need to understand the data.
**Accessibility & legal risk:** Empty table headers violate WCAG 2.1 Success Criterion 1.3.1 (Info and Relationships), which is the benchmark used in accessibility lawsuits and regulatory audits (ADA, EN 301 549, EAA 2025). A single empty header in a product-comparison or pricing table can make that entire table unusable for customers who rely on assistive technology — costing you sales and exposing you to legal liability. **SEO:** Search engines also use table structure to understand tabular content; properly labelled headers improve the semantic clarity of your pages, which can contribute to better crawlability and richer structured understanding of your data. **Conversions:** Accessible, well-labelled product or size tables are easier for all customers to scan, reducing the friction that causes shoppers to abandon a purchase.
See the complete Empty table header guide for every platform and the full background.
Not sure if your Adobe Commerce (Magento) store has this?
Run a free SEOLZ audit — we’ll find empty table header and every other issue across your whole site.
Scan my site free