Sample report, not a customer order · the site checked is Five49's fictitious sample shop
Accessibility Report
musterladen.example
Automated check against WCAG 2.2 Level AA, the technical benchmark for accessible websites. 6 pages checked.
Sample report, not a customer order
This report shows what a Snapshot looks like. The site checked is a sample shop that Five49 built for this purpose only. The shop, its products and its address do not exist.
Five49 built the barriers in on purpose. Some of them cannot be detected by an automated check. They are therefore missing from this report, just as barriers of this kind would be missing from a report on your shop.
The sample shop has only 6 pages; all 6 were checked. A Snapshot checks up to 25 pages of your shop.
The findings and figures come from the same checking software, with the same rules, as a customer order, and have not been edited by hand.
41/100
Significant action needed
5 critical · 7 serious · 7 moderate · 0 minor · 81 instances
Link to an accessibility statement: not found on the pages checked
Scope of testing: Five49 runs 24 automated, rule-based checks. They look for failures in 15 of the 55 WCAG 2.2 Level A and AA success criteria. Automated checks can find failures but cannot show that a criterion is met. All 55 criteria, including these 15, therefore also need manual review with a screen reader, keyboard and magnification. The result is neither a conformance statement nor legal advice and gives no assurance of any legal outcome.
Recommended order
Ordered by impact against effort: first, findings with high impact (critical or serious) that, by our classification, can be fixed in one central place or per component. Then findings with high impact that have to be fixed one occurrence at a time. Then the rest, in the same order. Within each group, the number of occurrences counts, weighted by severity (critical 9, serious 5, moderate 2.5, minor 1).
| No. | Finding | Impact | Effort |
|---|
| 1 | Links with no accessible name | Critical · 12 occurrences | medium: per component |
| 2 | Form fields without a label | Critical · 9 occurrences | medium: per component |
| 3 | 5 buttons with no accessible name | Critical · 5 occurrences | medium: per component |
| 4 | Zoom disabled on mobile devices | Serious · 6 occurrences | low: one central place |
| 5 | Rules removing the focus indicator with no replacement | Serious · 6 occurrences | low: one central place |
| 6 | Text elements below the required contrast ratio | Serious · 6 occurrences | medium: per component |
| 7 | 1 control with an attached function that cannot be reached with the Tab key | Critical · 1 occurrence | medium: per component |
| 8 | No lang attribute on the <html> element | Serious · 1 occurrence | low: one central place |
| 9 | Page has no title | Serious · 1 occurrence | low: one central place |
| 10 | 1 iframe without a title | Serious · 1 occurrence | medium: per component |
| 11 | 1 ARIA reference pointing to elements that do not exist | Serious · 1 occurrence | medium: per component |
| 12 | Images without alternative text | Critical · 17 occurrences | high: each occurrence individually |
| 13 | Elements not permitted as a direct child of a list | Moderate · 6 occurrences | medium: per component |
| 14 | 4 input fields without an autocomplete attribute | Moderate · 4 occurrences | medium: per component |
| 15 | Invalid language code | Moderate · 1 occurrence | low: one central place |
| 16 | 1 invalid ARIA role | Moderate · 1 occurrence | medium: per component |
| 17 | 1 data table without header cells | Moderate · 1 occurrence | medium: per component |
| 18 | 1 control whose visible text is not in its accessible name | Moderate · 1 occurrence | medium: per component |
| 19 | 1 referenced id attribute used more than once | Moderate · 1 occurrence | medium: per component |
Fixing the first 11 findings in this order at every location removes 49 of the 81 individual occurrences found (60%).
Findings
The location is the place in the HTML that your page delivers to visitors. The report does not say which file of your theme or shop software produces it.
1
● Critical
WCAG 4.1.2 Name, Role, Value · Level A
12 occurrences · on 6 of 6 pages
Links with no accessible name
This can affect, for example, symbol links such as cart, search or account. Depending on the program, a screen reader announces such a link only as 'link' or reads out its address — what the link does remains unclear.
Location
<a href="/">Line 17 of the delivered source of https://musterladen.example/
Affected pages
- https://musterladen.example/
Lines 17, 28
- https://musterladen.example/kategorie/kuechenhelfer
Lines 17, 28 - https://musterladen.example/produkt/schneidebrett-eiche
Lines 16, 27 - https://musterladen.example/warenkorb
Lines 16, 27 - https://musterladen.example/kasse
Lines 17, 28 - https://musterladen.example/kontakt
Lines 15, 26
Fix
Give the link a name in the language of the page that says where it leads: add visible text or set an aria-label. If an image is the only content of the link, its text alternative should name the destination. Examples: aria-label="Home" for the logo, aria-label="Cart" or aria-label="My account" for an icon.
2
● Critical
WCAG 4.1.2 Name, Role, Value · Level A
9 occurrences · on 6 of 6 pages
Form fields without a label
This field has no name that a screen reader can announce. Depending on the program, it then states only the type of field, such as 'text field' or 'list box'; what to enter or select here remains unclear.
Location
<input type="email" name="newsletter">Line 48 of the delivered source of https://musterladen.example/
Affected pages
- https://musterladen.example/
Line 48
- https://musterladen.example/kategorie/kuechenhelfer
Line 45 - https://musterladen.example/produkt/schneidebrett-eiche
Lines 39, 65 - https://musterladen.example/warenkorb
Lines 36, 37, 47 - https://musterladen.example/kasse
Line 57 - https://musterladen.example/kontakt
Line 41
Fix
Connect a <label for="field-id">Label</label> to the matching id, or set an aria-label on the field itself.
3
● Critical
WCAG 4.1.2 Name, Role, Value · Level A
5 occurrences
5 buttons with no accessible name
This can affect, for example, menu, close and add-to-cart buttons. With no name, a screen reader cannot announce what the button does.
Location
<button type="button" class="merken">Line 35 of the delivered source of https://musterladen.example/kategorie/kuechenhelfer
Affected pages
- https://musterladen.example/kategorie/kuechenhelfer
Lines 35, 36, 37, 38, 39
Fix
Add text or set an aria-label in the language of the page that says what the button does, e.g. <button aria-label="Open menu"> for a menu icon, aria-label="Save to wishlist" for a heart icon or aria-label="Close" for an X.
4
● Serious
WCAG 1.4.4 Resize Text · Level AA
6 occurrences · on 6 of 6 pages
Zoom disabled on mobile devices
The page instructs mobile browsers to block zooming or limit it to less than double size. Where a browser follows this instruction, anyone who needs larger text to read it, for example because of low vision, cannot zoom in far enough.
Location
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">Line 5 of the delivered source of https://musterladen.example/
Affected pages
- https://musterladen.example/
Line 5
- https://musterladen.example/kategorie/kuechenhelfer
Line 5 - https://musterladen.example/produkt/schneidebrett-eiche
Line 5 - https://musterladen.example/warenkorb
Line 5 - https://musterladen.example/kasse
Line 5 - https://musterladen.example/kontakt
Line 5
Fix
Reduce the viewport to <meta name="viewport" content="width=device-width, initial-scale=1">. Remove user-scalable and maximum-scale.
5
● Serious
WCAG 2.4.7 Focus Visible · Level AA
6 occurrences · on 6 of 6 pages
Rules removing the focus indicator with no replacement
Anyone navigating by keyboard can no longer see which element has focus. In a form, it is then not visible which field the input goes into.
Location
a:focus{outline:none}
Affected pages
- https://musterladen.example/
- https://musterladen.example/kategorie/kuechenhelfer
- https://musterladen.example/produkt/schneidebrett-eiche
- https://musterladen.example/warenkorb
- https://musterladen.example/kasse
- https://musterladen.example/kontakt
Fix
Replace outline:none (or outline:0) with a visible focus indicator, e.g. outline: 3px solid #005fcc on a white background. If the outline should disappear when links and buttons are clicked with a mouse but stay for keyboard users: replace :focus in the selector with :focus:not(:focus-visible).
6
● Serious
WCAG 1.4.3 Contrast Minimum · Level AA
6 occurrences · on 6 of 6 pages
Text elements below the required contrast ratio
The requirement is 4.5:1 for normal text. Lowest value measured here: 2.85:1 (#999999 on #ffffff). Text with too little contrast can be hard or impossible to read for people whose eyesight is declining.
Location
.versandhinweis{color:#999999;background-color:#ffffff}
Affected pages
- https://musterladen.example/
.versandhinweis{color:#999999;background-color:#ffffff}
- https://musterladen.example/kategorie/kuechenhelfer
.versandhinweis{color:#999999;background-color:#ffffff}
- https://musterladen.example/produkt/schneidebrett-eiche
.versandhinweis{color:#999999;background-color:#ffffff}
- https://musterladen.example/warenkorb
.versandhinweis{color:#999999;background-color:#ffffff}
- https://musterladen.example/kasse
.versandhinweis{color:#999999;background-color:#ffffff}
- https://musterladen.example/kontakt
.versandhinweis{color:#999999;background-color:#ffffff}
Fix
Darken the darker of the two colours (text or background) or lighten the lighter one until at least 4.5:1 is reached (large text from 24px, or 18.66px bold: 3:1).
7
● Critical
WCAG 2.1.1 Keyboard · Level A
1 occurrence
1 control with an attached function that cannot be reached with the Tab key
A <div> with role="button" presents itself to screen readers as a button, and the source code attaches a function to it (onclick). It is not a native control, however, and has no tabindex: it cannot be reached with the Tab key, and the function cannot be triggered from the keyboard this way.
Location
<div class="wunsch" role="button" onclick="merken()">Line 42 of the delivered source of https://musterladen.example/produkt/schneidebrett-eiche
Affected pages
- https://musterladen.example/produkt/schneidebrett-eiche
Line 42
Fix
Use the native <button>. Or add tabindex="0" and also trigger the function with Enter and Space.
8
● Serious
WCAG 3.1.1 Language of Page · Level A
1 occurrence
No lang attribute on the <html> element
Without a language attribute the screen reader cannot reliably pick the voice and pronunciation for the page; the text may then be read out with the pronunciation rules of another language.
Location
<html>Line 2 of the delivered source of https://musterladen.example/warenkorb
Affected pages
- https://musterladen.example/warenkorb
Line 2
Fix
Add the code of the language the page is written in to <html>, e.g. <html lang="de"> for German, lang="en" for English or lang="es" for Spanish.
9
● Serious
WCAG 2.4.2 Page Titled · Level A
1 occurrence
Page has no title
The title is the first thing a screen reader announces when the page opens, and it names the browser tab.
Affected pages
- https://musterladen.example/kontakt · missing on this page
Fix
Add <title>Descriptive page title — Shop name</title> to the <head>.
10
● Serious
WCAG 4.1.2 Name, Role, Value · Level A
1 occurrence
1 iframe without a title
This can affect, for example, embedded videos, maps and payment fields. Without a title, a screen reader cannot reliably announce what is embedded.
Location
<iframe src="https://video.musterladen.example/einbettung/schneidebrett" width="560" height="315">Line 60 of the delivered source of https://musterladen.example/produkt/schneidebrett-eiche
Affected pages
- https://musterladen.example/produkt/schneidebrett-eiche
Line 60
Fix
Add a title in the language of the page that says what is embedded, e.g. <iframe title="Product video" ...> for a video, title="Directions map" for a map or title="Payment details" for a payment field.
11
● Serious
WCAG 4.1.2 Name, Role, Value · Level A
1 occurrence
1 ARIA reference pointing to elements that do not exist
An aria-labelledby points at an id that does not exist on the page. The reference is ignored, so the element stays unnamed even though the code looks as if it had been taken care of.
Location
<input type="text" name="lieferhinweis" aria-labelledby="lieferhinweis-titel">Line 51 of the delivered source of https://musterladen.example/kasse
Affected pages
- https://musterladen.example/kasse
Line 51
Fix
Either add an element with id="lieferhinweis-titel", or drop the reference and set aria-label directly instead.
12
● Critical
WCAG 1.1.1 Non-text Content · Level A
17 occurrences · on 6 of 6 pages
Images without alternative text
This image has no alternative text. Depending on the program and its settings, a screen reader then reads out the file name, announces only 'image' or skips it. If the image carries content, such as a product image, blind users miss that information entirely.
Location
<img src="/bilder/logo.svg" width="140" height="40">Line 17 of the delivered source of https://musterladen.example/
Affected pages
- https://musterladen.example/
Lines 17, 37, 38, 39
- https://musterladen.example/kategorie/kuechenhelfer
Lines 17, 35, 36, 37, 38, 39 - https://musterladen.example/produkt/schneidebrett-eiche
Lines 16, 33, 34, 35 - https://musterladen.example/warenkorb
Line 16 - https://musterladen.example/kasse
Line 17 - https://musterladen.example/kontakt
Line 15
Fix
Every <img> needs an alt attribute. Meaningful images: alt="Description of the image". Purely decorative: alt="" (empty, but present).
13
● Moderate
WCAG 1.3.1 Info and Relationships · Level A
6 occurrences · on 6 of 6 pages
Elements not permitted as a direct child of a list
HTML does not permit a <div> directly inside a <ul>. Depending on the browser and screen reader, the list may then be announced incorrectly, or not as a list at all.
Location
<div class="trenner">Line 22 of the delivered source of https://musterladen.example/
Affected pages
- https://musterladen.example/
Line 22
- https://musterladen.example/kategorie/kuechenhelfer
Line 22 - https://musterladen.example/produkt/schneidebrett-eiche
Line 21 - https://musterladen.example/warenkorb
Line 21 - https://musterladen.example/kasse
Line 22 - https://musterladen.example/kontakt
Line 20
Fix
Put the element inside the <li> it belongs to or, if it belongs to no entry, place it before or after the list. If it wraps <li> elements itself, it belongs either inside each <li>, e.g. <li><a>…</a></li> instead of <a><li>…</li></a>, or around the whole list. A wrapper used only for layout, such as a <div> around several entries, can be removed.
14
● Moderate
WCAG 1.3.5 Identify Input Purpose · Level AA
4 occurrences
4 input fields without an autocomplete attribute
With autocomplete the browser can suggest details such as name, email or address, so people with motor or cognitive impairments do not have to type them character by character.
Location
<input type="text" id="vorname" name="vorname">Line 36 of the delivered source of https://musterladen.example/kasse
Affected pages
- https://musterladen.example/kasse
Lines 36, 37, 38, 40
Fix
Add it to the field, e.g. autocomplete="given-name".
15
● Moderate
WCAG 3.1.1 Language of Page · Level A
1 occurrence
Invalid language code
The code does not follow the standard for language tags (BCP 47). Whether browsers and screen readers still recognise the language depends on the program. If they do not, the effect is the same as having no language attribute at all.
Location
<html lang="de_DE">Line 2 of the delivered source of https://musterladen.example/kontakt
Affected pages
- https://musterladen.example/kontakt
Line 2
Fix
Use a valid BCP 47 code, e.g. lang="de" or lang="de-DE".
16
● Moderate
WCAG 4.1.2 Name, Role, Value · Level A
1 occurrence
1 invalid ARIA role
An unknown role is ignored; the element keeps its default meaning. For <div> and <span> there is then no role for a screen reader to announce.
Location
<div class="filter" role="tablist-filter">Line 33 of the delivered source of https://musterladen.example/kategorie/kuechenhelfer
Affected pages
- https://musterladen.example/kategorie/kuechenhelfer
Line 33
Fix
Replace role="tablist-filter" with a valid ARIA role, or remove it.
17
● Moderate
WCAG 1.3.1 Info and Relationships · Level A
1 occurrence
1 data table without header cells
Without <th> the screen reader reads the cells without their column header; which figure belongs to which column is lost. Size charts are one example.
Location
<table>Line 45 of the delivered source of https://musterladen.example/produkt/schneidebrett-eiche
Affected pages
- https://musterladen.example/produkt/schneidebrett-eiche
Line 45
Fix
Mark the header row as <th scope="col"> and row headers as <th scope="row">.
18
● Moderate
WCAG 2.5.3 Label in Name · Level A
1 occurrence
1 control whose visible text is not in its accessible name
The visible text reads "Versandkosten", the announced name is "Lieferbedingungen". Anyone operating the page by voice control speaks the visible text, and nothing happens, because the system expects a different name.
Location
<a href="/versand" aria-label="Lieferbedingungen">Line 43 of the delivered source of https://musterladen.example/produkt/schneidebrett-eiche
Affected pages
- https://musterladen.example/produkt/schneidebrett-eiche
Line 43
Fix
Remove the aria-label; the visible text then serves as the name. If it is to say more, put the visible text at the start, e.g. aria-label="Versandkosten, Lieferbedingungen".
19
● Moderate
WCAG 4.1.2 Name, Role, Value · Level A
1 occurrence
1 referenced id attribute used more than once
Under HTML, the <label for="plz"> labels only the first field with this id. Another field with the same id is therefore left without a name: screen reader users are not reliably told what to enter there.
Location
<input type="text" id="plz" name="rechnung-plz" autocomplete="billing postal-code">Line 44 of the delivered source of https://musterladen.example/kasse
Affected pages
- https://musterladen.example/kasse
Lines 41, 44
Fix
Use every id only once and give the other field its own label, for example its own <label for="…"> matching its new id. A unique id alone is not enough: without its own label the field still has no name. Affected among others: id="plz" (2 times).
Pages checked
| URL | Score | Findings |
|---|
| https://musterladen.example/ | 50 | 7 |
| https://musterladen.example/kategorie/kuechenhelfer | 32 | 9 |
| https://musterladen.example/produkt/schneidebrett-eiche | 30 | 11 |
| https://musterladen.example/warenkorb | 46 | 8 |
| https://musterladen.example/kasse | 43 | 10 |
| https://musterladen.example/kontakt | 46 | 9 |
Scope of testing: Five49 runs 24 automated, rule-based checks. They look for failures in 15 of the 55 WCAG 2.2 Level A and AA success criteria. Automated checks can find failures but cannot show that a criterion is met. All 55 criteria, including these 15, therefore also need manual review with a screen reader, keyboard and magnification. The result is neither a conformance statement nor legal advice and gives no assurance of any legal outcome.
Sample report, not a customer order · the site checked is Five49's fictitious sample shop