View
1.008
Download
2
Category
Preview:
DESCRIPTION
Palestra feita na QconSP em abril de 2014 sobre os padrões de acessibilidade na Web do W3C (WCAG e WAI-ARIA) e como o código é apresentado ao usuário que utiliza um software leitor de tela.
Citation preview
Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Em breve
Público
premio.w3c.br
25 e 26 de Setembro em São Paulo!
Acessibilidade na Web: A quem se destina?
Cegos - daltônicos - baixa visão
Deficiência auditiva
Deficiência motora
Estatísticas
Pessoas com deficiências no Brasil
24% 45.623.910 pessoas
Fonte: Censo 2010
Estatísticas
No mundo, esse número é
aproximadamente
1 bilhão de pessoas
Fonte: ONU
Acessibilidade na web
Beneficia pessoas com deficiência
Acessibilidade na web: A quem se destina?
Acessibilidade é para todos !
Você acha que tem controle sobre o seu
usuário?
NÃO
Você não tem controle sobre o seu usuário
Acessibilidade deve fazer parte da rotina
Web Content Accessibility Guidelines
http://www.w3.org/TR/WCAG/
Princípio 1: Perceptível
Princípio 2: Operável
Princípio 3: Compreensível
Princípio 4: Robusto
Princípios do WCAG
ARIA e HTML5
WAI-ARIA (Accessible Rich Internet Applications)
define uma forma de tornar o conteúdo e
aplicativos web mais acessíveis a pessoas com
deficiências. Ele contribui especialmente com
conteúdo dinâmico e interface de controles de
usuário avançadas desenvolvidos com Ajax, HTML,
JavaScript e tecnologias relacionadas.
http://www.w3.org/WAI/intro/aria
ARIA e HTML5
progressbar
radiogroup
scrollbar
slider
spinbutton
status
Tab
tabpanel
textbox
tooltip
73 ROLES (Ou Papéis)
alert
Alertdialog
button
checkbox
dialog
menu
menubar
menuitem
option
...
http://www.w3.org/TR/wai-aria/roles#role_definitions
ARIA e HTML5
aria-activedescendant
aria-atomic
aria-autocomplete
aria-busy (state)
aria-checked (state)
aria-controls
aria-describedby
aria-disabled (state)
aria-dropeffect
aria-expanded (state)
aria-flowto
aria-grabbed (state)
35 States and Properties (Estados e Propriedades)
aria-haspopup
aria-hidden (state)
aria-invalid (state)
aria-label
aria-labelledby
aria-level
aria-live
aria-multiline
aria-multiselectable
aria-orientation
aria-owns
... http://www.w3.org/TR/wai-aria/states_and_properties
ARIA e HTML5
Implementação por leitores de tela:
Landmark roles são suportadas em
• JAWS 10
• NVDA 2010.1+
• VoiceOver no iPhone IOS4.
• As WCAG utilizam a semântica do HTML
para tornar o conteúdo acessível
• ARIA são atributos que conseguem mudar
a semântica dos elementos para tornar o
conteúdo acessível
Situação 1:
Uma galeria de imagens
<img src=“starwars.jpg”
alt=“Foto de Luke Skywalker no filme Star
Wars – O império contra ataca”>
<div class="foto" role="img"
aria-label="Logo do W3C que está dentro do
CSS"></div>
<img src="img-slides/w3clogo.png"
alt="Logo do W3C dentro do HTML">
reinaldoferraz.com.br
Exemplos
Situação 2:
Uma página cheia de
destaques
<a href=“#contents”>Saltar</a>
<elemento id=“contents”>
<h1>...</h1>
<h2>...</h2>
<h3>...</h3>
<h2>...<h2>
<h3>...</h3>
<h4>...</h4>
<h2>...</h2>
<h3>...</h3>
html5accessibility.com
<input type=“email”>
<input type=“url”>
<input type=“tel”>
Exemplos
Situação 3:
Menu e Submenus
CSS:
a:hover
a:focus
JavaScript:
onmouseover="#"
onfocus="#"
onmouseout="#"
onblur="#"
Exemplos
Situação 4:
Formulários
<fieldset>
<legend>
Identifique-se!
</legend>
<label for="text">
Nome</label>
<input id="text" type="text"
aria-describedby="comp">
<p id="comp">
Preencha seu nome
de verdade, viu?</p>
</fieldset>
<fieldset>
<legend>
Identifique-se!
</legend>
<label for="text">
Nome</label>
<input id="text" type="text"
aria-describedby="comp">
<p id="comp">
Preencha seu nome
de verdade, viu?</p>
</fieldset>
<fieldset>
<legend>
Identifique-se!
</legend>
<label for="text">
Nome</label>
<input id="text" type="text"
aria-describedby="comp">
<p id="comp">
Preencha seu nome
de verdade, viu?</p>
</fieldset>
CAPTCHA
Exemplos
Slider
Exemplos
Não dá para usar o
input type=“range”?
SIM!
html5accessibility.com
html5accessibility.com
Exemplos
Situação 5:
Utilização de cores
Exemplos
Situação 4:
Múltiplos idiomas
Exemplos
Situação 5:
Elementos dinâmicos
<button role=“button” aria-pressed=“false”>
<img src=“off.png” alt=“Status Desligado”>
</button>
<button role=“button” aria-pressed=“true”>
<img src=“on.png” alt=“Status Ligado”>
</button>
Tablist
<ul role="tablist">
<li
role="tab“
id="tab1"
aria-controls="panel1"
aria-selected="false">
Valores</li>
</ul>
<div
id="panel1"
aria-labelledby="tab1"
role="tabpanel"
aria-hidden="true">
Exemplos
Live Regions
Exemplos
Dicas importantes para melhorar a acessibilidade
• Validação de Markup
• Siga as diretrizes de
acessibilidade (WCAG e ARIA)
• Validação automática de
acessibilidade
• Verificação de avisos
• Teste com tecnologias assistivas
• Coloque a acessibilidade na rotina
do desenvolvimento
Obrigado!
@reinaldoferraz
reinaldo@nic.br
“Se o seu site não está pronto para receber
TODAS as pessoas, o site é deficiente.”
Adaptado da arq. Thais Frota
Recommended