Что такое sr-only в Bootstrap 3?
Для чего используется класс sr-only
? Это важно или я могу удалить его? Прекрасно работает.
Вот мой пример:
<div class="btn-group">
<button type="button" class="btn btn-info btn-md">Departments</button>
<button type="button" class="btn btn-info dropdown-toggle btn-md" data-toggle="dropdown">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Sales</a></li>
<li><a href="#">Technical</a></li>
<li class="divider"></li>
<li><a href="#">Show all</a></li>
</ul>
</div>
Ответы
Ответ 1
Согласно документации по начальной загрузке, класс используется для сокрытия информации, предназначенной только для программ чтения с экрана, от макета отображаемой страницы.
Программы чтения с экрана будут иметь проблемы с вашими формами, если вы не включите метку для каждого ввода. Для этих встроенных форм вы можете скрыть метки, используя класс .sr-only.
Вот пример используемого стиля:
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
Это важно или можно удалить? Работает нормально без.
Это важно, не удаляйте это.
Вы всегда должны рассматривать программы для чтения с экрана в целях доступности. Использование класса в любом случае скрывает элемент, поэтому визуальной разницы не должно быть.
Если вы заинтересованы в чтении о доступности:
Ответ 2
Как сказал JoshC, класс используется для скрытия информации, используемой для чтения с экрана. Но не только для того, чтобы скрыть ярлыки, вы можете убрать из видимого пользователя внутреннюю ссылку "перейти к основному контенту", что желательно для слепых пользователей, если у вас сложная навигация или добавляется в заголовок страницы перед контентом. Им нужно будет нажимать клавишу со стрелкой вниз слишком много раз, чтобы достать ее с помощью программы чтения с экрана.
Если вы хотите, чтобы ваш сайт еще больше взаимодействовал с программами чтения с экрана, используйте W3C стандартизованные атрибуты ARIA, и я определенно рекомендую посетить онлайн-курс Google, который займет всего 1-2 часа или меньше всего смотрите Google 40min video.
По данным Всемирной организации здравоохранения, 285 миллионов человек имеют нарушения зрения. Поэтому важно сделать сайт доступным.
Ответ 3
Я нашел это в примере navbar и упростил его.
<ul class="nav">
<li><a>Default</a></li>
<li><a>Static top</a></li>
<li><b><a>Fixed top <span class="sr-only">(current)</span></a></b></li>
</ul>
Вы видите, какой из них выбран (sr-only
часть скрыта):
- По умолчанию
- Статический верх
- Фиксированный верхний
Вы слышите, какой из них выбран, если вы используете программу чтения с экрана:
- По умолчанию
- Статический верх
- Фиксированный верхний (текущий)
В результате этого метода слепые люди должны легко перемещаться по вашему сайту.
Ответ 4
.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;
width: 1px; height: 1px;
, При использовании display: none
и установке CSS на height: 0
и width: 0
элемент не виден DOM и, таким образом, проблематичен. Выше CSS с использованием width: 1px; height: 1px;
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
Я надеюсь, что предоставленная мною информация будет полезна кому-то в дополнение к другим ответам.
Ответ 5
Обеспечивает, чтобы объект отображался (или должен быть) только для считывателей и подобных устройств. Это дает больше смысла в контексте с другим элементом с атрибутом aria-hidden = "true".
<div class="alert alert-danger" role="alert">
<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
<span class="sr-only">Error:</span>
Enter a valid email address
</div>
Глификон будет отображаться на всех других устройствах, слово Ошибка: для чтения текста.
Ответ 6
Класс .sr-only
скрывает элемент для всех устройств, кроме screen readers:
Перейти к основному содержанию. Объедините .sr-only с .sr-only-focusable, чтобы снова показать элемент, когда он находится в фокусе.