.sr-onlyto nazwa klasy używana specjalnie dla czytników ekranu. Możesz użyć dowolnej nazwy klasy, ale .sr-onlyjest 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-onlycelu 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-onlynie 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: nonei ustawiając CSS na height: 0i 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: hiddenzawartość 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: 1pxa height: 1pxwcześ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.