Yan Magalhães
Front End Developer at Ingresso Rápido
Levando nosso conteúdo a todas as pessoas
Levando nosso conteúdo a todas as pessoas
1.
Condição para utilização com segurança e autonomia, total ou assistida, dos espaços, mobiliários, edificações, seviços de transporte, sistemas e meios de comunicaçao e informação, por pessoa portadora de deficiência ou com mobilidade reduzida
Decreto Federal nº 5296/2004
Significa que pessoas com deficiência podem usar a web. Significa também que elas podem perceber, entender, navegar, interagir e contribuir para a web. E mais, ela também beneficia outras pessoas, incluindo pessoas idosas e com capacidades em mudança devido ao evelhecimento
Cartilha Acessibilidade na WEB, W3C
http://www.mundowalmart.com.br/bebes-tambem-estao-conectados/
Aaah, então é só colocar o alt nas imagens..."
2.
Conjunto de recomendações que têm como objetivo tornar o conteúdo Web mais acessível
https://www.w3.org/Translations/WCAG20-pt-PT/
Marcações adicionadas ao HTML de modo a indicar qual o tipo de conteúdo daquele trecho da página. As WCAG's utilizam a semântica do HTML para tornar o conteúdo acessível.
Complementary
Navigation
https://www.w3.org/WAI/PF/HTML/wiki/RoleAttribute
Atributos adicionados as tags HTML de forma a conseguir mudar a semântica do elemento, tornando-o acessível.
aria-pressed
aria-hidden
https://www.w3.org/TR/wai-aria-1.1
<html lang="pt-br">
...resto do documento omitido
</html>
<h1>Título principal</h1>
<h2>Subtítulo</h2>
<h3>Terceiro Cabeçalho</h3>
<h4>Quarto Cabeçalho</h4>
<h5>Quinto Cabeçalho</h5>
<h6>Sexto Cabeçalho</h6>
// Tamanho de fonte legível: preferencialmente 14 ou 16px
// Ou, dê autonomia ao usuário
pra que ele possa ajustá-la
<a onclick="aumentarFonte()"
title="Aumentar a fonte">A+</a>
<a onclick="diminuirFonte()"
title="Diminuir a fonte">A-</a>
// Errado
<img src="banbam.jpg" />
// Certo
<img src="banbam.jpg" alt="Banbam na academia"/>
<div class="foto-banbam" role="image"
aria-label="Banbam na academia">
</div>
// Errado
<a href="download"/>Download</a>
<a href="saiba-mais"/>Saiba Mais</a>
<a href="post/3"/>Clique Aqui</a>
// Certo
<a href="download"/>Download da música Dream On</a>
<a href="saiba-mais"/>Conheça mais sobre a banda Aerosmith</a>
<a href="post/3"/>Acessbilidade na Web -
Levando nosso conteúdo a todas as pessoas</a>
/* Forneça feedback ao seu usuário */
//CSS
a:focus{
outline: 1px solid #ccc;
}
a:hover{
text-decoration: underline;
}
https://medium.com/@diegodevsoares/como-matar-a-navega%C3%A7%C3%A3o-de-um-site-com-apenas-uma-linha-de-css-29164f3a6de4#.qedwbkkxo
/* Forneça feedback ao seu usuário */
//JS
<a onfocus="#"
onmouseover="#"
onmouseout="#"
onblur="#">
</a>
http://www.colorsontheweb.com/Color-Tools/Color-Contrast-Analyzer
http://www.checkmycolours.com/
<a href="#conteudo" title="Ir para conteúdo Principal">
Ir para conteúdo Principal
</a>
<div class="content" id="conteudo">
...resto do código omitido...
</div>
/* Use os tipos de inputs adequados */
// Errado
<label for="data_nascimento">Data de Nascimento:</label>
<input type="text" name="data_nascimento"
id="data_nascimento" />
// Certo
<label for="data_nascimento">Data de Nascimento:</label>
<input type="date" name="data_nascimento"
id="data_nascimento" />
/* Identifique os seus elementos */
// Errado
<p>Descrição:
<input type="text" name="descricao" />
</p>
// Certo
<label for="descricao">Descrição:</label>
<input type="text" name="descricao" id="descricao" />
/* Campos obrigatórios*/
// Faça Assim
<label for="descricao">Descrição:</label>
<input type="text" name="descricao"
id="descricao" required="true" />
// Ou Assim
<label for="descricao">Descrição:</label>
<input type="text" name="descricao"
id="descricao" aria-required="true" />
// Se possível, forneça um feedback textual e um
link para o campo que não foi preenchido
/* Faça uma breve descrição do seu formulário */
<form>
<fieldset>
<legend> Preencha suas informações pessoais</legend>
<label for="nome">Nome:</label>
<input type="text" name="nome"
id="nome" />
</fieldset>
</form>
/* Você ainda pode fornecer uma descrição extra ao campo */
...restante do código omitido...
<label for="nome">Nome:</label>
<input type="text" name="nome"
id="nome" aria-describedby="motivo"/>
<p id="motivo">
Seu nome será a sua identificação em nosso site
<p>
/* Ausência de parágrafo */
//Errado
<div class="texto">Descrição de toda a minha palestra</div>
// Certo
<div class="box-descricao">
<p>Descrição de toda a minha palestra</p>
</div>
/* Ausência de listas */
//Errado
<a href="#link1">Link 1</a>
<a href="#link2">Link 2</a>
<a href="#link3">Link 3</a>
// Certo
<ul>
<li><a href="#link1">Link 1</a></li>
<li><a href="#link2">Link 2</a></li>
<li><a href="#link3">Link 3</a></li>
</ul>
/* Use as tags do HTML5 para dar contexto
aos seus elementos */
//Errado
<div id="banner"></div>
<div id="content"></div>
<div id="footer"></div>
// Certo
<header></header>
<nav></nav>
<main></main>
<aside></aside>
<article></article>
<section></section>
<footer></footer>
3.
http://khan.github.io/tota11y
http://www.acessibilidade.gov.pt/accessmonitor
http://www.dasilva.org.br
http://wave.webaim.org
"Se o lugar não está pronto para receber TODAS as pessoas, o lugar é deficiente"
Thais Frota
/yanmagale
/yaanmagale
/yaanmagalhaes
By Yan Magalhães
Palestra apresentada no evento Meetup de FrontEnd em BH, na Hotmart, 24/09/2016