Can your Shopify announcement bar trap keyboard users?
Yes, and it is one of the most common keyboard failures we find on Shopify stores, because the bar sits at the very top of the page, exactly where keyboard navigation begins. A rotating announcement bar can steal focus as messages change, its dismiss button is often unreachable by keyboard, and auto-rotating messages with no pause control violate WCAG 2.2.2 outright. Five minutes with the Tab key tells you whether yours is guilty.
Why the bar is where keyboard journeys break
Keyboard users start at the top of the page and tab forward through every interactive element. The announcement bar is position zero: the first thing in the tab order. If anything in that bar misbehaves, it poisons the entire journey before the shopper has even reached the navigation. A bar that traps focus or yanks it around does not just annoy, it can make the store effectively unusable for keyboard-only shoppers.
Bars also get installed and forgotten. A merchant adds a rotating promo bar in November, and by March nobody on the team has looked at its behavior. Meanwhile it has been auto-rotating through messages every four seconds, announcing each change to screen readers and yanking focus, for months.
The three failures
Focus theft is the worst. Some rotating bars move DOM focus to each new message as it appears, which rips the keyboard user out of wherever they were reading and drops them at the top of the page, repeatedly, every few seconds. This is not a minor annoyance; it makes the page unusable.
Unreachable dismiss is the most common. The little X that closes the bar is often a div with a click handler and no keyboard support: no tabindex, no button semantics, no Enter or Space handling. Mouse users close the bar in one click. Keyboard users cannot close it at all, so it sits in their tab order forever, sometimes trapping focus in a loop.
Auto-rotation without pause violates WCAG 2.2.2, which requires a mechanism to pause, stop, or hide any moving content that starts automatically and lasts more than five seconds. A rotating promo bar with no pause button fails this criterion on its face, and it is exactly the kind of clear-cut failure that shows up in demand letters.
The five-minute keyboard test
Load your homepage and press Tab until you reach the bar. Can you reach the dismiss control? Does it activate with Enter? Now leave the page alone for thirty seconds: does the message change on its own, and is there any way to pause it? Finally, tab through a full rotation cycle and watch where focus goes. If focus jumps without your input, if the X is unreachable, or if rotation cannot be paused, the bar fails.
Run the same test with a screen reader if you can. Each automatic message change may be announced as a live-region update, which means the shopper hears promo copy interrupting whatever they were reading, on loop. That is the experience your bar is creating right now.
What a compliant bar looks like
Static by default is the simplest fix, and for most stores it is also the best-converting one: one message, no rotation, no motion. If you must rotate, add a visible pause button that keyboard users can reach and operate, and honor prefers-reduced-motion by defaulting to static for users who request it.
Make the dismiss control a real button with an accessible name like Dismiss announcement. Never move focus automatically when messages change; if you use a live region, set it to polite and update it sparingly. And keep the bar out of the tab order when it contains no interactive elements: a static text bar should not be a tab stop at all.
Why this shows up in demand letters
Announcement-bar failures are attractive to plaintiffs' firms because they are trivially demonstrable: load the page, press Tab, record the trap. There is no judgment call involved, no assistive-technology quirk to debate. A keyboard trap at position zero of the page is about as clear a barrier as exists in web accessibility, and the fix is usually an hour of theme work. Test it this week, before someone else tests it for you.