Verschachteltes aria-hidden
Silktide sucht nach Inhalten, die als sichtbar für gekennzeichnet sind, sich aber innerhalb eines Containers befinden, der für sie als verborgen markiert ist. Verbergen gewinnt: Die innere Kennzeichnung hat keine Wirkung und der Inhalt bleibt verborgen.
<!-- Problem: Der Absatz bleibt trotz aria-hidden="false" verborgen -->
<div aria-hidden="true">
<p aria-hidden="false">Wichtiger Inhalt</p>
</div>
Warum das wichtig ist
Wenn ein Element aria-hidden="true" hat, wird alles darin aus dem entfernt. Der -Standard bietet keine Möglichkeit für einen Nachfahren, wieder aufgenommen zu werden – aria-hidden="false" innerhalb eines verborgenen Containers bewirkt schlicht nichts. Autorinnen und Autoren, die dieses Muster verwenden, glauben, sie hätten den inneren Inhalt wieder freigegeben; das Ergebnis sind Inhalte, die sehende Nutzende sehen können, die Nutzende mit jedoch nicht erreichen können – ohne dass sich jemand der Lücke bewusst ist.
So beheben Sie das Problem
- Strukturieren Sie die Auszeichnung um, sodass der Inhalt, der sichtbar sein soll, nicht im verborgenen Container liegt – verschieben Sie ihn als Geschwister statt als Nachfahren.
- Wenn tatsächlich alles im Container verfügbar sein soll, entfernen Sie
aria-hidden="true"vom Vorfahren. - Verlassen Sie sich niemals auf
aria-hidden="false", um den verborgenen Zustand eines Vorfahren rückgängig zu machen; sobald die Korrektur erfolgt ist, kann das innere Attribut in der Regel ebenfalls gelöscht werden.
So testet Silktide dies
- Finden Sie jedes Element auf der Seite mit
aria-hidden="false". - Durchlaufen Sie seine Vorfahren und suchen Sie nach einem Element mit
aria-hidden="true". - Melden Sie jedes Element, dessen
aria-hidden="false"in einem verborgenen Vorfahren eingeschlossen ist.
Fehlerbehebung
Ein Skript schaltet aria-hidden des Vorfahren um
Silktide testet die Seite beim Laden. Wenn der verborgene Zustand nur kurz existiert, bevor ein Skript ihn entfernt, spiegelt der Befund diesen Anfangszustand wider – beachten Sie jedoch, dass Nutzende von Hilfstechnologien mit langsamen Verbindungen diesen Zustand ebenfalls erleben und das verschachtelte aria-hidden="false" in dieser Zeit weiterhin keine Wirkung hat.
Diese Prüfung meldet nichts, obwohl ich Ergebnisse erwarte
ARIA-Tests können pro Website deaktiviert werden. Prüfen Sie die Erweiterten Einstellungen der Website.