76
Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Embed Size (px)

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

Page 1: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Page 2: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Em breve

Page 3: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 4: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 5: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Público

premio.w3c.br

Page 6: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

25 e 26 de Setembro em São Paulo!

Page 7: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Acessibilidade na Web: A quem se destina?

Page 8: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Cegos - daltônicos - baixa visão

Page 9: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Deficiência auditiva

Page 10: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Deficiência motora

Page 11: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Estatísticas

Pessoas com deficiências no Brasil

24% 45.623.910 pessoas

Fonte: Censo 2010

Page 12: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Estatísticas

No mundo, esse número é

aproximadamente

1 bilhão de pessoas

Fonte: ONU

Page 13: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 14: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Acessibilidade na web

Beneficia pessoas com deficiência

Page 15: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Acessibilidade na web: A quem se destina?

Acessibilidade é para todos !

Page 16: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 17: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Você acha que tem controle sobre o seu

usuário?

Page 18: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

NÃO

Page 19: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Você não tem controle sobre o seu usuário

Page 20: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Acessibilidade deve fazer parte da rotina

Page 21: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 22: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Web Content Accessibility Guidelines

http://www.w3.org/TR/WCAG/

Page 23: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Princípio 1: Perceptível

Princípio 2: Operável

Princípio 3: Compreensível

Princípio 4: Robusto

Princípios do WCAG

Page 24: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

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

Page 25: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

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

Page 26: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

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

Page 27: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

ARIA e HTML5

Implementação por leitores de tela:

Landmark roles são suportadas em

• JAWS 10

• NVDA 2010.1+

• VoiceOver no iPhone IOS4.

Page 28: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 29: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 30: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

• 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

Page 31: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 32: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Situação 1:

Uma galeria de imagens

Page 33: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<img src=“starwars.jpg”

alt=“Foto de Luke Skywalker no filme Star

Wars – O império contra ataca”>

Page 34: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<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">

Page 35: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

reinaldoferraz.com.br

Page 36: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 37: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Situação 2:

Uma página cheia de

destaques

Page 38: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 39: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 40: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<a href=“#contents”>Saltar</a>

<elemento id=“contents”>

Page 41: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<h1>...</h1>

<h2>...</h2>

<h3>...</h3>

<h2>...<h2>

<h3>...</h3>

<h4>...</h4>

<h2>...</h2>

<h3>...</h3>

Page 42: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

html5accessibility.com

Page 43: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<input type=“email”>

<input type=“url”>

<input type=“tel”>

Page 44: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 45: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 46: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Situação 3:

Menu e Submenus

Page 47: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

CSS:

a:hover

a:focus

JavaScript:

onmouseover="#"

onfocus="#"

onmouseout="#"

onblur="#"

Page 48: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 49: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Situação 4:

Formulários

Page 50: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<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>

Page 51: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<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>

Page 52: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<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>

Page 53: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

CAPTCHA

Page 54: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 55: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Slider

Page 56: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 57: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 58: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Não dá para usar o

input type=“range”?

Page 59: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

SIM!

Page 60: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

html5accessibility.com

Page 61: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

html5accessibility.com

Page 62: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 63: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Situação 5:

Utilização de cores

Page 64: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA
Page 65: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 66: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Situação 4:

Múltiplos idiomas

Page 67: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 68: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Situação 5:

Elementos dinâmicos

Page 69: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<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>

Page 70: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Tablist

Page 71: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

<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">

Page 72: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 73: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Live Regions

Page 74: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Exemplos

Page 75: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

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

Page 76: Fazendo a Web falar: HTML5, WAI-ARIA e NVDA

Obrigado!

@reinaldoferraz

[email protected]

“Se o seu site não está pronto para receber

TODAS as pessoas, o site é deficiente.”

Adaptado da arq. Thais Frota