Which WCAG criterion this fails
- Does not meet 1.3.1 Info and Relationships (Level A)
- Does not meet 2.4.6 Headings and Labels (Level AA)
How to fix it on WooCommerce
Everything below is done from Appearance > Theme File Editor, or your child theme over SFTP. Take a copy of the theme before editing.
- Online Store > Themes > Customize. Find the section named in the finding and either fill in its heading or remove the block.
- If the theme renders the heading tag unconditionally, wrap it: {% if section.settings.heading != blank %} … {% endif %}.
- A heading that contains only an image must give that image alt text — the alt becomes the heading text.
- If a heading exists only for spacing, delete it and use CSS margin instead.
Where this usually lives
Block editor heading blocks left empty, and page-builder section titles
Paths given for Storefront, Astra, Flatsome and other WooCommerce themes. A heavily customised theme may differ; the CSS selector in your scan report points at the exact element.
Code
{% if section.settings.heading != blank %}
<h2 class="title">{{ section.settings.heading | escape }}</h2>
{% endif %}
<!-- Heading whose content is an image -->
<h1><img src="{{ 'logo.svg' | asset_url }}" alt="{{ shop.name }}"></h1>How to confirm it is fixed
Re-run the scan. This rule should drop out of the findings entirely. If the instance count falls but does not reach zero, the same defect exists in another template — product cards and quick-view modals are the usual second home for it.
Effort: low. Rule id: empty-heading (axe-core).