Para que serve a classe sr-only
? É importante ou posso removê-lo? Funciona bem sem.
Aqui está o meu exemplo:
<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>
fonte
clipping
the class is used to hide information used for screen readers
:? Esconde-se dos leitores de tela? Ou simplesmente não é exibido no navegador? É mais claro se a documentação diz algo como "a classe sr-only indica que o elemento é apenas para leitores de tela e não é exibido no navegador".Como JoshC disse, a classe é usada para ocultar as informações usadas pelos leitores de tela. Mas não apenas para ocultar rótulos, você pode ocultar do usuário que enxerga um link interno "pular para o conteúdo principal", o que é desejável para usuários cegos se você tiver uma navegação ou anúncios complexos antes do conteúdo principal.
Segundo a Organização Mundial da Saúde, 285 milhões de pessoas têm problemas de visão. Portanto, tornar um site acessível é importante.
ATUALIZAÇÃO 2019:
Como desenvolvedores, devemos criar conteúdo acessível que simplesmente funcione para todos os leitores de tela prontos para uso e não especificamente para ele. Isso nem sempre é possível, mas tome cuidado ao usar os ajustes ARIA e "somente leitor de tela" . Não faça isso se você não entender completamente. A implementação incorreta pode ser muito pior do que não usá-la. Por favor, leia accessibility-developer-guide sobre os maus exemplos da ARIA . Lá você encontrará também componentes / widgets totalmente acessíveis que não requerem nenhuma intervenção "somente para o leitor de tela".
fonte
Encontrei isso no exemplo da barra de navegação e simplifiquei.
Você vê qual deles está selecionado (a
sr-only
parte está oculta):Você ouvirá qual deles está selecionado se você usar o leitor de tela:
Como resultado dessa técnica, as pessoas cegas deveriam navegar mais facilmente em seu site.
fonte
.sr-only
é um nome de classe usado especificamente para leitores de tela. Você pode usar qualquer nome de classe, mas.sr-only
é bastante usado. Se você não se importa com o desenvolvimento com a conformidade em mente, ele pode ser removido. Ele não afetará a interface do usuário de nenhuma maneira se for removido porque o CSS para esta classe não é visível para navegadores de desktop e dispositivos móveis.Parece haver algumas informações faltando aqui sobre o uso de
.sr-only
para explicar sua finalidade e ser para leitores de tela. Em primeiro lugar, é muito importante manter sempre em mente os usuários prejudicados. O comprometimento é o objetivo da conformidade com o 508: https://www.section508.gov/ , e é ótimo que o bootstrap leve isso em consideração. No entanto, o uso de.sr-only
não é tudo o que precisa ser levado em consideração para a conformidade com o 508. Você pode usar cores, tamanho de fontes, acessibilidade via navegação, descritores, uso de árias e muito mais.Mas quanto a
.sr-only
- o que o CSS realmente faz? Existem várias variantes ligeiramente diferentes do CSS usado.sr-only
. Um dos poucos que eu uso está abaixo:O CSS acima oculta o conteúdo dos navegadores de desktop e móveis incluídos nesta classe, mas é visto por um leitor de tela como o JAWS: http://www.freedomscientific.com/Products/Blindness/JAWS . A marcação de exemplo é a seguinte:
Além disso, se um elemento DOM tiver largura e altura 0, o elemento não será visto pelo DOM. É por isso que o CSS acima usa
width: 1px; height: 1px;
. Ao usardisplay: none
e definir seu CSS comoheight: 0
ewidth: 0
, o elemento não é visto pelo DOM e, portanto, é problemático. O uso de CSS acimawidth: 1px; height: 1px;
não é tudo o que você faz para tornar o conteúdo invisível para navegadores de desktop e dispositivos móveis (sem ooverflow: hidden
seu conteúdo ainda seria exibido na tela) e visível para os leitores de tela. Ocultar o conteúdo dos navegadores de desktop e móvel é feito adicionando um deslocamentowidth: 1px
eheight: 1px
mencionado anteriormente usando:Por fim, para ter uma idéia muito boa do que um leitor de tela vê e retransmite para o usuário prejudicado, desative o estilo da página no seu navegador. Para o Firefox, você pode fazer isso acessando:
Espero que as informações que forneço aqui sejam mais úteis para alguém, além das outras respostas.
fonte
Garante que o objeto seja exibido (ou deva ser) apenas para leitores e dispositivos similares. Dá mais sentido no contexto de outro elemento com o atributo aria-hidden = "true" .
O glifo será exibido em todos os outros dispositivos, palavra Erro: nos leitores de texto.
fonte
A
.sr-only
classe oculta um elemento para todos os dispositivos, excetoscreen readers:
Ir para o conteúdo principal Combine .sr-only com .sr-only-focusable para mostrar o elemento novamente quando ele estiver focado
fonte