Most German Online Shops Are Currently Breaking the Law
Since June 28, 2025, every B2C online shop selling to customers in Germany must comply with the Barrierefreiheitsstaerkungsgesetz (BFSG) -- Germany's implementation of the European Accessibility Act (EAA). That is not a recommendation. It is the law.
The reality? The vast majority of Shopify stores operating in the German market are not compliant. Not even close. Most shops have critical accessibility issues on every single page: missing alt texts, broken keyboard navigation, insufficient color contrast, inaccessible forms. Each of these is now a legal violation that can result in fines of up to 100,000 EUR.
If you are reading this and thinking "this probably does not apply to me" -- it almost certainly does. The exemptions are narrow. The enforcement is real. And the deadline has already passed.
This guide covers exactly what the BFSG requires, what WCAG 2.1 AA compliance means for your Shopify store in practice, and a prioritized action plan to get compliant as quickly as possible.
What Is the BFSG?
The Barrierefreiheitsstaerkungsgesetz (Accessibility Strengthening Act) is Germany's national implementation of the European Accessibility Act (EAA), an EU-wide directive that mandates digital accessibility for products and services. The EAA was adopted in 2019 and gave member states until June 2025 to transpose it into national law.
Germany's implementation is among the strictest in Europe.
Who Does It Apply To?
The BFSG applies to all businesses that offer products or services to consumers (B2C) through digital channels -- including online shops, mobile apps, and e-commerce platforms. If you sell to end consumers in Germany, you are covered. It does not matter where your company is headquartered.
Key point: The BFSG applies based on where your customers are, not where your business is registered. A Shopify store based in the US, UK, or anywhere else that sells to German consumers must comply.
The Exemption: Micro Businesses
There is exactly one exemption. You are exempt if your business meets both of these criteria simultaneously:
| Criterion | Threshold |
|---|---|
| Number of employees | Fewer than 10 |
| Annual revenue | Less than 2 million EUR |
Both conditions must be true. If you have 8 employees but generate 3 million EUR in revenue, you are not exempt. If you have 15 employees but only 1.5 million EUR in revenue, you are not exempt. The bar is set at the micro-business level for a reason -- the law is designed to cover essentially every commercially significant online shop.
What Are the Penalties?
The BFSG enforcement is handled by Germany's market surveillance authorities (Marktuebuerwachungsbehoerden). Penalties include:
- Fines from 10,000 EUR to 100,000 EUR per violation
- Orders to cease sales of non-compliant digital services
- Public naming of non-compliant businesses
- Repeated violations can result in escalating penalties
The enforcement is not theoretical. German authorities have a track record of enforcing consumer protection regulations aggressively, and accessibility is increasingly on their radar. Consumer protection organizations can also file complaints on behalf of affected users.
The Timeline
| Date | Event |
|---|---|
| June 2019 | European Accessibility Act (EAA) adopted by the EU |
| July 2021 | BFSG passed into German law |
| June 28, 2025 | BFSG enforcement begins -- all B2C digital services must be compliant |
| Ongoing | Market surveillance authorities conduct audits and process complaints |
There is no grace period. There is no "we are working on it" defense. Since June 28, 2025, your shop must be accessible. If it is not, you are in violation.
What Does WCAG 2.1 AA Actually Require?
The BFSG references the EN 301 549 European standard, which in turn is based on WCAG 2.1 at the AA conformance level. WCAG stands for Web Content Accessibility Guidelines, published by the W3C (World Wide Web Consortium).
WCAG 2.1 AA is built on four principles, often remembered by the acronym POUR:
1. Perceivable
Content must be presentable to users in ways they can perceive -- regardless of whether they can see, hear, or process information the way most people do.
Concrete requirements:
- Text alternatives (alt text): Every non-decorative image must have a descriptive alt attribute. Product images need alt text that describes the product, not just "image" or "photo"
- Captions and transcripts: Video content needs captions. Audio content needs transcripts
- Color is not the only indicator: You cannot use color alone to convey information. A red "out of stock" label also needs text or an icon
- Contrast ratios: Normal text must have a contrast ratio of at least 4.5:1 against its background. Large text (18px+ bold or 24px+ regular) needs at least 3:1
- Text resizing: Content must remain functional when text is resized up to 200% without loss of content or functionality
- Reflow: Content must reflow properly at 320px viewport width (no horizontal scrolling)
2. Operable
Users must be able to operate all interface components and navigation, regardless of how they interact with the page.
Concrete requirements:
- Full keyboard accessibility: Every interactive element -- links, buttons, form fields, menus, modals, carousels -- must be reachable and operable with a keyboard alone
- Visible focus indicators: When tabbing through the page, a visible outline or highlight must show which element is currently focused
- No keyboard traps: Users must be able to navigate into and out of every component using only the keyboard
- Skip navigation: A "Skip to main content" link should be the first focusable element on the page
- Sufficient time: If content has time limits (e.g., checkout timers), users must be able to extend or disable them
- No seizure-inducing content: No flashing content that flashes more than 3 times per second
- Pause, stop, hide: Any automatically moving, blinking, or scrolling content (carousels, marquees, auto-playing videos) must have controls to pause, stop, or hide it
3. Understandable
Content and interface behavior must be understandable to users.
Concrete requirements:
- Language declaration: The page must declare its language in the HTML
langattribute (e.g.,lang="de"for German) - Consistent navigation: Navigation must be consistent across pages -- same order, same location
- Error identification: Form errors must be clearly identified in text, not just with color
- Error suggestion: When a form input error is detected, suggestions for correction should be provided
- Labels and instructions: Every form field needs a visible, associated label. Placeholder text alone is not sufficient
- Predictable behavior: Elements should behave predictably. No unexpected context changes on focus or input
4. Robust
Content must be robust enough to be interpreted reliably by a wide variety of user agents, including assistive technologies.
Concrete requirements:
- Valid HTML: Clean, valid markup that assistive technologies can parse correctly
- ARIA attributes: Proper use of WAI-ARIA roles, states, and properties where native HTML semantics are insufficient
- Name, role, value: All user interface components must have accessible names, roles, and states that can be programmatically determined
- Status messages: Dynamic status changes (cart updates, form submissions, error messages) must be announced to screen readers via ARIA live regions
Shopify-Specific Accessibility Checklist
Here is a practical checklist tailored specifically to Shopify stores. This covers the most common compliance gaps we find during accessibility audits:
Images and Media
| Requirement | Shopify Implementation | Status Check |
|---|---|---|
| Alt text on all product images | Add via Products > Media > Edit alt text | Check: Do ALL product images have descriptive alt text? |
| Alt text on all content images | Add via theme editor or Liquid templates | Check: Do hero banners, icons, and blog images have alt text? |
| Decorative images marked as decorative | Use empty alt="" attribute | Check: Are purely decorative images (backgrounds, dividers) using alt=""? |
| Video captions | Upload SRT/VTT files or use YouTube's captioning | Check: Do all product and marketing videos have captions? |
| No auto-playing audio | Remove or add mute controls | Check: Does any media auto-play with sound? |
Navigation and Interaction
| Requirement | Shopify Implementation | Status Check |
|---|---|---|
| Skip to main content link | Add to theme.liquid before header | Check: Is a skip link the first focusable element? |
| Full keyboard navigation | Test: Tab through the entire site | Check: Can you reach and operate every element with keyboard only? |
| Visible focus indicators | CSS: outline on :focus-visible | Check: Can you see which element is focused when tabbing? |
| Mobile menu accessible | Ensure hamburger menu works with keyboard and screen readers | Check: Can the mobile menu be opened, navigated, and closed via keyboard? |
| Dropdown menus accessible | Add ARIA attributes (aria-expanded, aria-haspopup) | Check: Do dropdowns announce their state to screen readers? |
| Modal/popup accessibility | Focus trap, Escape to close, ARIA role="dialog" | Check: Are cookie banners, popups, and quick-view modals fully accessible? |
| Carousel controls | Add Previous/Next buttons with aria-labels, pause control | Check: Can carousels be controlled via keyboard? Is there a pause button? |
Forms and Checkout
| Requirement | Shopify Implementation | Status Check |
|---|---|---|
| All form fields have labels | Use <label for="..."> elements, not just placeholders | Check: Does every input have a visible, associated label? |
| Error messages are descriptive | Provide specific error text, not just "invalid input" | Check: Do error messages explain what went wrong and how to fix it? |
| Errors identified without color alone | Add icons or text in addition to red coloring | Check: Would a colorblind user understand the error state? |
| Required fields marked | Use aria-required="true" and visible indicator | Check: Are required fields clearly marked with text (not just an asterisk)? |
| Autocomplete attributes | Add autocomplete attributes to address and payment fields | Check: Do checkout fields use proper autocomplete values? |
Color and Typography
| Requirement | Shopify Implementation | Status Check |
|---|---|---|
| Text contrast minimum 4.5:1 | Verify all text/background combinations | Check: Run a contrast checker on every page |
| Large text contrast minimum 3:1 | Verify headings and large text | Check: Do large headings meet the 3:1 ratio? |
| Links distinguishable from text | Use underline or 3:1 contrast difference from surrounding text | Check: Can users distinguish links from regular text without relying on color? |
| Text resizable to 200% | Test with browser zoom | Check: Does the layout remain usable at 200% zoom? |
| Readable font sizes | Minimum 16px for body text | Check: Is body text at least 16px? |
Semantic HTML and ARIA
| Requirement | Shopify Implementation | Status Check |
|---|---|---|
| Proper heading hierarchy | H1 > H2 > H3, no skipped levels | Check: Is there exactly one H1 per page? Are headings in logical order? |
| Landmark regions | Use <header>, <nav>, <main>, <footer> | Check: Are page regions marked with HTML5 semantic elements? |
| Page language declared | <html lang="de"> or <html lang="en"> | Check: Is the lang attribute set correctly? |
| Button vs. link distinction | Use <button> for actions, <a> for navigation | Check: Are interactive elements using the correct HTML element? |
| ARIA live regions for dynamic content | Add aria-live="polite" to cart updates, notifications | Check: Are dynamic changes (add to cart, form errors) announced to screen readers? |
Common Accessibility Problems in Shopify Shops -- and How to Fix Them
These are the issues we encounter in nearly every Shopify store we audit. They are listed in order of how frequently they occur:
1. Missing or Useless Alt Text
The problem: Product images either have no alt text at all, or they have auto-generated text like "IMG_4832.jpg" or generic text like "product image." Screen reader users get no useful information about the product.
The fix: Write descriptive alt text for every product image. Describe what is actually in the image.
- Bad:
alt="product"oralt="IMG_4832" - Good:
alt="Navy blue organic cotton t-shirt, front view, crew neck, regular fit"
For stores with hundreds or thousands of products, prioritize your top-selling products first. Use Shopify's bulk editor or CSV export/import to update alt text efficiently.
2. Insufficient Color Contrast
The problem: Light gray text on white backgrounds, pale colored buttons, low-contrast placeholder text. This affects not just screen reader users but anyone with reduced vision -- which includes a significant portion of your customer base.
The fix: Test every text/background combination with a contrast checker. Common offenders in Shopify themes:
- Sale price text (often light red on white)
- Placeholder text in search and form fields
- Footer text on dark backgrounds
- Disabled button states
- Breadcrumb text
Adjust your theme's color variables. A contrast ratio of 4.5:1 is the minimum for normal text. Aim for 7:1 where possible -- it is better for everyone.
3. Keyboard Navigation Broken
The problem: Custom JavaScript components (mega menus, product filters, image galleries, quick-view modals) that only work with mouse interaction. Keyboard users cannot access them at all.
The fix: Test your entire site using only a keyboard. Start at the top of the page and Tab through every element. You should be able to:
- Reach every interactive element
- See a visible focus indicator on each element
- Activate buttons and links with Enter
- Toggle checkboxes and radio buttons with Space
- Navigate dropdown menus with Arrow keys
- Close modals with Escape
If any of these fail, the component needs JavaScript modifications to handle keyboard events. This often requires editing your theme's JavaScript or switching to an accessible theme.
4. Missing Form Labels
The problem: Form fields that use placeholder text as the only label. When a user starts typing, the placeholder disappears and the field has no visible label. Screen readers may not announce the field's purpose at all.
The fix: Add visible <label> elements associated with each form field via the for attribute. The label should remain visible even when the field has content. Floating labels (that move above the field on focus) are an acceptable pattern if implemented correctly.
Common places where labels are missing in Shopify stores:
- Newsletter signup forms
- Search fields
- Contact forms
- Account registration and login forms
- Cart quantity fields
5. Inaccessible Cookie Banners and Popups
The problem: Cookie consent banners that cannot be dismissed with a keyboard, newsletter popups that trap focus, or modals that do not announce their presence to screen readers. These are often the first thing a user encounters -- and if they are inaccessible, the entire site is effectively blocked.
The fix: Ensure your cookie banner and any popups follow these rules:
- Focus moves to the modal when it appears
- Focus is trapped within the modal while it is open (Tab does not go behind it)
- The modal can be closed with the Escape key
- The modal has
role="dialog"andaria-modal="true" - The modal has an accessible name via
aria-labelledbyoraria-label - When closed, focus returns to the element that triggered it
If you use a third-party cookie consent app, verify it meets these requirements. Many do not.
6. Auto-Playing Carousels Without Controls
The problem: Hero banners and product carousels that rotate automatically with no way to pause, stop, or manually control them. This is a WCAG 2.1 AA violation (Success Criterion 2.2.2) and is disorienting for many users.
The fix: Add visible Pause/Play controls. Add Previous/Next buttons with descriptive aria-labels. Ensure the carousel stops auto-playing when a user interacts with it or when it receives keyboard focus.
7. Missing Page Language Declaration
The problem: The HTML element does not have a lang attribute, or it has the wrong language. Screen readers use this to determine pronunciation. A German-language shop without lang="de" will have its content read with English pronunciation rules -- making it incomprehensible.
The fix: In your theme.liquid file, ensure the opening <html> tag includes the correct language attribute. For multilingual Shopify stores, use Shopify's request.locale.iso_code to set the language dynamically:
<html lang="{{ request.locale.iso_code }}">
Testing Tools for Accessibility Compliance
No single tool catches everything. Use a combination of automated tools and manual testing for comprehensive coverage.
Automated Testing Tools
| Tool | Type | What It Catches | Cost |
|---|---|---|---|
| axe DevTools | Browser extension (Chrome, Firefox) | Missing alt text, contrast issues, ARIA errors, form label issues | Free (core) / Paid (pro) |
| WAVE | Browser extension or web tool | Visual overlay showing errors, alerts, structural elements | Free |
| Google Lighthouse | Built into Chrome DevTools | Accessibility score with specific issues listed | Free |
| Pa11y | CLI tool / CI integration | Automated testing for build pipelines | Free (open source) |
| Siteimprove | SaaS platform | Large-scale scanning, compliance reporting, monitoring | Paid |
Manual Testing Methods
| Method | What It Tests | How to Do It |
|---|---|---|
| Keyboard-only navigation | Operability, focus management | Unplug your mouse. Tab through the entire site. Can you do everything? |
| Screen reader testing | Full perceivability, ARIA correctness | Use NVDA (free, Windows) or VoiceOver (built into macOS/iOS). Navigate your store as a blind user would |
| Browser zoom to 200% | Text resizing, reflow | Ctrl/Cmd + until you reach 200%. Does everything still work? |
| Color contrast analyzer | Contrast ratios | Use the Colour Contrast Analyser (CCA) tool or browser DevTools |
| Reduced motion testing | Motion/animation safety | Enable "Reduce motion" in your OS settings. Do animations respect this preference? |
Important: Automated tools catch approximately 30-40% of accessibility issues. The remaining 60-70% require manual testing. A Lighthouse score of 100 does not mean your site is accessible -- it means you passed the automated checks. Real accessibility testing requires a human navigating the site with assistive technology.
Implementation Priority: Where to Start
Not all accessibility fixes are equal. Here is a prioritized approach based on legal risk, user impact, and implementation effort:
Quick Wins (1-2 Days)
These fixes address the most common WCAG violations and require minimal technical skill:
| Fix | Impact | Effort |
|---|---|---|
| Add alt text to all product images | High -- affects every product page | Low -- bulk editable in Shopify admin |
Set the lang attribute on the HTML element | High -- affects screen reader pronunciation on every page | Low -- one line in theme.liquid |
| Fix color contrast violations | High -- affects readability for all users | Low-Medium -- update CSS color variables |
| Add visible labels to all form fields | High -- affects form usability for screen reader users | Low-Medium -- edit Liquid templates |
| Remove or fix auto-playing media | Medium -- WCAG 2.2.2 violation | Low -- add controls or disable autoplay |
Medium Effort (1-2 Weeks)
These require theme modifications and JavaScript changes:
| Fix | Impact | Effort |
|---|---|---|
| Implement skip navigation link | Medium -- helps keyboard and screen reader users | Medium -- add to theme.liquid, style with CSS |
| Fix keyboard navigation for all components | High -- affects all keyboard and screen reader users | Medium-High -- audit and fix each interactive component |
| Add visible focus indicators | High -- required for keyboard navigation | Medium -- CSS changes, testing across browsers |
| Make cookie banner and popups accessible | High -- blocks entire site if inaccessible | Medium -- JavaScript and ARIA modifications |
| Add proper heading hierarchy | Medium -- affects screen reader navigation | Medium -- audit and restructure headings site-wide |
| Add ARIA landmarks | Medium -- improves screen reader navigation | Medium -- add semantic HTML5 elements to templates |
Complex Changes (2-4 Weeks)
These may require significant development work or third-party solutions:
| Fix | Impact | Effort |
|---|---|---|
| Full accessible checkout flow | Critical -- legal requirement, directly affects conversions | High -- Shopify's checkout is partially managed; use Checkout Extensibility for custom elements |
| Accessible mega menu / navigation | High -- navigation is the backbone of the site | High -- may require rebuilding the navigation component |
| Accessible product filtering and sorting | High -- critical for product discovery | High -- custom JavaScript development required |
| ARIA live regions for dynamic content | Medium -- affects cart updates, wishlist, notifications | High -- requires JavaScript architecture changes |
| Comprehensive screen reader testing and fixes | Critical -- the definitive accessibility validation | High -- requires assistive technology expertise and iterative testing |
Cost Estimation: What Does BFSG Compliance Cost?
Let us be straightforward about costs. The investment depends heavily on the current state of your shop and the complexity of your theme:
Small Shopify Store (Standard Theme, < 100 Products)
| Item | Estimated Cost |
|---|---|
| Accessibility audit | 1,500 - 3,000 EUR |
| Alt text creation and content fixes | 500 - 1,500 EUR |
| Theme adjustments (CSS, minor Liquid changes) | 1,000 - 3,000 EUR |
| Testing and verification | 500 - 1,000 EUR |
| Total | 3,500 - 8,500 EUR |
Medium Shopify Store (Custom Theme, 100-1,000 Products)
| Item | Estimated Cost |
|---|---|
| Comprehensive accessibility audit | 3,000 - 5,000 EUR |
| Alt text and content remediation | 1,500 - 4,000 EUR |
| Theme and component development | 3,000 - 8,000 EUR |
| Checkout and form accessibility | 1,500 - 3,000 EUR |
| Testing, screen reader validation, and documentation | 1,500 - 3,000 EUR |
| Total | 10,500 - 23,000 EUR |
Large Shopify Plus Store (Heavily Customized)
| Item | Estimated Cost |
|---|---|
| Full accessibility audit with compliance report | 5,000 - 10,000 EUR |
| Content remediation (images, videos, documents) | 3,000 - 10,000 EUR |
| Custom theme and component development | 8,000 - 25,000 EUR |
| Checkout Extensibility accessibility work | 3,000 - 8,000 EUR |
| Assistive technology testing (multiple screen readers, devices) | 2,000 - 5,000 EUR |
| Ongoing monitoring and maintenance (annual) | 3,000 - 6,000 EUR |
| Total | 24,000 - 64,000 EUR |
The Cost of Non-Compliance
Compare these investment figures to the cost of non-compliance:
- Single fine: 10,000 - 100,000 EUR
- Repeated violations: Escalating fines, potential sales ban
- Legal costs: If a consumer organization or affected individual takes action
- Lost revenue: An estimated 15-20% of the population has some form of disability. An inaccessible shop loses these customers entirely
- Reputation damage: Public naming of non-compliant businesses
The math is clear: Investing in accessibility is significantly cheaper than the penalties for ignoring it. And unlike a fine, accessibility improvements actually generate return -- through a larger addressable market, better SEO (Google rewards accessible sites), and improved usability for all customers.
Beyond Compliance: Why Accessibility Is Good Business
Legal compliance is the baseline, but the business case for accessibility goes much further:
SEO benefits: Many accessibility improvements directly improve SEO. Alt text helps Google understand your images. Proper heading structure helps crawlers parse your content. Semantic HTML improves how search engines index your pages. Google has explicitly stated that accessibility is a factor in search quality evaluation.
Larger market: In Germany alone, approximately 7.8 million people have a recognized severe disability (Schwerbehinderung). In the EU, 87 million people live with a disability. Add temporary impairments (broken arm, eye surgery recovery) and situational limitations (bright sunlight on a phone screen, noisy environment), and the number grows dramatically.
Better conversion rates: Accessible sites have lower bounce rates and higher conversion rates. Clearer navigation, better form usability, and improved readability benefit every customer -- not just those using assistive technology.
Mobile performance: Many accessibility best practices -- touch target sizes, readable text, simple navigation -- directly improve the mobile experience, which accounts for 63% of German e-commerce revenue.
The BFSG Compliance Summary
Here is what you need to do, distilled to the essentials:
-
Audit your store now. Run automated tests (axe DevTools, WAVE, Lighthouse) and perform manual keyboard and screen reader testing. Document every issue.
-
Prioritize by legal risk. Fix the issues that affect the most users and carry the highest violation risk first: alt text, contrast, keyboard navigation, form labels, page language.
-
Fix your theme. Most Shopify themes are not fully accessible out of the box. Budget for theme modifications -- CSS, Liquid, and JavaScript changes.
-
Test with real assistive technology. Automated tools miss the majority of issues. Test with NVDA or VoiceOver. Test with keyboard only. Test at 200% zoom.
-
Document your compliance. The BFSG requires you to provide an accessibility statement (Erklaerung zur Barrierefreiheit) on your website. This statement must describe the accessibility status of your site, known limitations, and a feedback mechanism for users to report issues.
-
Monitor continuously. Accessibility is not a one-time project. Theme updates, new products, new apps, and content changes can introduce regressions. Build accessibility checks into your workflow.
How TG-AI Can Help
We perform comprehensive accessibility audits for Shopify stores, combining automated scanning with manual expert testing -- including screen reader and keyboard-only validation.
What our accessibility audit includes:
- Full WCAG 2.1 AA compliance assessment across all page types (homepage, product pages, collection pages, cart, checkout, blog, account pages)
- Automated scanning with axe-core, WAVE, and Lighthouse
- Manual keyboard navigation testing of every interactive component
- Screen reader testing with NVDA and VoiceOver
- Color contrast analysis across all theme color combinations
- Detailed report with every issue documented, prioritized by severity, and accompanied by specific fix instructions
- Accessibility statement (Erklaerung zur Barrierefreiheit) draft for your site
- Implementation support -- we do not just tell you what is wrong, we fix it
Why work with a Shopify-focused agency? Generic accessibility consultants often lack Shopify-specific knowledge. They will tell you to "fix the heading hierarchy" without knowing that it is controlled by the theme's product.liquid template and Shopify's default section schema. We know the platform, the Liquid template language, the Checkout Extensibility API, and the specific accessibility pitfalls of popular Shopify themes and apps.
Do not wait for an enforcement action to take this seriously. The BFSG deadline has passed. Every day your shop remains non-compliant is a day you are exposed to fines, lost customers, and legal risk. Get an audit, build a remediation plan, and start fixing issues -- in that order.
Contact TG-AI for a free initial accessibility assessment of your Shopify store.