ChatGPT meckert, dass aria-describedby nicht reicht, wenn der Fehler dynamisch angezeigt wird.
Problem:
HTML-Code:
<input type="email" aria-describedby="help_ctrl_131">
<p class="error">Bitte geben Sie eine gültige E-Mail-Adresse ein!</p>
HTML-Code:
aria-describedby
verweist nur auf den Hilfetext, nicht auf den Fehler.
Screenreader bekommen den Fehler nicht automatisch mit.
Lösung:
Fehler-ID hinzufügen und in aria-describedby aufnehmen
HTML-Code:
aria-invalid="true"
setzen
Fehlertext mit role="alert" versehen.
HTML-Code:
<input type="email" id="ctrl_131" aria-describedby="help_ctrl_131 error_ctrl_131" aria-invalid="true">
<p id="error_ctrl_131" class="error" role="alert">
Bitte geben Sie eine gültige E-Mail-Adresse ein!
</p>
<p class="help" id="help_ctrl_131">Bitte geben Sie Ihre E-Mail-Adresse ein.</p>
Damit werden dann Pflichtfeld-Hilfetext und Fehlermeldung korrekt an Screenreader kommuniziert.
Hat das schon mal jemand umgesetzt?