Captcha schützen Deine Website vor Spam, Bots und automatisierten Angriffen, beispielsweise beim Formularversand. Leider verhindern sie aber auch oft, dass Deine Website barrierefrei ist. Was Du tun kannst oder viel mehr tun solltest, erklären wir Dir in diesem Beitrag über barrierefreie Captcha. Los geht’s!
Captcha ist eine englische Abkürzung und steht für “Completely Automated Public Turing test to tell Computers and Humans Apart”. Auf deutsch in etwa “vollautomatisierter Test zur Unterscheidung zwischen Computern und Menschen”. Die Aufgabe von Captchas ist einfach: Schutz Deiner Website, zum Beispiel vor Spam über Dein Kontaktformular.
Bei genauerer Betrachtung wird hier auch schon klar, weshalb Captchas in der digitalen Barrierefreiheit ein großes Thema sind. Sie identifizieren Menschen. Nur haben Menschen unterschiedliche Fähigkeiten, Stärken, Schwächen und Einschränkungen. Manche sehen oder hören schlecht, andere haben kognitive oder motorische Beeinträchtigungen.
Es ist deshalb gar nicht so einfach, ein für alle Menschen zugängliches Captcha zu erstellen. Gefordert wird das allerdings, zum Beispiel ganz explizit mit dem WCAG-Kriterium 1.1.1 in der Konformitätsstufe A (eine absolute Minimalanforderung).
Die Honeypot-Technik nutzt unsichtbare Formularfelder, um Bots zu erkennen. Biometrische Verfahren wie WebAuthn/FIDO2 nutzen Fingerabdruck- oder Gesichtserkennung und können eine gute Ergänzung sein.
Nutzenden mit mehreren Einschränkungen stoßen entsprechend gleich auf doppelte und dreifache Barrieren.
Biete verschiedene Möglichkeiten zur Verifizierung an: E-Mail-/SMS-Verifizierung, passwortlose Anmeldungen (Magic Links) und Social-Log-ins. Ergänze auch biometrische Verfahren wie WebAuthn/FIDO2.
Vermeide komplexe und verzerrte Rätsel. Setze auf klare und einfache Fragen oder verhaltensbasierte Ansätze. Vermeide kulturelle oder bildungsabhängige Allgemeinwissensfragen. Einfache Rätzel sind beispielsweise “2 + drei = “.
Code-Beispiel für ein Screenreader-freundliches Text-Captcha. Die Klasse sr-only (screenreader only) sorgt dafür, dass der Text nur von Screenreadern erfasst wird.
<form id="captcha-form">
<fieldset>
<legend>Verifizieren Sie, dass Sie kein Roboter sind</legend>
<label for="captcha-input">Bitte geben Sie den Text aus dem Bild ein:</label>
<img src="captcha.jpg" alt="Sicherheitscode: Geben Sie den angezeigten Code ein." />
<input type="text" id="captcha-input" name="captcha" aria-describedby="captcha-instructions" required>
<span id="captcha-instructions" class="sr-only">
Dieser Code dient zur Überprüfung, dass Sie ein Mensch sind.
</span>
</fieldset>
<button type="submit">Absenden</button>
</form>
Code-Beispiel für ein Tastatur-zugängliches Element. Das enthaltene aria-label stellt sicher, dass auch Nutzenden, die den Button nur akustisch wahrnehmen, wissen, was er bewirkt.
<button type="button" id="refresh-captcha" aria-label="Neuen Sicherheitscode anfordern">
Neuer Code
</button>
Verzichte auf erzwungene Timeouts oder biete großzügige Zeitfenster an. Falls nötig, stelle eine Option zur Verlängerung bereit und informiere rechtzeitig und transparent darüber.
Vermeide blinkende oder schnell animierte Inhalte oder laute Audioausgaben. Setze auf eine ruhige Gestaltung und klare Anweisungen.
Code-Beispiel eines Honeypot-Felds. Das Feld wird für reguläre Nutzenden unsichtbar gemacht und ist für die Tastaturnavigation ausgeschlossen (mittels tabindex=”-1″).
<div style="position: absolute; left: -9999px;">
<label for="website">Website</label>
<input type="text" id="website" name="website" tabindex="-1" autocomplete="off">
</div>
Verhaltensbasierte Analysen sind ein großer Vorteil, denn sie stellen sicher, dass sie datenschutzkonform umgesetzt und transparent kommuniziert werden. Biete Alternativen für Nutzenden, die der Analyse nicht zustimmen.
Einsatz von Fingerabdruck- oder Gesichtserkennung kann die Barrierefreiheit erhöhen. Biete immer alternative Authentifizierungsmethoden an und beachte die dafür erforderlichen Datenschutz- und Hardwarevoraussetzungen.
Code-Beispiel für eine barrierefreie Fehlermeldung. Mit role=”alert” und aria-live=”assertive” wird sichergestellt, dass die Fehlermeldung sofort von unterstützenden Technologien erkannt und vorgelesen wird.
<div role="alert" aria-live="assertive" class="error-message">
<p>Die Eingabe des Sicherheitscodes war leider falsch. Bitte versuchen Sie es erneut oder nutzen Sie eine alternative Verifizierungsmethode.</p>
</div>
Ich hoffe, dieser Blogbeitrag hat Dir geholfen, die Relevanz und die Umsetzung von barrierefreien Captchas besser zu verstehen. Wenn Du Fragen oder Anmerkungen hast, dann lass es uns gerne wissen.
Cookie Consent Banner by Real Cookie Banner