Como criar botões acessíveis

Posted by Bruno Pulis on 12-02-2016

Introdução

Fala pessoal! Depois de algum tempo sem postar nada, resolvi fazer um post rapidinho mas muito importante.
Hoje, vou falar sobre como criar botões acessíveis sem prejudicar a estética e/ou seu comportamento.

Estruturalmente botões são links estilizados via CSS e tem um valor muito importante para fazerem conversões de cliques, mas, a maioria deles são aplicados de forma incorreta. Nesse post vou mostrar a correção para esse problema.

O cenário

Em diversos sites, nos deparamos com call to actions (como: ‘Clique aqui’; ‘Saiba mais’; ‘Continue lendo’ e etc). Estes botões geram algumas barreiras de acessibilidade quando não são feitos da forma correta.

Fiz esse exemplo para ilustrar quando são feitos incorretamente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="container">
<h2>Noticias</h2>
<div class="row">
<div class="col m4">
<div class="card small">
<div class="card-image">
<img src="https://www.grnews.com.br/wp-content/uploads/2014/08/galo.jpg">
<span class="card-title">Galo é campeão da libertadores</span>
</div>
<div class="card-content">
<p>Galo supera as expectativas e é campeão da Libertadores</p>
</div>
<div class="card-action">
<a href="#">Leia mais</a>
</div>
</div>
</div>
</div>
</div>

Da forma que foi feita a marcação, o usuário que utiliza leitor de tela, como o NVDA, JAWS por exemplo, ficaria perdido porque os botões de “Leia mais” não tem em seu contexto nenhuma informação. Os leitores de tela oferecem um recurso de navegar via links de forma rápida. No NVDA utiliza-se a tecla L para saltar todos os links da página.

Sendo assim, ao chegar no link de “Leia mais” o usuário não saberá porque ele deve clicar ali qual a finalidade daquele link.

A correção

A correção para essa situação é bastante simples. Basta incluir uma tag span e colocar uma classe para ocultar a informação, sendo assim, ela ficará disponível somente para quem não pode enxergar.

O exemplo abaixo mostra de forma clara como fazer.

Markup

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="container">
<h2>Noticias</h2>
<div class="row">
<div class="col m4">
<div class="card small">
<div class="card-image">
<img src="http://www.placehold.it/412x214">
<span class="card-title">Galo é campeão da Libertadores</span>
</div>
<div class="card-content">
<p>Galo supera as expectativas e é campeão da Libertadores</p>
</div>
<div class="card-action">
<a href="#">Leia mais <span class="screen-reader-only">sobre Galo na libertadores</span></a>
</div>
</div>
</div>
</div>
</div>

CSS

1
2
3
4
5
6
7
8
9
10
11
12
.screen-reader-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
.card-title { color: #000; }

Conclusão

Construir botões acessíveis é de suma importância para todas as pessoas terem acesso as informações e como vimos é uma técnica muito simples, então, a partir de hoje superamos mais uma barreira e poderemos fazer botões mais acessíveis para todos.

Gostou do artigo? Deixe seu comentário.