KI-HTML erkennen

KI-Tools schreiben in Sekunden funktionierendes Markup — aber mit einem erkennbaren Stil. Wer die Fingerabdrücke kennt, weiß sofort, worauf zu achten ist: wo Code aufgebläht ist, wo Bedeutung fehlt und wo sich typische Fehler verstecken. Es geht nicht ums Bashing — die Muster zu kennen macht dich beim Lesen und Reparieren schlicht schneller.

Faustregel: KI-HTML funktioniert meistens — es ist nur oft verbose, generisch und semantisch arm. Genau diese drei Eigenschaften sind die Spur.

Fingerabdruck 1 — div-Suppe & Wrapper-Inflation

Verschachtelte <div>s, von denen die meisten nichts tun. Oft fünf Ebenen, wo eine reicht — mit Namen wie wrapper container inner content.

HTMLsechs divs für eine Überschrift
<div class="card-wrapper">
  <div class="card-container">
    <div class="card-inner">
      <div class="card-content">
        <div class="title-wrapper">
          <div class="title">Hallo</div>
        </div>
      </div>
    </div>
  </div>
</div>

Fingerabdruck 2 — Utility-Klassen-Wüsten

Lange Ketten von Tailwind-artigen Klassen direkt im class-Attribut. Nicht per se schlecht (siehe unten) — aber wenn sich derselbe 15-Klassen-Block dutzendfach wiederholt, statt einmal zentral zu stehen, riecht es nach Copy-Paste-Generierung.

HTML15 Klassen pro Element, x-fach wiederholt
<div class="flex flex-col items-center justify-center
  gap-4 rounded-2xl bg-white p-6 shadow-lg
  hover:shadow-xl transition-all duration-300
  dark:bg-gray-800 md:flex-row md:gap-6">
  ...
</div>

Fingerabdruck 3 — semantische Armut

Das verräterischste Muster: <div> mit onclick statt <button>, <div> statt <nav>/<main>, Überschriften, die nur per CSS „groß" sind statt <h1>.

HTMLfunktioniert mit Maus — sonst nicht
<!-- ⚠️ ein div, das so tut als wäre es ein Button -->
<div class="btn" onclick="senden()">Absenden</div>

<!-- ✅ das hier kann Tastatur, Screenreader, Enter -->
<button type="button" onclick="senden()">Absenden</button>

Fingerabdruck 4 — Platzhalter, die liegen blieben

href="#", alt="image", Lorem ipsum, John Doe, leere onClick-Stubs. Die KI füllt Lücken mit Generischem — was beim Übernehmen leicht vergessen wird.

HTMLalles Platzhalter
<a href="#" class="link">Mehr erfahren</a>
<img src="placeholder.jpg" alt="image">
<p>Lorem ipsum dolor sit amet, consectetur...</p>
<span class="badge">John Doe</span>

Die Schnell-Checkliste

🧱 Struktur
Auffällig viele divs? Tiefe Verschachtelung ohne Zweck? Kaum semantische Tags (header/main/nav)?
🎨 Styling
Riesige class-Ketten oder viele style="…"? Dieselben Stile mehrfach wiederholt statt einer Klasse?
♿ Bedeutung
div mit onclick? Fehlende alt/label? href="#" und Lorem ipsum?
Warum eigentlich?Warum produzieren KIs genau diese Muster?
Drei Gründe. Trainingsdaten: das halbe Web ist div-Suppe — die KI lernt den Durchschnitt, nicht die Best Practice. Token-für-Token: ein Modell generiert linear und „spielt auf Nummer sicher" — ein zusätzlicher Wrapper kostet nichts und kann nicht schaden, also kommt er rein. Kontext-Verlust: ohne die ganze Datei im Blick dupliziert die KI Stile, statt eine bestehende Klasse wiederzuverwenden. Das Ergebnis funktioniert — es ist nur nicht DRY.
Häufiger DenkfehlerVerbose = kaputt
Aufgeblähtes HTML ist nicht automatisch fehlerhaft. Sechs Wrapper-divs rendern völlig korrekt — sie sind nur unnötig. Verschwende keine Zeit damit, „Bugs" in funktionierendem, aber verbosem Code zu suchen. Trenne die zwei Fragen: Funktioniert es? (dann ggf. später aufräumen) vs. Ist es kaputt? (dann debuggen — nächste Lektion). Beides zu vermischen kostet am meisten Zeit.
Tiefer reinTailwind ist nicht das Problem
Utility-CSS (Tailwind) ist eine bewusste, legitime Methode — kurze Klassen statt eigener CSS-Dateien. Der Unterschied zu „KI-Wüste":
  • Absicht: wiederkehrende Komponenten werden zu einer Komponente extrahiert (in React/Vue), nicht 30-mal kopiert.
  • Konsistenz: Abstände/Farben kommen aus dem Design-System (p-4, nicht p-[13px]).
Erkennungszeichen für schlechte Nutzung: derselbe lange Klassen-Block wortwörtlich wiederholt, willkürliche [arbitrary-values], und flex neben grid neben block am selben Element (widersprüchlich).