Label title only
Moderate effortFound on 3% of audited stores.
Add a visible, persistent label to every form field so it is never labeled only by a tooltip (title) or hidden description (aria-describedby).
What it is
Every input field on your website — search boxes, email fields, quantity pickers, checkout fields, newsletter sign-ups — needs a clearly visible label that tells the user what to type. Right now, one or more of your fields uses only a "title" attribute (which shows as a browser tooltip on hover) or an `aria-describedby` attribute (which is hidden to sighted users) as its label. These hidden or tooltip-only labels look fine to most visitors, but they are invisible to screen readers used in the way they expect, and they disappear entirely on touch screens, keyboard-only navigation, and many assistive technologies. A true accessible label is text that is always visible on screen next to the field, or at minimum announced correctly by all assistive technology via a proper `<label>` element or `aria-label`.
Why it matters
Failing this check means your store is not compliant with WCAG 2.1 Success Criterion 1.3.1 (Info and Relationships) and 3.3.2 (Labels or Instructions), which are the accessibility standards referenced by ADA, Section 508, and the European Accessibility Act. This creates real legal risk — accessibility lawsuits against e-commerce stores have increased sharply, and missing form labels are one of the most commonly cited issues. Beyond legal exposure, unlabeled fields make checkout and sign-up forms unusable for the roughly 1-in-5 shoppers who have a disability, directly costing you conversions. Search engines also use accessible markup as a quality signal, so fixing this supports your overall SEO health.
How to fix it
- Identify every form field flagged by your accessibility scanner — common culprits are search bars, email/newsletter inputs, quantity fields, coupon code boxes, and checkout address fields.
- For each field, add a visible `<label>` element that is explicitly linked to the input using matching `for` and `id` attributes (e.g., `<label for="email">Email address</label><input type="email" id="email">`).
- If a visible label is genuinely impossible due to design constraints (e.g., an inline search bar), use `aria-label` directly on the `<input>` element instead of relying on the `title` attribute (e.g., `<input type="search" aria-label="Search products">`). Remove any `title`-only or `aria-describedby`-only labeling from these fields.
- Never use the `title` attribute or `aria-describedby` alone as the sole label for a form control — these are supplementary descriptions, not primary labels, and are not reliably announced by all screen readers.
- Test your fix: use a screen reader (NVDA + Firefox, or VoiceOver on Mac/iOS) and navigate to the form field with the Tab key — the screen reader should announce a meaningful label immediately when the field receives focus.
- Re-run your accessibility scanner to confirm the `label-title-only` violations are resolved before publishing.
<label for="email-field">Email address</label>
<input type="email" id="email-field" name="email" placeholder="you@example.com">
<!-- OR, for a visually-constrained search bar where a visible label isn't shown: -->
<input type="search" aria-label="Search products" placeholder="Search…">
<!-- ❌ WRONG — title-only or aria-describedby-only labeling: -->
<input type="email" title="Enter your email" placeholder="Email">
<input type="text" aria-describedby="hint-text"><span id="hint-text">Your name</span>Fix it on your platform
Pick your platform for the exact steps.
How to fix label title only on Shopify
- In your Shopify admin, go to Online Store → Themes → click 'Customize' on your active theme, then click 'Edit code' (Actions → Edit code).
- Locate the relevant template or section file — common files are `sections/header.liquid` (search bar), `templates/customers/login.liquid` (login form), `templates/cart.liquid` (quantity/coupon fields), and `sections/footer.liquid` (newsletter signup).
- Find the `<input>` element that has only a `title` attribute or is wrapped without a `<label>`. Add a paired `<label for="FIELD_ID">Visible Label Text</label>` before the input, and ensure the input has a matching `id="FIELD_ID"`. For search inputs, you can add `aria-label="Search"` directly on the `<input>` tag if a floating label is preferred.
- Save the file, preview on a test theme if possible, then publish. Re-run your accessibility scanner to verify.
How to fix label title only on Shopify Plus
- Shopify Plus stores use the same theme code structure. Access Online Store → Themes → Actions → Edit code.
- For checkout-specific fields (checkout.liquid is available on Plus only): go to Online Store → Themes → Actions → Edit code → `layout/checkout.liquid` and inspect any custom input fields for missing `<label>` elements.
- Apply the same label/aria-label fix described in the Shopify steps above, paying particular attention to custom checkout upsell or gift-message input fields added via scripts.
- Use Shopify's Theme Inspector or a browser accessibility tool (axe DevTools extension) to verify after saving.
How to fix label title only on WooCommerce
- In your WordPress admin, go to Appearance → Theme File Editor (or use a child theme via FTP/SFTP) and locate the relevant template — common files include `woocommerce/templates/checkout/form-checkout.php`, `form-login.php`, and `form-billing.php`.
- Alternatively, install the free 'WooCommerce Accessibility' plugin or use a page builder's field settings to add visible labels.
- For fields missing a visible label, override the WooCommerce template in your child theme: copy the file from `wp-content/plugins/woocommerce/templates/` to `wp-content/themes/YOUR-CHILD-THEME/woocommerce/` and edit the input to add `<label for="FIELD_ID">Label Text</label>` before each `<input>`.
- For widgets like the search bar: go to Appearance → Widgets, find the Search widget, and ensure the label is visible (many themes hide it with CSS — remove the `display:none` or `visibility:hidden` style from the label rather than deleting the label element itself).
- Re-run your accessibility scanner to confirm the fix.
How to fix label title only on BigCommerce
- In your BigCommerce admin, go to Storefront → My Themes → click 'Advanced' → 'Edit Theme Files' on your active theme.
- Navigate to the relevant template file — common locations are `templates/components/common/header.html` (search), `templates/pages/auth/login.html` (login form), `templates/pages/checkout` (checkout fields), and `templates/components/newsletter` (newsletter).
- Find the `<input>` element using only a `title` attribute. Add a `<label for="FIELD_ID">Visible Label</label>` before the input and add `id="FIELD_ID"` to the input element. For design-constrained fields, add `aria-label="Description"` directly on the `<input>` and remove any standalone `title` labeling.
- Save and preview changes. Use the BigCommerce Stencil CLI for local development and testing before pushing to production.
How to fix label title only on Wix
- Open the Wix Editor for your site. Click on the form or input element that is flagged.
- Select the element and open its Settings panel. Look for a 'Label' toggle or 'Placeholder' field — ensure 'Show Label' is turned ON and enter descriptive label text (e.g., 'Email address', not just 'Email').
- For Wix Forms: go to the form widget → Settings → Form Fields → select each field → enable 'Show label' and provide meaningful label text.
- For custom-coded elements added via Velo (Wix's developer platform): open the Velo code editor and add an `aria-label` attribute to any input that cannot show a visible label, using `$w('#inputID').setAttribute('aria-label', 'Description')`.
- Publish your site and verify with an accessibility checker.
How to fix label title only on Squarespace
- In the Squarespace editor, click on the Form Block containing the flagged fields.
- Click 'Edit' on the form, then select each field. Ensure the 'Label' field is filled in with descriptive text and the label display is set to 'Show' (not hidden). Squarespace form fields support visible labels natively — do not rely solely on placeholder text.
- For the built-in Newsletter Block or search field, go to Pages → Not Linked → or insert the block and configure its settings to display a visible label. If the template hides labels via CSS, add a CSS override via Design → Custom CSS to remove `display:none` from label elements rather than deleting them.
- Squarespace does not give direct HTML access to most form elements; if a form requires fully custom accessible markup, use a Code Block embedding a custom HTML form with proper `<label>` elements.
- Save, preview, and verify with an accessibility scanning browser extension.
How to fix label title only on Webflow
- Open your project in the Webflow Designer. Click on the Form Block or the individual Input element that is flagged.
- In the left panel (Navigator) or by clicking directly, select the Label element that should be associated with the input. Ensure its text content is descriptive (e.g., 'Email address') and it is visible (not set to `display: none` or `visibility: hidden` in the Style panel).
- To associate the label with the input: select the Label element → in the Settings panel (gear icon), set the 'For' attribute to match the input's ID. Then select the Input element → Settings → set its 'ID' to that same value.
- For inputs where a visible label is not desired (e.g., search bar), select the Input element → Settings → Custom Attributes → add `aria-label` with a descriptive value (e.g., `Search products`). Remove any `title`-only attribute used as a label.
- Publish and verify with axe DevTools or another browser accessibility extension.
How to fix label title only on Adobe Commerce (Magento)
- Identify the PHTML template responsible for the flagged form field. Common locations: `app/design/frontend/VENDOR/THEME/Magento_Checkout/templates/form/` (checkout), `Magento_Customer/templates/form/` (login/register), `Magento_Search/templates/` (search).
- Copy the core template into your custom theme's folder (following Magento's template override convention) so you do not edit core files directly.
- In the copied template, locate the `<input>` element. Add `<label for="FIELD_ID">Visible Label Text</label>` before it and ensure the input has `id="FIELD_ID"`. For design-constrained fields (e.g., the top search bar), add `aria-label="Search"` directly on the `<input>` and remove the `title`-only attribute.
- Run `bin/magento cache:clean` and `bin/magento setup:static-content:deploy` after saving template changes.
- Verify in a staging environment with an accessibility scanner before deploying to production.
How to fix label title only on Magento Open Source
- Follow the same process as Adobe Commerce (Magento) above — override the relevant PHTML template in your custom theme directory.
- After adding visible `<label>` elements or `aria-label` attributes, clear the Magento cache: Admin → System → Cache Management → Flush Magento Cache.
- Test on staging before deploying to production.
How to fix label title only on WordPress.org
- For theme-controlled forms (search, comments, newsletter), open your child theme's template files in Appearance → Theme File Editor or via FTP. Locate `searchform.php`, `comments.php`, or the relevant template part and add a `<label for="s">Search</label>` (or equivalent) before each unlabeled input.
- For plugin-generated forms (Contact Form 7, Gravity Forms, WPForms, etc.): open the form builder in the plugin's admin area, select the field, and enable 'Show label' or fill in the 'Field Label' setting. Never leave the label blank and rely only on placeholder text or a tooltip.
- If a label must be visually hidden for design reasons, use a CSS class like `.screen-reader-text` (built into most WordPress themes) on the `<label>` element rather than removing the label or using `title` alone — this keeps the label accessible to screen readers while hiding it visually.
- Save and verify with the axe browser extension or WP Accessibility plugin.
How to fix label title only on PrestaShop
- In your PrestaShop admin, go to Design → Theme & Logo → and use FTP to access your active theme's template files under `themes/YOUR_THEME/templates/`.
- Locate the relevant `.tpl` file — common files are `customer/authentication.tpl` (login/register), `checkout/checkout.tpl` (checkout fields), and `_partials/header.tpl` (search).
- For each `<input>` that has only a `title` attribute, add `<label for="FIELD_ID">Visible Label</label>` before the input and add `id="FIELD_ID"` to the `<input>` tag. For icon-only search bars, add `aria-label="Search"` to the input.
- Clear the PrestaShop cache (Advanced Parameters → Performance → Clear cache) and verify with an accessibility scanner.
Does your site have this issue?
Run a free SEOLZ audit to find label title only — and every other issue — across your whole site in minutes.
Scan my site freeFrequently asked questions
What is Label title only?
Every input field on your website — search boxes, email fields, quantity pickers, checkout fields, newsletter sign-ups — needs a clearly visible label that tells the user what to type. Right now, one or more of your fields uses only a "title" attribute (which shows as a browser tooltip on hover) or an `aria-describedby` attribute (which is hidden to sighted users) as its label. These hidden or tooltip-only labels look fine to most visitors, but they are invisible to screen readers used in the way they expect, and they disappear entirely on touch screens, keyboard-only navigation, and many assistive technologies. A true accessible label is text that is always visible on screen next to the field, or at minimum announced correctly by all assistive technology via a proper `<label>` element or `aria-label`.
Why does label title only matter?
Failing this check means your store is not compliant with WCAG 2.1 Success Criterion 1.3.1 (Info and Relationships) and 3.3.2 (Labels or Instructions), which are the accessibility standards referenced by ADA, Section 508, and the European Accessibility Act. This creates real legal risk — accessibility lawsuits against e-commerce stores have increased sharply, and missing form labels are one of the most commonly cited issues. Beyond legal exposure, unlabeled fields make checkout and sign-up forms unusable for the roughly 1-in-5 shoppers who have a disability, directly costing you conversions. Search engines also use accessible markup as a quality signal, so fixing this supports your overall SEO health.
How do I fix label title only?
Add a visible, persistent label to every form field so it is never labeled only by a tooltip (title) or hidden description (aria-describedby).
Authoritative references
- How to fix this specific rule — Deque/axe (rule reference)
- WCAG 2 overview — W3C WAI
- Forms tutorial — W3C WAI
- ARIA basics — MDN