SlideShare uma empresa Scribd logo
1 de 19
Desenvolvedora Android
Implementando acessibilidade em
aplicações Android
Paula Rosa
Definindo Acessibilidade
• Qualidade do que é acessível, do que tem
acesso. Facilidade, possibilidade na
aquisição, na aproximação.
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
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/
lados
troca foco
Swipe p/
cima ou baixo
(fab)
Swipe duplo p/
cima ou baixo
(scroll)
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
• Imagens - atributo android:contentDescription="descricao"
• Imagem decorativa android:contentDescription="@null"(< API 16)
android:importantForAccessibility="no" (>= 16)
• TextInputLayout - android:labelFor="@+id/editTextId"
Talkback
• Foco: requestFocus(), nextFocusUp(), nextFocusDown(),
nextFocusLeft() e nextFocusRight();
• Agrupar views que devem ser lidas em conjunto pelo talkback
(viewgroup com atributo android:focusable=“true")
Talkback
• FloatingActionButton:
fab.setAccessibilityTraversalBefore(R.id.usernameInputLayout);
• accessibilityLiveRegion (feedback de uma view que aparece depois)
=> polite, assertive, none
Talkback
/**
* Envia evento para talkback falar o componente
*/
CustomViews
Views que
herdam
acessibilidade
CustomView
onDraw()
onMeasure()
Sobreescreve
os métodos:
Views que não
herdam
acessibilidade
Herda de View
Talkback
• Enviar o evento - view.sendAccessibilityEvent(
AccessibilityEvent.TYPE_VIEW_FOCUSED)
• Sobreescrever método
dispatchPopulateAccessibilityEvent(AccessibilityEvent)
Testes
• Utilizando talkback
• Accessibility scanner
• Utilizando espresso
Accessibility Scanner
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 correta contentDescription
Dicas Marotas
Lint - Preferences → Editor → Inspections → Android > Lint > Accessibility →
Image without contentDescription
Apps Customizados para acessibilidade - telas com banners, transparência,
tutoriais.
Mais informação - Textos informativos que expliquem como interagir com as
funcionalidades
Vibração — Explorar vibração para ações do app e notificações
Atenção a componentes de duplo estado - toogles, switches (…)
• manager = (AccessibilityManager)
getSystemService(Context.ACCESSIBILITY_SERVICE);
manager.isEnabled() - Se o modo acessibilidade está ligado.
Dicas Marotas
Links Acessibilidade
• 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
www.concretesolutions.com.br
blog.concretesolutions.com.br
Contato
@_paulacr
paula.mecatronica@gmail.com
https://br.linkedin.com/in/paularosa

Mais conteúdo relacionado

Destaque

Levando seu app do iOS para o macOS
Levando seu app do iOS para o macOSLevando seu app do iOS para o macOS
Levando seu app do iOS para o macOSGuilherme Rambo
 
Agilizando o desenvolvimento web com SASS
Agilizando o desenvolvimento web com SASSAgilizando o desenvolvimento web com SASS
Agilizando o desenvolvimento web com SASSRenato Galvão
 
TDC 2016 - Garantindo a qualidade da sua infraestrutura
TDC 2016 - Garantindo a qualidade da sua infraestruturaTDC 2016 - Garantindo a qualidade da sua infraestrutura
TDC 2016 - Garantindo a qualidade da sua infraestruturaFernanda Martins
 
TDC 2016 - Sass: CSS com super-poderes.
TDC 2016 - Sass: CSS com super-poderes.TDC 2016 - Sass: CSS com super-poderes.
TDC 2016 - Sass: CSS com super-poderes.Rodrigo Amora
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritaTDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritatdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...
TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...
TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...João Clineu - CTFL, CSM, CSD
 
Como ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresComo ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresElias Nogueira
 
TDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com ArduínoTDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com Arduínotdc-globalcode
 
TDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.ioTDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.iotdc-globalcode
 
TDC2016SP - Trilha Impressão 3D
TDC2016SP - Trilha Impressão 3DTDC2016SP - Trilha Impressão 3D
TDC2016SP - Trilha Impressão 3Dtdc-globalcode
 
Apresentação tdc 2016 - trilha de testes
Apresentação tdc   2016 - trilha de testesApresentação tdc   2016 - trilha de testes
Apresentação tdc 2016 - trilha de testesSamuel Lucas
 
A transição de um QA tradicional para um Agile Tester
A transição de um QA tradicional para um Agile TesterA transição de um QA tradicional para um Agile Tester
A transição de um QA tradicional para um Agile TesterJéssica Mollo
 

Destaque (20)

Levando seu app do iOS para o macOS
Levando seu app do iOS para o macOSLevando seu app do iOS para o macOS
Levando seu app do iOS para o macOS
 
Agilizando o desenvolvimento web com SASS
Agilizando o desenvolvimento web com SASSAgilizando o desenvolvimento web com SASS
Agilizando o desenvolvimento web com SASS
 
TDC 2016 - Garantindo a qualidade da sua infraestrutura
TDC 2016 - Garantindo a qualidade da sua infraestruturaTDC 2016 - Garantindo a qualidade da sua infraestrutura
TDC 2016 - Garantindo a qualidade da sua infraestrutura
 
TDC 2016 - Sass: CSS com super-poderes.
TDC 2016 - Sass: CSS com super-poderes.TDC 2016 - Sass: CSS com super-poderes.
TDC 2016 - Sass: CSS com super-poderes.
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritaTDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...
TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...
TDC POA 2016 - Robotium + Cucumber + Gradle, misture com spoon e tenha uma ex...
 
Como ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresComo ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadores
 
TDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com ArduínoTDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com Arduíno
 
TDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.ioTDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.io
 
TDC2016SP - Trilha Impressão 3D
TDC2016SP - Trilha Impressão 3DTDC2016SP - Trilha Impressão 3D
TDC2016SP - Trilha Impressão 3D
 
Apresentação tdc 2016 - trilha de testes
Apresentação tdc   2016 - trilha de testesApresentação tdc   2016 - trilha de testes
Apresentação tdc 2016 - trilha de testes
 
A transição de um QA tradicional para um Agile Tester
A transição de um QA tradicional para um Agile TesterA transição de um QA tradicional para um Agile Tester
A transição de um QA tradicional para um Agile Tester
 

Semelhante a Implementando acessibilidade em aplicações Android

Palestra - Testes de Acessibilidade
Palestra - Testes de AcessibilidadePalestra - Testes de Acessibilidade
Palestra - Testes de AcessibilidadeFernando Ruano
 
Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cpcesarvianna
 
Arquitetura JavaScript Escalável da Netflix
Arquitetura JavaScript Escalável da NetflixArquitetura JavaScript Escalável da Netflix
Arquitetura JavaScript Escalável da NetflixBruno Tavares
 
Acessibilidade para Web
Acessibilidade para WebAcessibilidade para Web
Acessibilidade para WebJoão Conserva
 
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
 
Cyou - Apresentação FInal - #ICPM
Cyou - Apresentação FInal - #ICPMCyou - Apresentação FInal - #ICPM
Cyou - Apresentação FInal - #ICPMPedroMiguelMartins
 
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
 
Acessibilidade em CSS - ABC Dev
Acessibilidade em CSS - ABC DevAcessibilidade em CSS - ABC Dev
Acessibilidade em CSS - ABC DevLucas J Silva
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
 
Resumo Interop
Resumo InteropResumo Interop
Resumo Interopleonardotn
 
Palestra urutai-mobile
Palestra urutai-mobilePalestra urutai-mobile
Palestra urutai-mobileRogerio Fontes
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de AndroidTiago Barreto
 

Semelhante a Implementando acessibilidade em aplicações Android (20)

Palestra - Testes de Acessibilidade
Palestra - Testes de AcessibilidadePalestra - Testes de Acessibilidade
Palestra - Testes de Acessibilidade
 
Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cp
 
Html 5
Html 5Html 5
Html 5
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Arquitetura JavaScript Escalável da Netflix
Arquitetura JavaScript Escalável da NetflixArquitetura JavaScript Escalável da Netflix
Arquitetura JavaScript Escalável da Netflix
 
Acessibilidade para Web
Acessibilidade para WebAcessibilidade para Web
Acessibilidade para 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
 
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
 
Roadmap Demoiselle Framework v3
Roadmap Demoiselle Framework v3Roadmap Demoiselle Framework v3
Roadmap Demoiselle Framework v3
 
XHTML e CSS
XHTML e CSSXHTML e CSS
XHTML e CSS
 
Acessibilidade em CSS - Front in Sampa
Acessibilidade em CSS - Front in SampaAcessibilidade em CSS - Front in Sampa
Acessibilidade em CSS - Front in Sampa
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Acessibilidade em CSS - ABC Dev
Acessibilidade em CSS - ABC DevAcessibilidade em CSS - ABC Dev
Acessibilidade em CSS - ABC Dev
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 
Resumo Interop
Resumo InteropResumo Interop
Resumo Interop
 
Palestra urutai-mobile
Palestra urutai-mobilePalestra urutai-mobile
Palestra urutai-mobile
 
Minicurso Intel XDK
Minicurso Intel XDKMinicurso Intel XDK
Minicurso Intel XDK
 
Minicurso Intel XDK
Minicurso Intel XDKMinicurso Intel XDK
Minicurso Intel XDK
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de Android
 

Implementando acessibilidade em aplicações Android