Os aplicativos mobile podem ajudar as pessoas a realizar tarefas diárias. No entanto, pessoas com deficiência podem enfrentar várias barreiras ao usar os recursos desses dispositivos se eles não fornecerem acessibilidade adequada.
Os desenvolvedores de software desempenham um papel crucial na promoção de melhorias de acessibilidade digital, e os testes automatizados podem ajudá-los.
O Kit de Testes de Acessibilidade Automatizados para Aplicativos Android (AATK) consiste em uma coleção de testes de acessibilidade automatizados projetados para serem executados com o Robolectric. Isso permite que sejam executados como testes locais, sem a necessidade de um dispositivo físico ou emulado.
Este kit foi desenvolvido com foco nos problemas de acessibilidade mais comuns e nos widgets mais usados, onde muitos problemas de acessibilidade tendem a ocorrer.
Ao realizar este codelab, você será capaz de:
Não é necessário nenhum conhecimento prévio sobre acessibilidade ou testes automatizados para realizar este codelab. No entanto, assumimos que você:
Neste codelab, você trabalhará com um aplicativo existente, o Counter, derivado do Google Codelabs. Este aplicativo permite aos usuários rastrear, incrementar e decrementar uma contagem numérica. Embora o aplicativo seja simples, você descobrirá que ele tem alguns problemas de acessibilidade que podem dificultar que usuários com deficiência interajam com ele.
Você será orientado a executar três testes do AATK para identificar esses problemas rapidamente e corrigi-los. Além disso, você poderá escrever e executar outros testes por conta própria.
Você pode obter o código-fonte da versão inicial do aplicativo neste link. Clone o repositório e abra Counter no Android Studio.
Siga os seguintes passos para preparar o projeto para adicionar testes de acessibilidade automatizados:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
android{
...
testOptions {
// Usado para testar elementos dependentes do Android na pasta de teste
unitTests.includeAndroidResources = true
unitTests.returnDefaultValues = true
}
}
Em seguida, adicione estas duas dependências como testImplementation
:dependencies {
...
testImplementation 'org.robolectric:robolectric:4.9'
testImplementation 'com.github.AALT-Framework:android-accessibility-test-kit:v1.0.0-alpha'
...
}
MainActivityTest
. Assim você saberá que esta classe de teste se refere à MainActivity
.Com a classe MainActivityTest
gerada e aberta, comece a configurá-la para executar os testes AATK.
RoboletricTestRunner
.AccessibilityTestRunner
.ErrorCollector
.@Before
public void setUp() {
MainActivity activity = Robolectric.buildActivity(MainActivity.class).create().get();
// Obtenha a view raiz da hierarquia de exibição
rootView = activity.getWindow().getDecorView().getRootView();
runner = new AccessibilityTestRunner(collector);
}
MainActivityTest
deve estar assim:@RunWith(RobolectricTestRunner.class)
public class MainActivityTest {
private View rootView;
private AccessibilityTestRunner runner;
@Rule
public ErrorCollector collector = new ErrorCollector();
@Before
public void setUp() {
MainActivity activity = Robolectric.buildActivity(MainActivity.class).create().get();
// Obtenha a view raiz da hierarquia de exibição
rootView = activity.getWindow().getDecorView().getRootView();
runner = new AccessibilityTestRunner(collector);
}
}
Adicione um método de teste para cada teste de acessibilidade que deseja executar. Começaremos com a verificação da taxa de contraste de cores.
Uma taxa de contraste adequada ajuda os usuários a identificar melhor o conteúdo do aplicativo. Uma relação de contraste de pelo menos 4,5:1 deve ser usada.
Você pode utilizar o teste de taxa de contraste do AATK (TestAdequateContrastRatio
) da seguinte forma:
@Test
public void deve_UsarTaxaDeContrasteAdequada(){
runner.runAccessibilityTest(rootView, new TestAdequateContrastRatio());
}
View
, a taxa esperada e a taxa atual.
Agora que já criou seu primeiro teste, você pode adicionar outros. A seguir, iremos sugerir mais dois exemplos. Consulte a documentação do AATK para consultar todos os testes disponíveis.
Todo conteúdo não textual deve ter uma descrição de texto alternativa. Isso permite que um leitor de tela possa identificar corretamente o conteúdo.
Para esse teste, você irá utilizar o teste de texto alternativo do AATK (TestMustHaveAlternativeText
), assim como fez para o teste de contraste.
@Test
public void deve_ConterAlternativaTextual(){
runner.runAccessibilityTest(rootView, new TestMustHaveAlternativeText());
}
Todos os elementos de interação devem ter no mínimo 48x48dp.
Para esse teste, você irá utilizar o teste de texto alternativo do AATK (TestTouchTargetSize
), assim como fez para os testes anteriores.
@Test
public void deve_AlvoDeToquePossuirTamanhoMinimo(){
runner.runAccessibilityTest(rootView, new TestTouchTargetSize());
}
Obrigado por sua participação!
Lembre-se de retornar ao questionário para concluir última etapa desta pesquisa.