ich das folgende Stück Code hinzugefügt haben, um Screen-Reader zu machen lesen Sie die Warnmeldung:role = „alert“ wird nur zum ersten Mal arbeiten
<aside aria-live="assertive" aria-atomic="true" role="alert" ng-show="login.hasWarning();" translate="{{message}}"></aside>
<form>
<!--form content-->
</form>
Es funktioniert perfekt für die Beim ersten Mal, wenn ich den Fehler erneut begehe, wird die aktualisierte Fehlermeldung jedoch nicht erneut gelesen. Was vermisse ich?
Vielen Dank im Voraus.
HI Juli, danke für deine Antwort. –
Haben Sie eine Idee, warum all die großen Screenreader (JAWS/VoiceOver/NVDA) dies tun? Und gibt es irgendwelche Arbeiten, sagen wir wie das Hinzufügen von zufälligen Leerstellen am Ende der Nachricht usw., damit die Screenreader es wieder lesen? –
Weil das die WAI-ARIA-Spezifikation ist. (https://www.w3.org/TR/wai-aria/states_and_properties#aria-live) Der SR liest Änderungen in der Live-Region. Wenn Ihr Update keine Änderung ist, liest es die SR nicht. Das Hinzufügen leerer Leerzeichen am Anfang und Ende der Nachricht funktioniert möglicherweise mit VoiceOver und wird wahrscheinlich nicht mit JAWS funktionieren. Wenn Sie sich wohl fühlen, dass JAWS möglicherweise "blank Error 101" anstelle von "Error 101" sagt, wird $ ("[aria-live]") ausgeführt. Text (""); $ ("[aria-live]"). text ("Fehler 101"); wird zumindest gelesen werden. – Juli