# UX-Review: afb-group.at — Anfragestrecke „IT verkaufen" und „Gewerblich kaufen"

**Datum:** 2026-08-03 · **überarbeitet 2026-08-04** nach vollständiger Datenverifikation (siehe „Revision" am Ende)
**Quelle:** Live-URLs `https://www.afb-group.at/it-hardware/verkaufen/`, `/kontakt-it-verkaufen/`, `/it-hardware/kaufen/gewerblich/`, `/kontakt-b2b-sales/` · Vergleich gegen die pfadgleichen DE-Pendants
**Viewport / Gerät:** Mobile (primär), Desktop 1440 (sekundär). Pixelwerte für Mobil sind bei 500 px Fensterbreite gemessen; bei 390 px verschieben sich Inhalte weiter nach unten, die Befunde werden also stärker, nicht schwächer.
**Reviewer:** Claude (UX-Sparring)
**Scope:** Usability, Microcopy, Accessibility (WCAG-Quickcheck), Performance
**Datengrundlage:** Clarity 16.07.–03.08.2026 (19 Tage, 1.299 Sitzungen) · GA4 90 Tage (2026-05-05 – 2026-08-03, abgefragt am 2026-08-04) · Live-Erhebung via Chrome DevTools und lokaler Seiten-Snapshot am 2026-08-04

> **Zu den Zahlen.** Jede Zahl in diesem Dokument ist gegen ihre Quelle nachgeprüft: GA4 gegen die Data API, Clarity gegen die CSV-Exporte und den API-Cache, alle DOM-Aussagen gegen die echte Seite **und** gegen den archivierten Snapshot unter `pages/`. Wo eine Zahl aus zwei Quellen mit unterschiedlicher Definition stammt, steht die Quelle dabei.

---

## TL;DR

Die Anfragestrecke verliert Interessenten vor allem **vor** dem Formular: Ein mobiler Besucher der wichtigsten Lead-Seite sieht im ersten Bildschirm keinen einzigen Call-to-Action — der erste Button beginnt bei 1.033 px, der Bildschirm endet bei 844 px. Bei **22 % durchschnittlicher Scroll-Tiefe** (Clarity, 606 Sitzungen) erreicht die Mehrheit nie eine Handlungsaufforderung, und die Preisinformation, die sie nachweislich sucht, beginnt erst nach rund 40 % der Seitenlänge. Von 2.445 Sitzungen auf der Lead-Seite erreichen 11,6 % die Kontaktseite.

Das Formular selbst enthält mit einer **Rechenaufgabe** und einer verpflichtenden Marketingfrage klar benennbare Hürden — **wie stark sie wirken, ist aktuell nicht messbar**, weil GA4 auf dem Anfrageformular keine einzige Absendung erfasst (Finding 16). Alle Punkte sind ohne Design-Projekt reparierbar.

Wichtig für die Erwartung: Die **Hürden im Formular sind in DE identisch** — dieselben sieben Pflichtfelder, dieselbe Pflicht-Herkunftsfrage, derselbe Pflicht-Freitext, dieselbe Rechenaufgabe. Das Formular erklärt die AT/DE-Lücke also nicht, sondern kostet beide Märkte Anfragen. In der *Umsetzung* ist AT allerdings schlechter: keine Audio-Alternative zum CAPTCHA und Multiplikation statt Addition. Der AT-spezifische Unterschied liegt im Gerätemix (**51 % mobil gegenüber 33 %**) und in der Traffic-Qualität.

---

## Kontext & Annahmen

- **Nutzerziel:** Ein IT- oder Beschaffungsverantwortlicher will wissen, ob afb seine ausgemusterte Hardware nimmt, was er dafür bekommt und wie der Ablauf aussieht — und dann Kontakt aufnehmen.
- **Businessziel:** Qualifizierte B2B-Anfrage über `/kontakt-it-verkaufen/` bzw. `/kontakt-b2b-sales/`. Referenz: rund 8 Anfragen pro Monat in AT gegenüber rund 80 in DE — so im internen Kickoff am 09.07.2026 genannt (Beleg: `data/intake/sources/fireflies/2026-07-09-afb-interner-kickoff.md`). Definition und Zeitraum dieser beiden Zahlen sind nicht dokumentiert; sie sind als Größenordnung zu lesen, nicht als Kennzahl.
- **Annahme:** Die Zielgruppe entscheidet nicht impulsiv, sondern prüft Seriosität, Datensicherheit und Konditionen. Vertrauensbelege und Preislogik sind damit conversionrelevant, nicht dekorativ.
- **Annahme (ausdrücklich unbelegt):** Der hohe Anteil an `click_to_call` auf Mobilgeräten (27 von 30 Anrufklicks) bedeutet gewollte Kontaktaufnahme. GA4 misst den Klick, nicht die Absicht und nicht das Zustandekommen des Gesprächs.
- **Belegt statt vermutet:** Alle Scroll-, Klick- und Volumenzahlen unten stammen aus Clarity bzw. GA4, alle DOM-Aussagen aus einer Messung an der echten Seite.

---

## Findings

| # | Bereich | Problem | Auswirkung | Empfehlung | Priorität | Effort | Quelle |
|---|---|---|---|---|---|---|---|
| 1 | Usability | **Kein CTA im ersten mobilen Bildschirm** auf `/it-hardware/verkaufen/`. Sichtbar sind Logo, Suche, Burger und — über dem Hero-Bild — die H1 „Ankauf Firmen-Laptops – gebrauchte PCs verkaufen" (ab 275 px) sowie ein **achtzeiliger** Einleitungsabsatz (399–603 px). Ein Button ist nicht darunter: der erste CTA „IT-Verkauf starten" beginnt bei **1.033 px**, der Bildschirm endet bei **844 px**. | Bei **22 % durchschnittlicher Scroll-Tiefe** (niedrigster Wert aller Seiten mit mindestens 20 Sitzungen; die übrigen 14 meistbesuchten Seiten liegen bei 36–81 %) erreicht die Mehrheit der 606 Sitzungen nie eine Handlungsaufforderung. Am Desktop liegt der erste CTA bei 989 px bei 900 px Fensterhöhe — also ebenfalls knapp darunter. | Primären CTA in den ersten Bildschirm ziehen, mobil als eigenständiges Element direkt unter der Headline. Zusätzlich einen mitlaufenden CTA-Balken ab dem ersten Scroll. | **P0** | S | Malewicz, *Designing User Interfaces* (Above-the-fold-Hierarchie); Live-Messung |
| 2 | Usability | **Rechenaufgabe als Pflichtfeld** im Anfrageformular (z. B. „7 * 2 = ?" — die Aufgabe wird je Aufruf neu erzeugt). Dazu **sieben Pflichtfelder** (Vorname, Nachname, Unternehmen, Firmen-E-Mail, Herkunftsfrage, Nachricht, Captcha) plus die rechtlich nötige Datenschutz-Zustimmung. Darunter eine Pflicht-Auswahl „Wie sind Sie auf afb aufmerksam geworden?" und ein Pflicht-Freitext „Ihre Nachricht". | 45 Formularstarts in 90 Tagen bei 49 bestätigten Anfragen site-weit. Die Abbruchquote ist **nicht messbar** (Finding 16), die Hürden sind aber unabhängig davon belegbar: Eine Rechenaufgabe als Zugangsbedingung und eine Pflichtangabe, die nur dem Marketing des Anbieters dient, sind für eine B2B-Kontaktaufnahme nicht begründbar. **Die Herkunftsfrage ist zudem redundant** (Finding 18). | Rechenaufgabe durch ein unsichtbares Verfahren ersetzen (Honeypot, Zeitmessung, Cloudflare Turnstile). Herkunftsfrage auf optional setzen. Pflicht-Freitext durch Auswahl „Worum geht es?" ersetzen, Freitext optional. Solange die Rechenaufgabe bleibt: DE-Konfiguration übernehmen (Addition statt Multiplikation, Audio-Alternative). | **P0** | S–M | Shariat/Savard Saucier, *Tragic Design*; Enders, *Designing UX: Forms*; DOM-Messung |
| 16 | Messung | **Auf beiden Anfrageformularen wird keine Absendung gezählt.** `/kontakt-it-verkaufen/` 45 `form_start` / **0** `form_submit`, `/kontakt-b2b-sales/` 2 / **0**. Gleichzeitig 49 `kontakt_danke_at` — Absendungen finden also statt. Ursache mit hoher Wahrscheinlichkeit: Contact Form 7 sendet per AJAX (`wpcf7-form`), die GA4-Standarderfassung greift nicht. Zusätzlich messen die site-weiten Formularzahlen etwas anderes: **von 68 gezählten Absendungen stammt genau eine von einem echten Kontaktformular** (`/kontakt/`). Die anderen 67 sind die Website-Suche, die in der Kopfzeile jeder Seite steht — 39 auf der Startseite (dort auch 74 `view_search_results`), 28 verteilt auf 18 weitere Seiten. | Der Kunde kann seinen eigenen Anfrage-Funnel nicht sehen. Die Wirkung jeder Maßnahme an der Anfragestrecke — auch der Empfehlungen aus diesem Review — wäre derzeit nicht belegbar. | Eigenes Ereignis auf das CF7-Event `wpcf7mailsent` legen und als Key Event markieren. `click_to_call` und `click_to_mail` ebenfalls als Key Event. `customEvent:form_name` befüllen — **das Formular sendet die Kennung bereits mit** (Finding 18). **Vor** allen Gestaltungsmaßnahmen umsetzen, damit eine Nulllinie existiert. | **P0** | S | GA4-Ereignisanalyse je `pagePath`, alle 22 Seiten mit Treffern |
| 17 | Usability | **Die Vertrauensbelege am Formular werden nie angezeigt.** Am Formular liegen **vier** Zertifikatsbilder (Blancco ITAD Platinum Partner, TÜV ISO 9001, Microsoft Authorized Refurbisher, VSE). Sie stecken in einem **horizontalen Logo-Karussell**, dessen Folien bei `left` 1.211–4.480 px außerhalb des Viewports liegen. `lazyload.min.js` lädt über einen IntersectionObserver — was nie in den Viewport gelangt, wird nie geladen. Ergebnis: **mobil lädt keines der vier**, am Desktop lädt **nur Blancco**. Erzwingt man die Sichtbarkeit je Bild, laden alle vier korrekt. Dazu: `alt=""` bei zwei von vier (Blancco, VSE). | Genau im Entscheidungsmoment fehlen die Nachweise, die den zentralen Kaufeinwand („kann ich mich da wirklich drauf verlassen?") beantworten. **DE hat denselben Defekt**: dort erscheint eines von fünf Zertifikaten. Es ist also kein Marktvorteil von DE, sondern ein gemeinsamer Fehler. | Zertifikate als statische Reihe ausgeben statt als Karussell — dann greift Lazyload. `alt`-Texte für Blancco und VSE ergänzen. Gilt für beide Märkte. | **P0** | S | WCAG 2.2, 1.1.1; DOM- und Geometriemessung an der Live-Seite |
| 3 | Usability | **Preis-/Konditionsinformation liegt im kalten Bereich.** Der Abschnitt „Ankauf-Konditionen auf einen Blick" beginnt mobil bei **5.909 px** einer **15.161 px** hohen Seite (39 %), am Desktop bei 3.527 px von 8.279 px (43 %). Die Scroll-Heatmap zeigt mobil: 91 % der Sitzungen erreichen 5 % Tiefe, 64 % erreichen 10 %, ab 20 % nur noch 36 % (n = 11). | Die Beispielkalkulation ist mit **50 Downloads das häufigste Conversion-Signal** der Seite — die Nachfrage nach Preisen ist belegt, die Information aber praktisch unerreichbar. | „Was zahlt afb?" als eigenen Abschnitt in den oberen Seitenbereich, mit Sprungmarke aus dem Hero. Beispielkalkulation direkt dort anbieten, nicht nur als Download weit unten. | **P0** | M | Krug-Prinzip der Selbsterklärung; Clarity-Scroll-Daten; Live-Messung |
| 5 | a11y | **Drei Links ohne zugänglichen Namen** auf `/kontakt-it-verkaufen/`: der Telefon-Link (`tel:+4316160313142`, ohne Text), der VSE-Zertifikats-Link (`VSE_Zertifikat_afb2026.pdf`, Bild mit `alt=""`) und der Link auf `/ueber-uns/geschichte/`. | Screenreader lesen „Link" ohne Ziel. Verstoß gegen WCAG 2.4.4 / 4.1.2. Betrifft genau die Kontaktaufnahme per Telefon. DE hat an derselben Stelle nur einen. | Linktexte ergänzen bzw. `aria-label` setzen. Beim Telefon-Link die Nummer als Text ausgeben. | **P0** | S | WCAG 2.2, 2.4.4 Link Purpose; DOM-Messung (Namensberechnung ohne `<noscript>`-Inhalte) |
| 18 | Messung / Usability | **Die Pflicht-Herkunftsfrage ist technisch schon gelöst — die Lösung liefert nur keine Werte.** Das Formular sendet fünf versteckte Attributionsfelder mit: `original_referrer`, `referrer`, `medium`, `first_landing_page`, `session_landing_page`. Alle fünf sind beim Seitenaufruf **leer**. Gefüllt sind nur `thema` („Gewerblich IT verkaufen") und **`formular` („it-verkaufen")**. | Die Pflichtfrage an den Interessenten kompensiert einen technischen Defekt. Und `customEvent:form_name` — laut GA4-Report der zweitwichtigste Tracking-Fix — hat mit `formular` bereits eine fertige Quelle. | Die fünf Attributionsfelder serverseitig bzw. per GTM befüllen, dann die Pflichtfrage auf optional setzen oder entfernen. `formular` an GA4 durchreichen. Beides kleiner Aufwand mit direkter Wirkung auf Finding 2 und 16. | **P0** | S | DOM-Messung an der Live-Seite und am Snapshot |
| 19 | a11y / Usability | **Kein `autocomplete` auf einem einzigen Formularfeld.** Vorname, Nachname, Unternehmen, Firmen-E-Mail und Telefon tragen kein `autocomplete`-Attribut. | Zwei Wirkungen: Verstoß gegen WCAG 1.3.5 (Identify Input Purpose, AA) — und vor allem **direkte mobile Friction**, weil kein Browser und kein Passwortmanager die Felder automatisch füllt. Bei 51 % Mobilanteil und 1:12 Ø Sitzungsdauer ist das genau die Art Hürde, um die es hier geht. **DE hat dieselbe Lücke.** | `autocomplete="given-name"`, `family-name`, `organization`, `email`, `tel` setzen. Fünf Attribute. | **P1** | S | WCAG 2.2, 1.3.5; DOM-Messung |
| 4 | Usability | **Hero ist ein Slider** (Swiper, 11 Folien, Pfeilnavigation, Autoplay und Loop aktiv). Inhalte rotieren aus dem Blick. | Der wichtigste Botschaftsplatz der wichtigsten Seite ist nicht verlässlich belegt; Nutzer können den Inhalt nicht wiederfinden, den sie gesehen haben. | Hero statisch machen mit einer Botschaft und einem CTA. Falls mehrere Zielgruppen adressiert werden sollen, als nebeneinanderliegende Einstiege statt als Rotation. | P1 | S | Tidwell, *Designing Interfaces* (bewegte Inhalte im Primärbereich) |
| 7 | a11y | **Tap-Target zu klein**: Das anklickbare CAPTCHA-Neuladen-Element (`a.cf7.captcha-reload`) misst **22 × 22 px**. Der umgebende `div.c-reload` (25 × 26 px) trägt `role="button"` und `aria-label="CAPTCHA aktualisieren"` — beschriftet ist es also, zu klein ist es trotzdem. | Unterschreitet die AA-Mindestgröße von **24 × 24 px** (WCAG 2.5.8) — und zwar genau bei dem Element, das man braucht, wenn man die Aufgabe nicht lesen kann. | Trefffläche auf mindestens 24 × 24 px, besser 44 × 44 px (das wäre 2.5.5, AAA). Entfällt, wenn die Rechenaufgabe nach Finding 2 ersetzt wird. | P1 | S | WCAG 2.2, 2.5.8 Target Size (Minimum); Geometriemessung |
| 8 | a11y | **Kein Audio-Alternativverfahren für die Rechenaufgabe** — DE bietet einen Vorlese-Button (`button.captcha-audio-btn`, Tooltip „Klicken Sie, um das CAPTCHA vorlesen zu lassen"), AT nicht. Beide Märkte nutzen dasselbe Plugin-Template. | Nutzer, die die Aufgabe visuell nicht erfassen, haben in AT keinen zweiten Weg. Verstoß gegen WCAG 1.1.1 (die CAPTCHA-Ausnahme verlangt eine Alternative in anderer Modalität). | Die DE-Plugin-Konfiguration auf AT übernehmen — kein Entwicklungsaufwand, eine Einstellung. Das erledigt Finding 8 und entschärft Finding 7. | P1 | S | WCAG 2.2, 1.1.1 Non-text Content; DOM-Vergleich AT/DE |
| 9 | Usability | **Defekter Footer-Link**: „Nachhaltigkeit" im Footer (`div.site-footer`) zeigt auf `#`, bleibt also auf der Seite. Die beiden gleichnamigen Links in der Hauptnavigation zeigen korrekt auf `/ueber-uns/nachhaltigkeit/`. In DE zeigen alle drei korrekt. | Nachhaltigkeit ist laut Content-Audit ein zentrales Kauf- und Differenzierungsargument — der Weg dorthin ist im Footer blockiert. | Ziel-URL korrigieren. | P1 | S | Live-Befund |
| 15 | SEO / a11y | **`/kontakt-it-verkaufen/` hat weder Meta-Description noch H1.** Die Seite enthält als einzige Überschriften zwei `<h3>` („Exklusiv für Geschäftskunden", „Hinweis für Privatkunden") — kein H1, kein H2. **Auf DE identisch.** | Google formuliert das Snippet selbst, und Screenreader-Nutzer haben keine Seitenstruktur zum Navigieren. Betrifft die wichtigste Anfrageseite. Schwächt WCAG 1.3.1 und 2.4.6. | Meta-Description ergänzen, H1 setzen und die Überschriftenebenen begradigen (H1 → H2 → H3). | P1 | S | Lighthouse `meta-description`; DOM-Messung |
| 10 | a11y | **AT-Footer ohne Landmark.** Auf `/kontakt-it-verkaufen/` existiert **kein `<footer>`-Element und kein `role="contentinfo"`**. DE hat ein `<footer>`-Element (das implizit auf `contentinfo` mappt), aber ebenfalls kein explizites `role`. | Screenreader-Nutzer können den Footer in AT nicht per Landmark-Navigation ansteuern. Schwächt WCAG 1.3.1. | Footer in `<footer>` fassen. | P2 | S | WCAG 2.2, 1.3.1 Info and Relationships |
| 11 | Microcopy | **Hero-Text ist Keyword-Prosa statt Nutzenversprechen**: acht Zeilen, in denen dieselbe Aussage dreimal variiert wird. | Der Nutzer erfährt nicht, was er bekommt und was der nächste Schritt ist. DE braucht an derselben Stelle drei Zeilen. | Auf zwei Sätze kürzen: Angebot + Ablauf, dann CTA. Siehe Microcopy-Vorschläge. | P1 | S | Enders, *Designing UX: Forms* („Start with nothing") |
| 12 | Usability | **Der Privatkunden-Hinweis steht vor dem Formular** in der B2B-Strecke und belegt auf Mobil den Platz über dem ersten Feld. | Verlängert den Weg zum Formular für die eigentliche Zielgruppe. | Privatkunden-Hinweis unter das Formular oder in eine kompakte Zeile verkürzen. | P2 | S | Live-Befund |
| 20 | Usability | **Zwei Zertifikatsbilder werden von der deutschen Domain geladen**, darunter das **deutsche** ISO-9001-Bild (`afb-group.de/.../ISO_9001_farbe_de.jpg`) auf der österreichischen Seite — während das dahinter verlinkte PDF korrekt `TUEV_ISO_9001_at.pdf` heißt. Das VSE-Bild trägt außerdem das falsche `title`-Attribut **„TÜV ISO 27001 Zertifikat"**. | Ein Besucher mit Tooltip liest die falsche Zertifizierung. Und die österreichische Seite belegt ihre Qualität mit einem deutschen Dokument — genau in dem Markt, dem laut Content-Audit eine sichtbare österreichische Entität fehlt. | Bilder in die AT-Medienbibliothek übernehmen, das österreichische ISO-Zertifikat verwenden, `title` des VSE-Bilds korrigieren. | P2 | S | DOM-Messung an Live-Seite und Snapshot |
| 13 | a11y | **Hero-Text auf Foto**: grüne Headline und weißer Fließtext über einem Bild mit halbtransparentem Overlay. | Kontrast schwankt je Bildbereich; Lesbarkeit ist nicht garantiert. Risiko für WCAG 1.4.3. | Kontrast messen und absichern (kräftigeres Overlay oder Textfläche). | P2 | S | Johnson, *Designing with the Mind in Mind* (Text auf gemustertem Grund) |
| 14 | Perf | **72 JavaScript-Fehler-Ereignisse, verteilt auf 0,77 % der Sitzungen.** Die 72 zählen Ereignisse, nicht Sitzungen — der CSV-Unterheader „Anzahl der Sitzungen / % der Sitzungen" ist von Clarity selbst falsch beschriftet: 12 von 72 ergeben genau die dort ausgewiesenen 16,67 %; wären es Sitzungen, müsste 0,83 % stehen. Die echte Sitzungsquote exportiert Clarity nicht, sie steht nur in der Oberfläche: **0,77 %** (live 04.08.), in Deutschland 0,78 % — also kein Marktunterschied. Inhaltlich dominieren Underscore.js-Ausfälle (`_.extend`, `_.memoize`, `_.each`, `_.isfunction` „is not a function") sowie „cannot read properties of undefined (reading 'settings')". **Das Anfrageformular ist nicht betroffen**: die Live-Konsole der Seite meldet keinen JS-Fehler. | Ein fehlendes Underscore/Backbone bricht typischerweise WordPress-Skripte, die darauf aufbauen — mögliche Nebenwirkungen auf Widgets. | Skript-Ladereihenfolge prüfen (fehlende oder zu früh geladene `underscore`-Abhängigkeit). **Nicht** als Ursache des Anfrageproblems behandeln. | P2 | M | Clarity JS-Fehler-Sektion + Live-Konsole |
| 6 | a11y | ~~Zwei Formularfelder ohne verknüpftes Label~~ — **zurückgezogen.** Die DOM-Prüfung zeigt: **alle 11 Felder** des Anfrageformulars haben ein verknüpftes Label oder ein `aria-label`. Der Konsolen-Hinweis „No label associated with a form field (count: 2)" bezieht sich auf zwei Felder außerhalb des Anfrageformulars (Consent-Widget oder Suchdialog). | Für die Anfragestrecke keine. | Kein Handlungsbedarf am Anfrageformular. Ursprung der zwei gemeldeten Felder bei Gelegenheit lokalisieren. | — | — | DOM-Messung (widerlegt den Lighthouse-/Konsolenbefund für dieses Formular) |

**Prioritäten-Legende:** **P0** – blockiert Nutzerziel oder verletzt a11y-Mindeststandard · **P1** – spürbare Friction, klar messbar · **P2** – Politur.
**Effort-Legende:** S = < 1 Tag, M = 1–3 Tage, L = > 3 Tage.

**Bilanz:** 19 aktive Befunde — **7 × P0** (1, 2, 3, 5, 16, 17, 18), 7 × P1 (4, 7, 8, 9, 11, 15, 19), 5 × P2 (10, 12, 13, 14, 20). Ein Befund (6) wurde im Verlauf widerlegt und ist als zurückgezogen dokumentiert.

---

## Microcopy-Vorschläge

> **Original (Hero `/it-hardware/verkaufen/`):** „Exklusiv für Geschäftskunden: Sie möchten gebrauchte Notebooks verkaufen und Firmen-PCs, Monitore und Mobilgeräte abgeben. afb kauft gebrauchte Firmen-Laptops und weitere IT-Hardware an – inklusive Abholung, zertifizierte Datenlöschung und professionellem Remarketing. Nachhaltiger Hardware-Ankauf von Unternehmen. Hier Laptops sicher verkaufen."
>
> **Variante A:** „Wir kaufen Ihre ausgemusterte Firmen-IT — mit Abholung, zertifizierter Datenlöschung und Nachweis. Sagen Sie uns, was Sie haben, und Sie erfahren, was es wert ist." — Nennt Leistung, Absicherung und Ergebnis.
> **Variante B:** „Ausgemusterte Notebooks, PCs und Monitore? Wir holen ab, löschen zertifiziert und zahlen den Restwert aus." — Beginnt bei der Situation des Nutzers statt bei afb; adressiert direkt den im Messaging-Framework formulierten Anspruch „Kunde als Held" (Beleg: `data/intake/sources/gdrive/2026-07-30-content-audit-afb-group-at.md`).
>
> *Hinweis:* Eine frühere Fassung schlug hier „Sie erfahren in 24 Stunden, was Ihre Geräte wert sind" vor. Diese Reaktionszeit ist **von afb nicht zugesagt** und in keiner Projektquelle belegt. Eine konkrete Frist wirkt stark — sie muss aber vor Verwendung intern bestätigt werden.

> **Original (CTA):** „IT-Verkauf starten"
>
> **Variante A:** „Wert meiner Geräte anfragen" — benennt das Ergebnis statt des Prozesses. „Starten" verschweigt, was danach passiert.
> **Variante B:** „Unverbindlich Angebot anfordern" — nimmt die Sorge vor Verbindlichkeit. (Dass dies *die häufigste* Klickbremse im B2B-Beschaffungskontext ist, ist eine Erfahrungsannahme, keine Messung aus diesem Projekt.)

> **Original (Pflichtfeld):** „Wie sind Sie auf afb aufmerksam geworden? *"
>
> **Variante A:** „Wie sind Sie auf uns gestoßen? (optional)" — Pflichtstern entfernen. Die Frage dient der Attribution von afb, nicht dem Anliegen des Nutzers.
> **Variante B:** Ganz aus dem Formular entfernen und die Attribution technisch lösen. **Das ist keine Neuentwicklung:** das Formular sendet `referrer`, `medium`, `first_landing_page` und `session_landing_page` bereits mit — sie werden nur nicht gefüllt (Finding 18). Enders' Mantra „Start with nothing. Then only add what's needed to communicate with the user" trifft hier exakt: das Feld kommuniziert nichts, es erhebt.

> **Original (Pflichtfeld):** „Ihre Nachricht *"
>
> **Variante A:** „Worum geht es?" als Auswahl (Geräte verkaufen · Abholung planen · Datenlöschung · Sonstiges) plus optionalem Freitext „Etwas, das wir vorab wissen sollten?" — senkt die Einstiegshürde vom Aufsatz zum Klick.
> **Variante B:** „Ihre Nachricht (optional) — je konkreter Sie Gerätetyp und Menge nennen, desto genauer unser Angebot." — hält das Feld, macht aber Aufwand freiwillig und begründet den Nutzen.

> **Original (CAPTCHA-Hinweis, wörtlich von der Seite):** „Bitte geben Sie die im CAPTCHA angezeigten Zeichen ein, um zu bestätigen, dass Sie ein Mensch sind."
>
> **Variante A:** Ersatzlos streichen und serverseitig prüfen (Honeypot + Zeitmessung). Die beste Microcopy ist hier keine.
> **Variante B:** Falls ein Verfahren bleiben muss: „Sicherheitsabfrage: Bitte rechnen Sie 9 + 5." — ausgeschriebene Addition statt `*`, das als Pflichtfeld-Stern fehlgelesen wird. **DE macht das bereits so** — es ist eine Plugin-Einstellung, keine Entwicklung.

---

## Accessibility-Quickcheck

- [x] Farbkontrast Text ≥ 4.5:1 / UI ≥ 3:1 (WCAG 1.4.3 / 1.4.11) — **Restrisiko** beim Hero-Text auf Foto, nicht messbar bestätigt
- [ ] Fokuszustände sichtbar (WCAG 2.4.7) — nicht abschließend geprüft, Tastaturdurchlauf empfohlen
- [ ] **Tap-Targets ≥ 24 × 24 px (WCAG 2.5.8, AA) — verletzt**: CAPTCHA-Neuladen 22 × 22 px
- [ ] **Semantische Struktur — verletzt**: kein H1 und kein H2 auf der Anfrageseite (nur zwei H3); kein `<footer>`-Element; `navigation "Primär"` mobil ohne Inhalt im Baum
- [x] Bilder mit `alt`-Attribut (WCAG 1.1.1) — vorhanden; **aber** zwei der vier Zertifikatsbilder haben `alt=""` und werden gar nicht geladen (Finding 17)
- [ ] **Links mit erkennbarem Zweck (WCAG 2.4.4) — verletzt**, 3 Links ohne Namen
- [x] **Formularfelder mit Label (WCAG 1.3.1 / 3.3.2) — erfüllt**: alle 11 Felder des Anfrageformulars sind beschriftet (Finding 6 zurückgezogen)
- [ ] **Zweck von Eingabefeldern erkennbar (WCAG 1.3.5, AA) — verletzt**: kein `autocomplete` auf einem einzigen Feld (Finding 19)
- [ ] **CAPTCHA-Alternative (WCAG 1.1.1) — fehlt** in AT, in DE vorhanden
- [ ] Tastaturbedienbar ohne Maus (WCAG 2.1.1) — nicht geprüft

**Lighthouse mobil** (`/kontakt-it-verkaufen/`, Erhebung 2026-08-03, nicht neu erhoben): Accessibility **94**, Best Practices **100**, SEO **92**. Vier fehlgeschlagene Audits: `link-name`, `target-size`, `meta-description`, `agent-accessibility-tree` — konsistent mit den Findings 5, 7 und 15. Ein Formularlabel-Audit ist korrekt **nicht** darunter.

---

## Performance

| Metrik | Wert | Bewertung | Hinweis |
|---|---|---|---|
| LCP (Labor, ohne Throttling) | 118 ms | 🟢 | Nicht als Nutzererfahrung lesen — ohne Netzwerk-Drosselung gemessen |
| CLS (Labor) | 0,00 | 🟢 | Stabiles Layout |
| LCP (Clarity, echte Nutzer AT) | 1,90 s | 🟢 | Innerhalb des guten Bereichs (< 2,5 s) |
| INP (Clarity, AT) | 192 ms | 🟡 | Grenzbereich (gut < 200 ms) |
| CLS (Clarity, AT) | 0,006 | 🟢 | |
| Clarity Performance-Score | 86 | 🟢 | 85,7 gerundet |
| CrUX-Felddaten | keine | — | Zu wenig Traffic für Chrome-UX-Report |

Diese vier Clarity-Werte stammen aus der Clarity-API und decken das erklärte 19-Tage-Fenster ab. Der Dashboard-Export weist für dieselben Metriken leicht andere Werte aus (LCP 1,898 s, INP 192 ms, CLS 0,009, Score 86,1), weil er 20 Tage inklusive 15.07. aggregiert. Die Abweichung ist ohne Bedeutung für die Bewertung — beide Fassungen liegen im guten Bereich.

**Performance ist nicht das Problem dieser Seite.** Das ist ausdrücklich festzuhalten, weil der automatisch erzeugte Clarity-Report in seiner ersten Fassung „Performance & Stabilität" als Top-Priorität auswies — das ist die generische Branchenvorlage des Werkzeugs, nicht ein Befund aus diesen Daten. Bei LCP 1,90 s, CLS 0,006 und Score 86 wäre Performance-Optimierung Aufwand ohne Wirkung auf die Anfragezahl.

---

## Quick Wins (heute umsetzbar)

1. **Pflichtstern bei „Wie sind Sie auf afb aufmerksam geworden?" entfernen.** Ein Formularfeld-Attribut, kein Designprojekt — und die Attribution ist ohnehin schon eingebaut (Finding 18).
2. **`autocomplete` auf fünf Feldern setzen.** Fünf Attribute, direkte Wirkung auf die mobile Ausfüllrate.
3. **Footer-Link „Nachhaltigkeit" auf die richtige URL zeigen lassen** (aktuell `#`).
4. **Drei Links ohne Namen beschriften**, insbesondere den Telefon-Link auf der Anfrageseite.
5. **Meta-Description und H1 für `/kontakt-it-verkaufen/` setzen.**
6. **DE-CAPTCHA-Konfiguration auf AT übernehmen** (Audio-Alternative, Addition statt Multiplikation) — eine Plugin-Einstellung.
7. **Primären CTA auf `/it-hardware/verkaufen/` mobil über die Falzkante ziehen** — Reihenfolge im Template ändern, kein neues Design.

---

## Strategische Empfehlungen

**Die Anfragestrecke ist kein Designproblem, sondern ein Reihenfolgen- und Zugangsproblem.** Die Seite enthält alles, was ein B2B-Interessent braucht — Ablauf in fünf Schritten, Konditionen, Zertifikate, Referenzen. Nur steht es in einer Ordnung, die annimmt, dass jemand die ganze Seite liest. Bei 22 % Scroll-Tiefe und 2,0 Seiten pro Sitzung trifft diese Annahme nicht zu. Die Reparatur heißt: Nutzenversprechen, Preislogik und Handlungsaufforderung nach oben, Beweise nachziehen.

**Mobil ist die eigentliche Baustelle, und das ist der AT-spezifische Teil.** AT ist mit **51 % mehrheitlich mobil**, DE nur zu einem Drittel (33 %) — beide Werte aus Clarity im identischen 19-Tage-Fenster. Die mobile Sitzungsdauer liegt laut GA4 bei 1:12 gegenüber 5:27 am Desktop, und mobile Nutzer klicken sichtbar häufiger auf den Anruf (27 von 30 Anrufklicks). Zwei Konsequenzen: Erstens gehört die mobile Anfragestrecke zuerst überarbeitet, nicht die Desktop-Fassung. Zweitens sollten `click_to_call` und `click_to_mail` als Conversion gezählt werden — 56 Klicks auf Kontaktoptionen im Zeitraum tauchen derzeit in keiner Statistik auf, wodurch der mobile Kanal systematisch unterschätzt wird.

**Die AT/DE-Lücke lässt sich nicht auf die Seitenqualität schieben.** Die Formularhürden sind identisch, die Seitenstruktur ist nahezu identisch, die Performance ist vergleichbar. Der erste CTA liegt in **beiden** Märkten unter der Falzkante (AT 1.033 px, DE 1.007 px), und die DE-Seite ist sogar länger. Was unterscheidet: Gerätemix, Trafficqualität (53,6 % der AT-Sitzungen sind bezahlt, davon rund ein Viertel Cross-network mit nur 33,9 % Engagement), Textmenge im Seitenkopf (acht gegen drei Zeilen) und ein On-Page-FAQ, den AT nicht hat. Für die Kundenkommunikation heißt das: UX-Verbesserungen heben die Conversionrate, schließen aber die Anfragelücke nicht allein. Wer das anders verspricht, wird an der Messung scheitern.

**Und ein Befund, der über UX hinausgeht:** Die zweite kundenbestätigte Lead-Seite `/it-hardware/kaufen/gewerblich/` hat 13 Einstiege in 90 Tagen und 0 Key Events. Ihr Problem ist nicht die Gestaltung, sondern dass sie niemand erreicht — interne Verlinkung und Sichtbarkeit, nicht Conversion-Design. Das gehört als Erkenntnis zurück in die Priorisierung, statt dort UX-Aufwand zu investieren.

---

## Datenbasis und ihre Grenzen

- **Clarity-Fenster:** 16.07.–03.08.2026, 19 Tage, 1.299 Sitzungen (Clarity-Dashboard, am 2026-08-04 live gegengeprüft). Der zuvor berichtete Wert 1.256 stammte aus dem Recordings-Export, der am 03.08. um 13:41 gezogen wurde und den letzten Tag deshalb nur halb enthielt — er lag 3,3 % zu niedrig. Der 15.07. ist ausgeschlossen: an diesem Tag enthielt das AT-Projekt 193 Sitzungen, davon 54,9 % aus Deutschland und 56,5 % mit Einstieg auf einer `.de`-Adresse, bei Ø 0,99 Sitzungsklicks gegenüber 3,10 danach.
- **Zwei Basen im Clarity-Report:** Die seitenbezogenen Zahlen (Top-Seiten, Scroll-Tiefe, Quickbacks, Dead Clicks, Ein-/Ausstiege) stammen aus der Clarity-API und decken die 19 Tage ab. Die Dashboard-Aggregate (Geräte, Browser, Länder, Benutzerabsicht, Einblicke, Kanäle, Referrer, JS-Fehler, Core Web Vitals) sind ein vorab aggregierter Export über **20 Tage inklusive 15.07.** und lassen sich nachträglich nicht filtern. Der **Gerätesplit in diesem Review stammt deshalb aus dem Dashboard für das 19-Tage-Fenster**, am 2026-08-04 live abgelesen: 664 von 1.299 Sitzungen mobil = 51,1 % (aus den Recordings gerechnet waren es 643 von 1.256 = 51,2 % — dieselbe Aussage, nur auf der um den halben 03.08. verkürzten Basis).
- **Heatmap-Stichproben sind klein.** Seitenansichten je Heatmap: `verkaufen` mobil **11**, PC 51 · `kontakt-it-verkaufen` mobil 24, PC 28 · `kaufen-gewerblich` mobil **3**, PC 25. Bei n = 11 bewegt ein einzelner Besucher das Ergebnis um 9 Prozentpunkte. Die Heatmap-Aussagen sind daher qualitativ zu lesen; für `kaufen-gewerblich` gilt das besonders.
- **Consent-Beschränkung:** Clarity sieht ausschließlich Sitzungen mit Statistik-Einwilligung.
- **GA4-Stand:** Abfrage am 2026-08-04 für 2026-05-05 – 2026-08-03. Der 03.08. war bei der ersten Abfrage am 03.08. noch nicht vollständig verarbeitet; die Zahlen in diesem Dokument sind der Stand vom 04.08.
- **Kein GA4 für DE:** Für afb-group.de liegt uns keine Property vor. Alle DE-Zahlen stammen aus Clarity oder aus der Live-Prüfung.

---

## Quellenverweise

- Shariat & Savard Saucier, *Tragic Design* — CAPTCHAs als Beispiel „unhöflicher" Software; Prüffrage „What would this look like if the user were interacting with a real person?". Übertragen: Niemand würde einen potenziellen Geschäftspartner am Empfang eine Rechenaufgabe lösen lassen, bevor er sprechen darf → Finding 2
- Enders, *Designing UX: Forms* — „Start with nothing. Then only add what's needed to communicate with the user."; Fragen dürfen nur verlangen, was der Nutzer verfügbar hat → Findings 2, 11, 18 und Microcopy
- Johnson, *Designing with the Mind in Mind* — CAPTCHAs sind absichtlich verrauschter Text; Text auf gemustertem Grund stört das Lesen bereits bei schwachem Muster → Findings 2, 13
- Malewicz & Malewicz, *Designing User Interfaces* — Hierarchie im Above-the-fold-Bereich → Finding 1
- Tidwell, *Designing Interfaces* — Umgang mit bewegten Inhalten im Primärbereich → Finding 4
- WCAG 2.2: 1.1.1 (8, 17) · 1.3.1 (10, 15) · 1.3.5 (19) · 1.4.3 (13) · 2.4.4 (5) · 2.4.6 (15) · 2.5.8 (7)

---

## Revision vom 2026-08-04

Der Report wurde vollständig gegen seine Quellen geprüft: GA4 gegen die Data API, Clarity gegen CSV-Exporte und API-Cache, alle DOM-Aussagen gegen die Live-Seite und einen neu gezogenen Snapshot. Was sich geändert hat:

**Korrigiert, weil falsch:**

1. **Finding 17 neu geschrieben.** Vorher: „2 von 3 Zertifikaten laden nicht, nur Blancco lädt; DE zeigt fünf ladende Zertifikate." Tatsächlich sind es **vier** Badges, mobil lädt **keines**, am Desktop nur Blancco — und **DE hat denselben Defekt** (1 von 5). Die Ursache ist nicht die Lazyload-Konfiguration, sondern ein Logo-Karussell, dessen Folien außerhalb des Viewports liegen.
2. **Gerätemix.** „49 % mobil" stammte aus dem 20-Tage-Dashboard inklusive des ausgeschlossenen 15.07. Für das erklärte 19-Tage-Fenster sind es **51,1 %** — AT ist mehrheitlich mobil, nicht „fast hälftig".
3. **Seitenhöhe und Konditionsposition.** „~8.000 px" war der Desktop-Wert in einem Mobile-First-Review; mobil sind es 15.161 px. „Unteres Seitendrittel" war falsch: die Konditionen beginnen bei 39 % (mobil) bzw. 43 % (Desktop).
4. **Erster Bildschirm.** Die Beschreibung „Hero-Bildstreifen ohne Inhalt" war falsch — H1 und Einleitungsabsatz liegen im ersten Bildschirm. Fehlend ist nur der Button.
5. **Zeilenzahl** des Hero-Absatzes: acht, nicht sieben.
6. **Feldzahl** des Anfrageformulars: 11, nicht 12 (12 gilt für DE).
7. **Zwei Zitate** entsprachen nicht dem Seitentext: der CAPTCHA-Hinweis und die DE-Audio-Beschriftung. Beide ersetzt.
8. **Finding 7** benannte das falsche Element und die falsche Schwelle: zu klein ist das innere `<a>` mit 22 × 22 px, verletzt ist die AA-Grenze von 24 × 24 px (2.5.8), nicht 44 × 44 px (das ist 2.5.5, AAA).
9. **Aktualisierte GA4-Werte** (Stand 04.08.): 45 statt 43 Formularstarts, 49 statt 47 bestätigte Anfragen, 50 statt 49 Downloads der Beispielkalkulation, 13 statt 14 Einstiege auf `/it-hardware/kaufen/gewerblich/`, 2.445 statt 2.425 Sitzungen auf der Lead-Seite.
10. **Finding 16 verschärft.** Die frühere Fassung nannte „39 der 68 Absendungen" und ließ 29 unerklärt, weil die Tabelle nur 4 von 22 Seiten zeigte. Vollständig aufgeschlüsselt stammt **genau eine** der 68 Absendungen von einem echten Kontaktformular.
11. **Reste bereinigt:** Der Accessibility-Quickcheck führte Formularlabels weiter als verletzt, obwohl Finding 6 zurückgezogen war; die WCAG-Zuordnung zitierte Finding 6 ebenfalls weiter.
12. **Unbelegte Aussagen entfernt oder gekennzeichnet:** die 24-Stunden-Zusage in der Microcopy (nicht von afb bestätigt), „häufigste Klickbremse", „56 echte Kontaktaufnahmen" (es sind Klicks), und die Zuordnung des Nachhaltigkeits-Arguments zu „Kundeninterviews" (es steht im Content-Audit).
13. **„Formular in DE identisch"** präzisiert: die Hürden sind identisch, die Umsetzung nicht.

**Neu aufgenommen, weil belegt:** Finding 18 (Attributionsfelder vorhanden aber leer; `formular` bereits gefüllt), Finding 19 (kein `autocomplete`), Finding 15 erweitert (kein H1), Finding 20 (Badges von der DE-Domain, falsches `title` am VSE-Bild).

**Bestätigt, unverändert:** kein CTA über der Falzkante, sieben Pflichtfelder, drei Links ohne Namen, defekter Footer-Link, fehlender Footer-Landmark, fehlende Meta-Description, Hero-Slider, Hero-Zitat, fehlende Audio-Alternative, LCP 1,9 s, INP 192 ms, Score 86, 22 % Scroll-Tiefe, 30 Dead-Click-Sitzungen.

## Revision vom 2026-08-04, zweiter Durchgang

Gegenprüfung direkt in der Clarity-Oberfläche (Projekt `xjqlrvf4fw`, Zeitraum exakt 16.07. 00:00 – 03.08. 23:59), weil alle bisherigen Prüfungen gegen dieselben Exportdateien liefen. Drei Korrekturen:

1. **Sitzungsbasis 1.299 statt 1.256.** Der Recordings-Export wurde am 03.08. um 13:41 gezogen, der letzte Tag ist darin nur halb enthalten. Alle daraus gerechneten Summen lagen 3,3 % zu niedrig. Folge: Die Consent-Abdeckung ist **rund 94 %** (1.299 von 1.389 GA4-Sitzungen), nicht 90 % — die Datenqualität ist also besser als berichtet.
2. **Lead-Seite 606 statt 591 Sitzungen.** 591 stand in keinem Report und in keiner Exportdatei; beide Clarity-Report-Sektionen (Top-Seiten, Scroll-Tiefe-Übersicht) nennen durchgehend 606, das Dashboard live ebenfalls. Die Zahl war aus einer Ad-hoc-Abfrage übernommen. Abgeleitet korrigiert: **77 Quickbacks = 12,7 %** (statt 74 = 12,5 %), **30 Dead-Click-Sitzungen = 5,0 %** (statt 5,1 %).
3. **Gerätemix 51,1 %** (664 von 1.299) statt 51,2 % — dieselbe Aussage auf der vollständigen Basis.

**In der Oberfläche bestätigt:** 22 % Scroll-Tiefe und die Einordnung als niedrigster Wert · Seitentabelle vollständig deckungsgleich (606 · 242 · 125 · 90 · 81 · 72 · 50 · 48 · 45 · 42 · 40) · Benutzerabsicht 14,4 / 52,7 / 32,9 % · Smart Events 167 / 36 / 26 exakt · Tote Klicks 7,31 %, Schnellrückklick 15,40 % projektweit · Seiten pro Sitzung 1,99.

**Nicht in der Oberfläche prüfbar:** Die seitenbezogenen Quickback-, Dead-Click- und Scroll-Werte stehen im Dashboard nicht pro Seite, und der URL-Filter zählt anders (44 statt 606 Sitzungen). Sie sind im Report zweifach konsistent und die übrige Seitentabelle stimmt exakt — live gegengeprüft sind sie aber nicht.

**Beweisgrundlage nachgezogen:** Die lokalen Snapshots der vier Kontaktseiten und von `/qualitaet-und-sicherheit/` waren WAF-Sperrseiten ohne Formular-DOM. Sie sind am 2026-08-04 neu gezogen; alle DOM-Befunde dieses Reviews sind seither offline gegen `pages/` nachprüfbar.

## Offene Fragen

1. **Ist die Pflicht-Herkunftsfrage eine Vorgabe aus dem Marketing?** Falls ja, ist die Alternative jetzt konkret benennbar: die fünf bereits eingebauten Attributionsfelder befüllen (Finding 18).
2. **Füllt ein Skript die Attributionsfelder erst beim Absenden?** Gemessen wurde der Zustand beim Laden — dort sind sie leer. Falls sie beim Absenden gefüllt werden, ist die Attribution vorhanden und die Pflichtfrage ohne jeden Zweck.
3. **Woher stammen die zwei Felder ohne Label**, die Konsole und Lighthouse melden? Nicht aus dem Anfrageformular — zu lokalisieren, aber ohne Bezug zur Anfragestrecke.
4. **Wie viele der 49 bestätigten Anfragen stammen aus welchem Formular?** Erst nach Umsetzung von Finding 16 beantwortbar. Ohne diese Zuordnung bleibt unklar, welchen Anteil die B2B-Lead-Strecke am Gesamtergebnis hat.
5. **Ist der 24-Stunden-Rückmeldeanspruch intern zugesagt?** Falls ja, gehört er in die Hero-Microcopy; falls nein, darf er nicht dort stehen.
