Incorporando acessibilidade
no seu projeto
Do zero à prática
Luiz Corte Real (Sr.
Saúde)
Eng. Software @ Elo7
Twitter: @srsaude
github.com/luiz
Experiências,
não verdades absolutas
O início
Desenvolvedores independentes na iniciativa
Desenvolvedores independentes na iniciativa (tech.elo7.com.br)
“Vamos tornar
acessibilidade um dos
critérios de pronto das
nossas tarefas!”
-- nós, numa retrospectiva
E então…
Tarefas sem fim
Sprints atrasando
Cansaço da equipe
Porque...
Como testar?
Está acessível?
Como resolver?
Acessibilidade é muito mais
difícil do que parece
Aprendizado #0
Acessibilidade se aprende
na prática
Aprendizado #0.1
Grupo de estudos ao resgate!
Testes de usabilidade
Personas
não é ideal, mas ajuda
Acessibilidade
além da deficiência visual
Daltonismo
Surdez
Epilepsia
Dislexia
Deficiência motora
Autismo
…
Acessibilidade não é apenas
para quem tem deficiência
visual
Aprendizado #1
Testar acessibilidade vai
muito além do leitor de tela
Aprendizado #1.1
“Inspeção e testes de
desenvolvedores nunca serão tão
efetivos como o confronto direto do
usuário com o site”
Accessibility Testing - W3C Wiki
Aprendizado #2
WCAG 2.0
WCAG 2.0
https://www.w3.org/WAI/WCAG20/quickref/
Adesão ao WCAG 2.0
https://www.w3.org/WAI/ER/tools/
Adesão ao WCAG 2.0
https://achecker.ca/
Testes automatizados
ajudam, mas não garantem
acessibilidade
Aprendizado #3
Para lidar com a diversidade,
princípios são mais
importantes do que técnicas
Aprendizado #4
Mão na massa!
Mão na massa!
Mão na massa!
menu do vendedor
Acessível por teclado e mouse
Fácil de ser encontrado
Fácil de ser pulado
Funciona sem JavaScript
Exemplos
Sites bem avaliados
E-commerces
Exemplos W3C
Slack (web)
Menu sem JavaScript
como fazer?
Páginas de navegação
Deixar tudo aberto
CSS
:target
:checked
Menu sem JavaScript
como fazer?
Páginas de navegação
Deixar tudo aberto
CSS
:target
:checked
Todos precisam saber usar
ferramentas assistivas
Aprendizado #5
Tudo influencia no
funcionamento de
um leitor de tela
Aprendizado #6
Alguns fatores
que influenciam os testes
Leitor de tela
Atalhos e configurações
Navegador
Sistema operacional
Vale todo o trabalho?
Métricas
2,3%
da população com alguma deficiência visual nos EUA
Fonte: https://nfb.org/blindness-statistics
2,7%
dos usuários do Firefox usam alguma ferramenta de acessibilidade
Fonte: https://telemetry.mozilla.org
6,9%
dos usuários de leitores de tela não usam um leitor por causa de alguma
deficiência
Fonte: http://webaim.org
Art. 63. É obrigatória a acessibilidade nos sítios da
internet mantidos por empresas com sede ou
representação comercial no País ou por órgãos de
governo, para uso da pessoa com deficiência, garantindo-
lhe acesso às informações disponíveis, conforme as
melhores práticas e diretrizes de acessibilidade adotadas
internacionalmente.
Lei 13.146, de 06/07/2015
Apple - Accessibility - Sady
https://youtu.be/XB4cjbYywqg
De volta ao problema:
Semântica
Atributos WAI-ARIA
para a marcação de um menu
role
aria-label
aria-haspopup
aria-expanded
Atributos WAI-ARIA
para a marcação de um menu
fly-out
role
aria-label
aria-haspopup
aria-expanded
Marcação excessiva
prejudica acessibilidade
Aprendizado #9
Marcação excessiva
<nav>
<ul>
<li><a href='#'>Menu</a>
<ul>
<li><a href='#'>...</a></li>
<li><a href='#'>...</a></li>
</ul>
</li>
…
Marcação adotada
<nav>
<input type='checkbox' id='menu1' role='button' aria-
haspopup='true'>
<label for='menu1' aria-hidden='true'>Menu</label>
<nav>
<a href='#'>...</a>
<a href='#'>...</a>
</nav>
<a href='#'>Menu</a>
</nav>
Marcação adotada
<nav>
<input type='checkbox' id='menu1' role='button' aria-
haspopup='true'>
<label for='menu1' aria-hidden='true'>Menu</label>
<nav>
<a href='#'>...</a>
<a href='#'>...</a>
</nav>
<a href='#'>Menu</a>
</nav>
Marcação adotada
<nav>
<input type='checkbox' id='menu1' role='button' aria-
haspopup='true'>
<label for='menu1' aria-hidden='true'>Menu</label>
<nav>
<a href='#'>...</a>
<a href='#'>...</a>
</nav>
<a href='#'>Menu</a>
</nav>
Marcação adotada
<nav>
<input type='checkbox' id='menu1' role='button' aria-
haspopup='true'>
<label for='menu1' aria-hidden='true'>Menu</label>
<nav>
<a href='#'>...</a>
<a href='#'>...</a>
</nav>
<a href='#'>Menu</a>
</nav>
Marcação adotada
<nav>
<input type='checkbox' id='menu1' role='button' aria-
haspopup='true'>
<label for='menu1' aria-hidden='true'>Menu</label>
<nav>
<a href='#'>...</a>
<a href='#'>...</a>
</nav>
<a href='#'>Menu</a>
</nav>
input[type=checkbox] {
position: absolute;
opacity: 0;
}
Marcação adotada
<nav>
<input type='checkbox' id='menu1' role='button' aria-
haspopup='true'>
<label for='menu1' aria-hidden='true'>Menu</label>
<nav>
<a href='#'>...</a>
<a href='#'>...</a>
</nav>
<a href='#'>Menu</a>
</nav>
Marcação adotada
<nav>
<input type='checkbox' id='menu1' role='button' aria-
haspopup='true' aria-expanded='true/false'>
<label for='menu1' aria-hidden='true'>Menu</label>
<nav>
<a href='#'>...</a>
<a href='#'>...</a>
</nav>
<a href='#'>Menu</a>
</nav>
JavaScript
Requisitos
menu acessível
Acessível por teclado e mouse
Fácil de ser encontrado
Fácil de ser pulado
Funciona sem JavaScript
Obrigado!
vamos trocar ideias?
Luiz Corte Real (Sr.
Saúde)
E-mail:
luiz.real@elo7.com
Twitter: @srsaude

TDC2017 | São Paulo - Trilha Acessibilidade How we figured out we had a SRE team at - Incorporando acessibilidade no seu projeto