SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Desenvolvedora Android
Somos Todos Acessíveis: práticas modernas de
acessibilidade no Android
Paula Rosa
http://www.slideshare.net/PaulaCarolinedaRosa/
somos-todos-acessiveis
Definindo Acessibilidade
• Qualidade do que é acessível, do que tem acesso. Facilidade,
possibilidade na aquisição, na aproximação.
Oferecer experiências semelhantes a
todos tipos de usuários
Recursos de Acessibilidade
Talkback Switch access Brailleback Voice accessMagnification
• TalkBack: Lê os elementos da tela para o usuário.
• Troca de Acesso - switch access (5.0+): Permite conectar um interruptor para navegar entre os
elementos da tela
• BrailleBack: Suporte à braille. Permite conectar teclado braille.
• Magnification: Amplia texto (zoom)
• Voice Access (#io16) - comandos de voz

https://www.youtube.com/watch?v=apEz73_H2fU
Vídeo
Talkback
2 AÇÕES:
- perceber o muro
- desviar do muro
• Cada componente será falado pelo talkback;
• O usuário faz um mapeamento dos componentes e funcionalidades na mente;
• A partir disto ele pode então decidir as ações que deverá tomar
Talkback Gestures
Toque
simples (audio)
duplo (seleciona)
Swipe p/
cima e baixo
(fab)
Swipe duplo p/
cima ou baixo
(scroll)
Swipe p/
lados
troca foco
Atalhos
Back button Context Menu Home Screen Apps recentes Notificações
Talkback
• Dar significado aos componentes;
• Agupar e Ordenar;
• Fornecer navegabilidade no app
• Facilitar o entendimento do usuário
Componentes com significado
ImageButton
ImageView
Checkbox
Talkback - Nomeando Imagens
android:importantForAcessibility="no" (API >= 16)
Talkback - Nomeando textos
Talkback - Agrupamento de Views
Talkback - EditText
Talkback - FloatingActionButton
Talkback - Live region
• Polite = Espera o talkback terminar o áudio
• Assertive = interrompe o áudio do talkback
• None = sem Feedback
Talkback
/**
* Envia evento para talkback falar o componente
*/
Talkback - Anunciar acessibilidade
CustomViews
Views que
herdam
acessibilidade
CustomView
onDraw()
onMeasure()
Sobreescreve
os métodos:
Views que não
herdam
acessibilidade
Herda de View
Cuidado
com
Libs prontas
Tratamento especial para CustomViews
• Enviar o evento - view.sendAccessibilityEvent(

AccessibilityEvent.TYPE_VIEW_FOCUSED)
• Sobreescrever método
dispatchPopulateAccessibilityEvent(AccessibilityEvent)
Ferramentas para checar acessibilidade
• Utilizando talkback 



• Accessibility scanner
• Utilizando espresso
• Lint (Android Studio)
Accessibility Scanner
• Descrição de imagens
• Descrição repetida*
• Contraste de imagem
• Contraste de texto
• Não atende 100%
• Android Marshmallow
(6.0)
Item label com.duolingo:id/icon —>
This item may not have a label
readable by screen readers.
Image contrast com.duolingo:id/icon
—>The image's contrast ratio is 2,44.
This ratio is based on an estimated
foreground color of #FFFFFF and an
estimated background color of
#1CB0F6. Consider increasing this
ratio to 3,00 or greater.
Text contrast —> The item's text
contrast ratio is 2,38. This ratio is
based on an estimated foreground
color of #A8A8A8 and an estimated
background color of #FFFFFF.
Consider increasing this item's text
contrast ratio to 3,00 or greater.
Testes com Espresso
• Testar se o componente possui contentDescription
• Testar se o componente possui contentDescription correta
Checagem com Lint
Checagem com Lint
Dicas Marotas
Apps Customizados para acessibilidade - telas com banners, transparência,
tutoriais.
Vibração — Explorar vibração para ações do app e notificações
Atenção a componentes de duplo estado - toogles, switches (…)
Mais informação - Textos informativos que expliquem como interagir com as
funcionalidades
• Conteúdo é lido por baixo de telas com
transparência
• Customizar apps para atender
acessibilidade:
• manager = (AccessibilityManager)
getSystemService(Context.ACCESSIBILITY_
SERVICE);

manager.isEnabled() - Se o modo
acessibilidade está ligado.
Dicas Marotas
#fail
Exemplos de apps que implementam acessibilidade (ou não)
Botão
#semMarcador
Swipe
#areaPequena
#naoExplicaNada
Botão
#semMarcador
Imagem
#semDescrição
Exemplos de apps que implementam acessibilidade (ou não)
#nadaAcessível
#botaoSemMarcador
botões
#semMarcador
#faltouAgruparViews
Exemplos de apps que implementam acessibilidade (ou não)
#parabens
#parabens
#parabens
#parabens
Links úteis
• https://developer.android.com/guide/topics/ui/accessibility/index.html
• https://codelabs.developers.google.com/codelabs/basic-android-accessibility/
• http://www.slideshare.net/KellyShuster/android-accessibility-droidcon-london
• http://www.slideshare.net/7mary4/android-accessibility-39995456
• https://www.youtube.com/watch?v=euEsfNR5Zw4 (io 2015)
• https://www.youtube.com/watch?v=apEz73_H2fU (Voice Access)
• https://www.udacity.com/course/viewer#!/c-ud853/
• https://engineering.twitter.com/university/videos/accessibility-for-android-at-twitter
• https://github.com/paulacr/Acessibilidade #Acessibilidade
www.concretesolutions.com.br
blog.concretesolutions.com.br
Contato
@_paulacr
paula.mecatronica@gmail.com
https://br.linkedin.com/in/paularosa
paula.rosa@concrete.com.br

Mais conteúdo relacionado

Semelhante a Desenvolvedora Android: Acessibilidade no Android

Acessibilidade em CSS - ABC Dev
Acessibilidade em CSS - ABC DevAcessibilidade em CSS - ABC Dev
Acessibilidade em CSS - ABC DevLucas J Silva
 
Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cpcesarvianna
 
Cyou - Apresentação FInal - #ICPM
Cyou - Apresentação FInal - #ICPMCyou - Apresentação FInal - #ICPM
Cyou - Apresentação FInal - #ICPMPedroMiguelMartins
 
E mag desenvolvedor_mod_2
E mag desenvolvedor_mod_2E mag desenvolvedor_mod_2
E mag desenvolvedor_mod_2Leo Serrao
 
Do design à implementação - acessibilidade de websites e sistemas de informação
Do design à implementação - acessibilidade de websites e sistemas de informaçãoDo design à implementação - acessibilidade de websites e sistemas de informação
Do design à implementação - acessibilidade de websites e sistemas de informaçãoMauro Pinheiro
 
Acessibilidade em CSS - Front in Sampa
Acessibilidade em CSS - Front in SampaAcessibilidade em CSS - Front in Sampa
Acessibilidade em CSS - Front in SampaLucas J Silva
 
Usando html5 e css3 para implementar interfaces responsivas
Usando html5 e css3 para implementar interfaces responsivasUsando html5 e css3 para implementar interfaces responsivas
Usando html5 e css3 para implementar interfaces responsivasFelipe de Albuquerque
 
A Web para todos - Acessibilidade na web
A Web para todos  - Acessibilidade na webA Web para todos  - Acessibilidade na web
A Web para todos - Acessibilidade na webRogério Chiavegatti
 
TDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scalesTDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scalestdc-globalcode
 
Apresentação realidade aumentada para aplicações web e mobile
Apresentação   realidade aumentada para aplicações web e mobileApresentação   realidade aumentada para aplicações web e mobile
Apresentação realidade aumentada para aplicações web e mobileRWTH Aachen University
 
Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023Nelson Glauber Leal
 
Acessibilidade para Web
Acessibilidade para WebAcessibilidade para Web
Acessibilidade para WebJoão Conserva
 
MTC 2019 - ACESSIBILIDADE: GARANTINDO QUE AS APLICAÇÕES ESTEJAM ACESSÍVEIS PA...
MTC 2019 - ACESSIBILIDADE: GARANTINDO QUE AS APLICAÇÕES ESTEJAM ACESSÍVEIS PA...MTC 2019 - ACESSIBILIDADE: GARANTINDO QUE AS APLICAÇÕES ESTEJAM ACESSÍVEIS PA...
MTC 2019 - ACESSIBILIDADE: GARANTINDO QUE AS APLICAÇÕES ESTEJAM ACESSÍVEIS PA...minastestingconference
 
Resumo Interop
Resumo InteropResumo Interop
Resumo Interopleonardotn
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...Rafael Chiavegatto
 
Acessibilidade Web: Primeiros passos
Acessibilidade Web: Primeiros passosAcessibilidade Web: Primeiros passos
Acessibilidade Web: Primeiros passosVanessa Me Tonini
 

Semelhante a Desenvolvedora Android: Acessibilidade no Android (20)

Acessibilidade em CSS - ABC Dev
Acessibilidade em CSS - ABC DevAcessibilidade em CSS - ABC Dev
Acessibilidade em CSS - ABC Dev
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cp
 
Cyou - Apresentação FInal - #ICPM
Cyou - Apresentação FInal - #ICPMCyou - Apresentação FInal - #ICPM
Cyou - Apresentação FInal - #ICPM
 
ICPM: Projecto Cyou
ICPM:  Projecto CyouICPM:  Projecto Cyou
ICPM: Projecto Cyou
 
E mag desenvolvedor_mod_2
E mag desenvolvedor_mod_2E mag desenvolvedor_mod_2
E mag desenvolvedor_mod_2
 
Do design à implementação - acessibilidade de websites e sistemas de informação
Do design à implementação - acessibilidade de websites e sistemas de informaçãoDo design à implementação - acessibilidade de websites e sistemas de informação
Do design à implementação - acessibilidade de websites e sistemas de informação
 
Acessibilidade em CSS - Front in Sampa
Acessibilidade em CSS - Front in SampaAcessibilidade em CSS - Front in Sampa
Acessibilidade em CSS - Front in Sampa
 
Usando html5 e css3 para implementar interfaces responsivas
Usando html5 e css3 para implementar interfaces responsivasUsando html5 e css3 para implementar interfaces responsivas
Usando html5 e css3 para implementar interfaces responsivas
 
A Web para todos - Acessibilidade na web
A Web para todos  - Acessibilidade na webA Web para todos  - Acessibilidade na web
A Web para todos - Acessibilidade na web
 
TDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scalesTDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scales
 
Apresentação realidade aumentada para aplicações web e mobile
Apresentação   realidade aumentada para aplicações web e mobileApresentação   realidade aumentada para aplicações web e mobile
Apresentação realidade aumentada para aplicações web e mobile
 
Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023Novidades incríveis do Android em 2023
Novidades incríveis do Android em 2023
 
Acessibilidade para Web
Acessibilidade para WebAcessibilidade para Web
Acessibilidade para Web
 
MTC 2019 - ACESSIBILIDADE: GARANTINDO QUE AS APLICAÇÕES ESTEJAM ACESSÍVEIS PA...
MTC 2019 - ACESSIBILIDADE: GARANTINDO QUE AS APLICAÇÕES ESTEJAM ACESSÍVEIS PA...MTC 2019 - ACESSIBILIDADE: GARANTINDO QUE AS APLICAÇÕES ESTEJAM ACESSÍVEIS PA...
MTC 2019 - ACESSIBILIDADE: GARANTINDO QUE AS APLICAÇÕES ESTEJAM ACESSÍVEIS PA...
 
Resumo Interop
Resumo InteropResumo Interop
Resumo Interop
 
Acessibilidade web
Acessibilidade webAcessibilidade web
Acessibilidade web
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
 
Html 5
Html 5Html 5
Html 5
 
Acessibilidade Web: Primeiros passos
Acessibilidade Web: Primeiros passosAcessibilidade Web: Primeiros passos
Acessibilidade Web: Primeiros passos
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsiMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesiMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeiMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle MonteiroiMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujoriMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiiMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisiMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoiMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

Desenvolvedora Android: Acessibilidade no Android

  • 1. Desenvolvedora Android Somos Todos Acessíveis: práticas modernas de acessibilidade no Android Paula Rosa http://www.slideshare.net/PaulaCarolinedaRosa/ somos-todos-acessiveis
  • 2. Definindo Acessibilidade • Qualidade do que é acessível, do que tem acesso. Facilidade, possibilidade na aquisição, na aproximação. Oferecer experiências semelhantes a todos tipos de usuários
  • 3. Recursos de Acessibilidade Talkback Switch access Brailleback Voice accessMagnification • TalkBack: Lê os elementos da tela para o usuário. • Troca de Acesso - switch access (5.0+): Permite conectar um interruptor para navegar entre os elementos da tela • BrailleBack: Suporte à braille. Permite conectar teclado braille. • Magnification: Amplia texto (zoom) • Voice Access (#io16) - comandos de voz
 https://www.youtube.com/watch?v=apEz73_H2fU
  • 5. Talkback 2 AÇÕES: - perceber o muro - desviar do muro • Cada componente será falado pelo talkback; • O usuário faz um mapeamento dos componentes e funcionalidades na mente; • A partir disto ele pode então decidir as ações que deverá tomar
  • 6. Talkback Gestures Toque simples (audio) duplo (seleciona) Swipe p/ cima e baixo (fab) Swipe duplo p/ cima ou baixo (scroll) Swipe p/ lados troca foco Atalhos Back button Context Menu Home Screen Apps recentes Notificações
  • 7. Talkback • Dar significado aos componentes; • Agupar e Ordenar; • Fornecer navegabilidade no app • Facilitar o entendimento do usuário Componentes com significado ImageButton ImageView Checkbox
  • 8. Talkback - Nomeando Imagens android:importantForAcessibility="no" (API >= 16)
  • 13. Talkback - Live region • Polite = Espera o talkback terminar o áudio • Assertive = interrompe o áudio do talkback • None = sem Feedback
  • 14. Talkback /** * Envia evento para talkback falar o componente */
  • 15. Talkback - Anunciar acessibilidade
  • 16. CustomViews Views que herdam acessibilidade CustomView onDraw() onMeasure() Sobreescreve os métodos: Views que não herdam acessibilidade Herda de View Cuidado com Libs prontas
  • 17. Tratamento especial para CustomViews • Enviar o evento - view.sendAccessibilityEvent(
 AccessibilityEvent.TYPE_VIEW_FOCUSED) • Sobreescrever método dispatchPopulateAccessibilityEvent(AccessibilityEvent)
  • 18. Ferramentas para checar acessibilidade • Utilizando talkback 
 
 • Accessibility scanner • Utilizando espresso • Lint (Android Studio)
  • 19. Accessibility Scanner • Descrição de imagens • Descrição repetida* • Contraste de imagem • Contraste de texto • Não atende 100% • Android Marshmallow (6.0) Item label com.duolingo:id/icon —> This item may not have a label readable by screen readers. Image contrast com.duolingo:id/icon —>The image's contrast ratio is 2,44. This ratio is based on an estimated foreground color of #FFFFFF and an estimated background color of #1CB0F6. Consider increasing this ratio to 3,00 or greater. Text contrast —> The item's text contrast ratio is 2,38. This ratio is based on an estimated foreground color of #A8A8A8 and an estimated background color of #FFFFFF. Consider increasing this item's text contrast ratio to 3,00 or greater.
  • 20. Testes com Espresso • Testar se o componente possui contentDescription • Testar se o componente possui contentDescription correta
  • 23. Dicas Marotas Apps Customizados para acessibilidade - telas com banners, transparência, tutoriais. Vibração — Explorar vibração para ações do app e notificações Atenção a componentes de duplo estado - toogles, switches (…) Mais informação - Textos informativos que expliquem como interagir com as funcionalidades
  • 24. • Conteúdo é lido por baixo de telas com transparência • Customizar apps para atender acessibilidade: • manager = (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_ SERVICE);
 manager.isEnabled() - Se o modo acessibilidade está ligado. Dicas Marotas #fail
  • 25. Exemplos de apps que implementam acessibilidade (ou não) Botão #semMarcador Swipe #areaPequena #naoExplicaNada Botão #semMarcador Imagem #semDescrição
  • 26. Exemplos de apps que implementam acessibilidade (ou não) #nadaAcessível #botaoSemMarcador botões #semMarcador #faltouAgruparViews
  • 27. Exemplos de apps que implementam acessibilidade (ou não) #parabens #parabens #parabens #parabens
  • 28. Links úteis • https://developer.android.com/guide/topics/ui/accessibility/index.html • https://codelabs.developers.google.com/codelabs/basic-android-accessibility/ • http://www.slideshare.net/KellyShuster/android-accessibility-droidcon-london • http://www.slideshare.net/7mary4/android-accessibility-39995456 • https://www.youtube.com/watch?v=euEsfNR5Zw4 (io 2015) • https://www.youtube.com/watch?v=apEz73_H2fU (Voice Access) • https://www.udacity.com/course/viewer#!/c-ud853/ • https://engineering.twitter.com/university/videos/accessibility-for-android-at-twitter • https://github.com/paulacr/Acessibilidade #Acessibilidade