Was wird geprüft?
Eine Statusmeldung ist eine Nachricht, die einer Seite dynamisch hinzugefügt wird. Sie informiert Nutzenden beispielsweise über den Erfolg oder das Ergebnis einer Aktion, über den Fortschritt eines Prozesses oder über das Vorkommen von Fehlern.
Wenn Webangebote Statusmeldungen erzeugen, sollen visuell eingeblendete Statusmeldungen mit geeigneten Rollen und Eigenschaften ausgezeichnet und programmatisch ermittelbar sein, das bedeutet die Statusmeldungen werden Nutzenden von assistiven Technologien (Screenreader) präsentiert, ohne dass sie den Fokus erhalten.
Beispiele für Statusmeldungen:
Ware wurde im Shop dem Warenkorb hinzugefügt
3 Bücher der Merkliste hinzugefügt
Formular erfolgreich abgeschickt (Erfolgsmeldung)
5 Suchergebnisse (etwa nach Filterung der Ergebnisse)
3 Fehler im Formular (bei clientseitiger Prüfung ohne Neuladen der Seite)
Punktestand geändert
Seite wird geladen (bei visueller Ladeanzeige/Fortschrittsbalken)
Warum wird das geprüft?
In vielen Nutzungskontexten erhalten sehende Nutzende von Webangeboten Statusmeldungen (einige von ihnen vorübergehend), die Rückmeldungen über das Ergebnis von Interaktionen (z. B. die Zahl der beim Filtern einer Suchergebnisliste zurückgegebenen Einträge) oder den Erfolg oder Misserfolg von Transaktionen geben. Diese Meldungen sind ebenso wichtig für nicht-visuelle Nutzende und sollten für assistive Technologien verfügbar sein, damit die Nutzer auf sie aufmerksam werden, ohne ihren aktuellen Fokus oder Standpunkt ändern zu müssen.
Wie wird geprüft?
1. Anwendbarkeit des Prüfschritts
Der Prüfschritt ist anwendbar, wenn die Webinhalte Statusmeldungen generieren, die nicht den Fokus erhalten. Er ist nicht anwendbar, wenn Meldungen im Zusammenhang mit Kontextänderungen erscheinen, zum Beispiel, wenn nach dem Abschicken eines Formulars die Seite neu lädt und dann vor dem Formular eine Fehlermeldung erscheint.
2. Prüfung
Statusmeldungen identifizieren. Dafür Eingaben vornehmen, die zur Generierung von Statusmeldungen führen.
Wenn Meldungen nach Abschicken eines Formulars generiert werden, prüfen, ob durch das Abschicken die Seite neu lädt oder Statusmeldungen auf der bestehenden Seite eingefügt werden. Wird die Seite neu geladen, ist der Prüfschritt nicht anwendbar.
Dazu im Firefox-Browser in den Developer Tools den Reiter "Netzwerkanalyse" aufrufen und das Protokoll nach Aktivierung des Elements, dass die Meldung auslöst, prüfen. Wurde die Seite neu geladen (dann gibt es einen Eintrag vom Typ "html"?) Gff. das Protokoll nach Typ "html" filtern.
Alternativ im Chrome-Browser in den Developer Tools den Reiter "Netzwerk" auswählen und ebenso Protokoll nach Aktivierung prüfen. GGf. das Protokoll nach Typ "Doc" filtern.
Wenn die Seite nicht neu geladen wurde: Über eine Quellcode-Analyse prüfen, ob der Container mit der Statusmeldung als ARIA-Live-Region ausgezeichnet ist. Sind entsprechende ARIA-Live-Attribute vorhanden?
Die Ausgabe der Statusmeldung zusätzlich mit dem Screenreader prüfen:
Eingaben vornehmen, die zur Generierung von Statusmeldungen führen. Sofern das Angebot von sich aus Statusmeldungen generiert, etwa bei aktualisierten Inhalten, diese Meldungen abwarten.
Prüfen, ob Statusmeldungen beim Erscheinen vom Screenreader ausgegeben werden, ohne dass der Fokus auf die Meldung versetzt wird.
3. Hinweise
Nicht als Statusmeldung gelten:
Fehlermeldung über Dialog (Kontextänderung durch Fokusumsetzung)
Die Hinzufügung von Bedienelementen, wie z. B. zusätzliche Formularelemente
Ob die Statusmeldung tatsächlich vom Screenreader ausgegeben wird, kann abhängig von genutztem Browser und Screenreader unterschiedlich ausfallen. Der Erfolg kann davon abhängen, ob die Statusmeldung in ein bereits bestehendes Element eingefügt wird oder ob eine kurze Zeitverzögerung vor der Generierung der Meldung definiert worden ist. Für eine möglichst gute Unterstützung in unterschiedlichen Umgebungen:
Beim Laden der Seite sollte ein (leerer) Container im DOM vorhanden und als Live-Region ausgezeichnet sein.
Erst wenn die Aktualisierung ausgelöst wird, sollte die Textänderung in den vorhandenen Container eingefügt oder aktualisiert werden.
Hinweis zur Verwendung von role="status"
:
Die ARIA-Technik ARIA 22: Using role=status to present status messages der Web Content Accessibility Guidelines (WCAG 2.1) beschreibt den Einsatz von
role="status"
für die Aktualisierung eines Warenkorbs (Beispiel 2). Damit die Ausgabe mit dem Screenreader NVDA in Firefox funktioniert, muss derzeit (Stand April 2021) mitaria-atomic="true"
ergänzt werden (auch wenn dies die Technik aktuell nicht formuliert).
4. Bewertung
Erfüllt
Alle Statusmeldungen sind richtig ausgezeichnet und damit programmatisch verfügbar.
Einordnung des Prüfschritts
Einordnung des Prüfschritts nach WCAG 2.1
Guideline
Success criterion
4.1.3 Status messages (Level AA)
Techniques
Situation A: If a status message advises on the success or results of an action, or the state of an application:
ARIA22: Using role=status to present status messages in combination with any of the following:
Situation B: If a status message conveys a suggestion, or a warning on the existence of an error:
ARIA19: Using ARIA role=alert or Live Regions to Identify Errors in combination with any of the following:
Situation C: If a status message conveys information on the progress of a process:
Failures
Quellen
Understanding Success Criterion 4.1.3 Status Messages (zur Zeit nur auf Englisch verfügbar)
W3C-Definition einer Statusmeldung: https://www.w3.org/TR/WCAG/#dfn-status-messages
W3C-Definition einer Live-Region: https://www.w3.org/TR/wai-aria/#dfn-live-region
ARIA 1.1 Spezifikation: https://www.w3.org/TR/wai-aria-1.1/