.sr-only
to nazwa klasy używana specjalnie dla czytników ekranu. Możesz użyć dowolnej nazwy klasy, ale .sr-only
jest ona dość często używana. Jeśli nie zależy Ci na rozwoju z myślą o zgodności, możesz go usunąć. Nie wpłynie to w żaden sposób na interfejs użytkownika, jeśli zostanie usunięty, ponieważ CSS dla tej klasy nie jest widoczny w przeglądarkach na komputery i urządzenia mobilne.
Wydaje się, że brakuje tutaj niektórych informacji na temat użycia .sr-only
celu wyjaśnienia jego przeznaczenia i korzystania z czytników ekranu. Przede wszystkim bardzo ważne jest, aby zawsze pamiętać o użytkownikach z ograniczoną odpowiedzialnością. Utrata wartości jest celem zgodności 508: https://www.section508.gov/ , i świetnie, że bootstrap bierze to pod uwagę. Jednak stosowanie .sr-only
nie jest wszystkim, co należy wziąć pod uwagę w przypadku zgodności 508. Masz do dyspozycji kolor, rozmiar czcionek, dostępność poprzez nawigację, deskryptory, użycie arii i wiele więcej.
Ale jeśli chodzi o .sr-only
- co faktycznie robi CSS? Istnieje kilka nieco różnych wariantów CSS .sr-only
. Jeden z niewielu, których używam, jest poniżej:
.sr-only {
position: absolute;
margin: -1px 0 0 -1px;
padding: 0;
display: block;
width: 1px;
height: 1px;
font-size: 1px;
line-height: 1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
outline: 0;
}
Powyższy CSS ukrywa zawartość w przeglądarkach stacjonarnych i mobilnych opakowanych w tę klasę, ale jest widziany przez czytnik ekranu taki jak JAWS: http://www.freedomscientific.com/Products/Blindness/JAWS . Przykład znaczników jest następujący:
<a href="#" target="_blank">
Click to Open Site
<span class="sr-only">This is an external link</span>
</a>
Dodatkowo, jeśli element DOM ma szerokość i wysokość 0, element nie jest widziany przez DOM. Właśnie dlatego wykorzystuje powyższy CSS width: 1px; height: 1px;
. Używając display: none
i ustawiając CSS na height: 0
i width: 0
, element nie jest widziany przez DOM i dlatego jest problematyczny. Powyższe użycie CSS width: 1px; height: 1px;
nie jest wszystkim, co robisz, aby zawartość była niewidoczna dla przeglądarek na komputery i urządzenia mobilne (bez niej overflow: hidden
zawartość nadal byłaby wyświetlana na ekranie) i widoczna dla czytników ekranu. Ukrywanie treści z komputerów stacjonarnych i mobilnych przeglądarkach odbywa się poprzez dodanie przesunięcie od width: 1px
a height: 1px
wcześniej wspomniano, używając:
position: absolute;
margin: -1px 0 0 -1px;
overflow: hidden;
Wreszcie, aby mieć bardzo dobry pomysł na to, co czytnik ekranu widzi i przekazuje upośledzonemu użytkownikowi, wyłącz stylizację strony w przeglądarce. W przypadku przeglądarki Firefox możesz to zrobić, przechodząc do:
View > Page Style > No Style
Mam nadzieję, że informacje, które tu podałem, będą przydatne dla kogoś oprócz innych odpowiedzi.