Przejdź do treści
SilktidePomoc

Zagnieżdżone aria-hidden

Silktide sprawdza treści oznaczone jako widoczne dla , które znajdują się wewnątrz kontenera oznaczonego jako ukryty przed nimi. Ukrycie ma pierwszeństwo: wewnętrzne oznaczenie nie ma wpływu, a treść pozostaje ukryta.

<!-- Problem: akapit pozostaje ukryty mimo aria-hidden="false" -->
<div aria-hidden="true">
  <p aria-hidden="false">Ważna treść</p>
</div>

Dlaczego to ważne

Gdy element ma aria-hidden="true", wszystko wewnątrz niego jest usuwane z . Standard nie zapewnia sposobu, aby element potomny mógł ponownie się w nim znaleźć — aria-hidden="false" wewnątrz ukrytego kontenera po prostu nic nie robi. Autorzy stosujący ten wzorzec sądzą, że ponownie udostępnili wewnętrzną treść, w rezultacie czego użytkownicy widzący ją widzą, ale użytkownicy nie mogą do niej dotrzeć, a nikt nie jest świadomy tej luki.

Jak to naprawić

  1. Zmień strukturę znaczników tak, aby treść, która powinna być udostępniona, nie znajdowała się wewnątrz ukrytego kontenera — przenieś ją na zewnątrz, aby była elementem równorzędnym, a nie potomnym.
  2. Jeśli wszystko wewnątrz kontenera powinno być dostępne, usuń aria-hidden="true" z elementu nadrzędnego.
  3. Nigdy nie polegaj na aria-hidden="false", aby cofnąć stan ukrycia elementu nadrzędnego; po wprowadzeniu poprawki można zwykle usunąć także wewnętrzny atrybut.

Jak Silktide to testuje

  1. Znajduje każdy element na stronie z aria-hidden="false".
  2. Przechodzi w górę przez jego elementy nadrzędne, szukając dowolnego elementu z aria-hidden="true".
  3. Zgłasza każdy element, którego aria-hidden="false" znajduje się wewnątrz ukrytego elementu nadrzędnego.

Rozwiązywanie problemów

Skrypt przełącza aria-hidden elementu nadrzędnego

Silktide testuje stronę podczas jej ładowania. Jeśli stan ukrycia występuje tylko chwilowo, zanim skrypt go usunie, wynik odzwierciedla ten początkowy stan — należy jednak pamiętać, że użytkownicy technologii wspomagających korzystający z wolnych połączeń również go doświadczają, a zagnieżdżone aria-hidden="false" nadal nic nie robi, dopóki ten stan trwa.

Dowiedz się więcej

Ostatnio zaktualizowano

Czy ta strona była pomocna?