Are your Shopify forms accessible?
An accessible Shopify form gives every input a real label, announces errors in text and to assistive technology, moves focus to the first error on submit, preserves what the shopper already typed, and never relies on color alone to signal a problem.
The placeholder-as-label trap
The single most common form failure on Shopify stores is using placeholder text instead of a label. It looks clean, and it fails everyone. Placeholder text disappears when the shopper types, so there is no way to check what the field was for. Screen readers often skip placeholders entirely, so the input is announced as "edit text" with no name. And placeholders fail contrast requirements more often than not.
The fix is unglamorous: a visible label connected to the input with a for and id pair, plus the placeholder kept only as a format hint, like "MM/DD/YYYY", never as the name of the field. This one change fixes the majority of form accessibility failures we see in audits.
Errors nobody can find
Shopify's default form handling, and most theme customizations of it, announce errors badly. The typical pattern: the page reloads or the form area updates, and the error appears in red text near the field. A sighted shopper who scrolls might find it. A screen reader user gets no announcement at all, because the error was inserted into the page without a live region or a focus move.
Accessible error handling has four parts. Each error is described in text, naming the field and the problem. Each error is programmatically connected to its field with aria-describedby. On submit, focus moves to the first invalid field or to an error summary at the top of the form. And everything the shopper already typed is preserved, so fixing one field does not mean retyping five.
Color is not communication
Red borders on invalid fields are fine as a supplement. As the only signal, they fail. Shoppers with color vision deficiency may not distinguish the red border from the default one, and screen readers do not announce border colors at all. Every error state needs a text or icon companion: the word "Error" in the message, an icon with alt text, or both.
The same applies to success states. A green checkmark with no text is invisible to assistive technology. Pair it with words: "Email confirmed" beats a checkmark every time.
The popup form problem
Newsletter popups and slide-in signup forms are accessibility minefields. The popup appears, and keyboard focus stays behind it on the page. The shopper tabs through content they cannot see while the popup sits on top. When the popup closes, focus drops to the top of the page instead of returning to where it was.
An accessible popup traps focus inside itself while open, announces itself to screen readers when it appears, closes on Escape, and returns focus to the triggering element on close. It also needs to be dismissible without a mouse, which rules out the tiny low-contrast X buttons many themes ship with. If your popup cannot meet this bar, a static inline signup form converts nearly as well with none of the risk.
Required fields and instructions
Mark required fields with text, not just an asterisk. The asterisk convention is widespread but it is only meaningful if the form explains it, and screen readers announce bare asterisks inconsistently. The word "required" in the label is unambiguous for everyone.
Put format instructions with the field, not in an error after the fact. If the phone field wants ten digits with no dashes, say so next to the field. Discovering the format through trial and error is frustrating for every shopper and a genuine barrier for shoppers using dictation or switch devices.
Why forms are a lawsuit magnet
Forms sit directly on the purchase path: newsletter signup before the discount, account creation before checkout, contact forms when something goes wrong. An inaccessible form does not just annoy a shopper. It blocks the transaction, which is exactly the harm ADA demand letters cite. Test every form on your store with a keyboard and a screen reader, fix the labels first, then the errors, then the popups. The order matters because labels are the cheapest fix with the widest impact.