.sr-only
это имя класса, специально используемое для программ чтения с экрана. Вы можете использовать любое имя класса, но .sr-only
оно довольно часто используется. Если вы не заботитесь о разработке с учетом соответствия, то его можно удалить. Это не повлияет на пользовательский интерфейс, если его удалить, потому что CSS для этого класса не виден для браузеров настольных компьютеров и мобильных устройств.
Кажется, здесь отсутствует некоторая информация об использовании, .sr-only
чтобы объяснить его назначение и предназначение для программ чтения с экрана. Прежде всего, очень важно всегда помнить об ослабленных пользователях. Нарушение является целью соответствия 508: https://www.section508.gov/ , и это здорово, что начальная загрузка учитывает это. Тем не менее, использование .sr-only
- это не все, что необходимо учитывать при соблюдении 508. Вы можете использовать цвет, размер шрифтов, доступность через навигацию, дескрипторы, использование арии и многое другое.
Но что касается .sr-only
- что на самом деле делает CSS? Есть несколько слегка отличающихся вариантов CSS для .sr-only
. Один из немногих я использую ниже:
.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;
}
Вышеупомянутый CSS скрывает контент в настольных и мобильных браузерах, обернутых этим классом, но просматривается программой чтения с экрана, такой как JAWS: http://www.freedomscientific.com/Products/Blindness/JAWS . Пример разметки выглядит следующим образом:
<a href="#" target="_blank">
Click to Open Site
<span class="sr-only">This is an external link</span>
</a>
Кроме того, если элемент DOM имеет ширину и высоту 0, этот элемент не виден DOM. Вот почему вышеупомянутый CSS использует width: 1px; height: 1px;
. При использовании display: none
и установке CSS в height: 0
и width: 0
, элемент не виден DOM и, таким образом, проблематичен. Использование CSS выше width: 1px; height: 1px;
- это не все, что вы делаете, чтобы сделать контент невидимым для настольных и мобильных браузеров (без overflow: hidden
этого ваш контент все равно будет отображаться на экране) и видимым для программ чтения с экрана. Сокрытие контента от настольных и мобильных браузеров осуществляется путем добавления смещения width: 1px
и height: 1px
ранее упомянутых с помощью:
position: absolute;
margin: -1px 0 0 -1px;
overflow: hidden;
Наконец, для того, чтобы иметь очень хорошее представление о том, что программа чтения с экрана видит и передает своему ослабленному пользователю, отключите стилизацию страницы для своего браузера. Для Firefox вы можете сделать это, перейдя в:
View > Page Style > No Style
Я надеюсь, что предоставленная мною информация будет полезна кому-то в дополнение к другим ответам.