2016-08-30 48 views
8

From MDN:Dostępność: sr-only lub aria-label

W poniższym przykładzie, przycisk jest stylizowany wyglądać typowy przycisk na "Close", z X w środku. Ponieważ nic nie wskazuje na to, że celem przycisku jest zamknięcie okna dialogowego, atrybut etykiety arii jest używany do dostarczenia etykiety dowolnej technologii wspomagającej.

<button aria-label="Close" onclick="myDialog.close()">X</button> 

Zgodnie z dokumentacją bootstrap:

ukryć elementu do wszystkich urządzeń z wyjątkiem czytników ekranu z .sr tylko

Więc myślę, że mogę również napisać:

<button onclick="myDialog.close()"><span class="sr-only">Close</span>X</button> 

W Bootstrap pro Jak mogę wybrać, który z nich preferować?

+0

'sr-only' nie ma nic wspólnego z dostępnością. Po prostu ** ukrywa ** element oprócz czytników ekranu. Nie oznacza to, że automatycznie sprawia, że ​​ekran elementu jest przyjazny dla użytkownika. –

+3

Zauważ, że w BS4 '.sr-only' zostało zastąpione' 'w kodzie. – 10basetom

Odpowiedz

8

W przykładzie MDN czytnik ekranu odczyta tylko słowo "zamknij", ponieważ aria-label przesłania tekst w przycisku. To zadziała, nawet jeśli ponownie użyjesz kodu bez Bootstrap.

W twoim przykładzie, czytnik ekranu będzie mówić "zamknij x", ponieważ nic nie robisz, aby ukryć "x" od czytników ekranu. Dodajesz także węzeł tekstowy, a następnie ukrywasz go w klasie.

Chciałbym użyć przykładu z MDN.

+0

To naprawdę zależy od klienta screen/text-to-speech. Najpierw skonsultowałbym się z tymi artykułami, ale pamiętaj, że mogą być już nieaktualne: (1) [Linki tekstowe: najlepsze praktyki dla czytników ekranu] (http://www.deque.com/blog/text-links-practices- czytniki ekranu /); (2) Przypadek [title and aria-label attributeibility test case] (http://pauljadam.com/demos/title-aria-label.html). – 10basetom