.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
Я надеюсь, что предоставленная мною информация будет полезна кому-то в дополнение к другим ответам.