Notas de Lançamento do axe DevTools Mobile - 16 de julho de 2025
16 de julho de 2025
Versões dos Componentes
Android
- Android SDK (axe-devtools-android v7.0.1)
- Android Analyzer (axe Accessibility Analyzer v2.0.1)
- Driver Android Appium (axe-appium-uiautomator2-driver v1.4.3)
- (Derivado do UiAutomator2 v4.2.4)
Como atualizar: Android SDK, Android Analyzer, Driver Android Appium
Correções
- Corrigido um problema com a regra de Orientação da Tela, para que as capturas de tela exibam a mesma orientação na qual a análise foi iniciada
- Resolvido um problema com capturas de tela das análises do Appium, para que possam ser acessadas no Painel Mobile e em relatórios HTML gerados.
Problemas Conhecidos
Se você estiver enfrentando algum dos problemas abaixo, entre em contato conosco em helpdesk@deque.com ou support.deque.com. Assim, poderemos notificá-lo assim que o problema for resolvido ou de uma solução alternativa identificada, caso nenhuma seja listada.
- Os testes automatizados do axe DevTools Mobile são executados em aplicativos nativos iOS, Android nativo e React Native. Entre em contato com o representante da Deque para soluções de teste de acessibilidade em sua pilha de tecnologia.
- Embora você possa obter alguns resultados de visualizações de página da web ou PDFs renderizados, recomendamos fortemente testar com o axe DevTools para Web ou axe Monitor para os testes de acessibilidade mais abrangentes para a web.
iOS
Color Contrast rule does not run when text and background colors are the same
Our Color Contrast rule depends on Machine Learning to detect text, which ensures that the text being scanned is visible to users of your application. In cases where the text contained in a view is the same color as the background, our Machine Learning algorithm is unable to detect if any text is present, so the Color Contrast rule does not run on this view.
Incapaz de Executar Análises em Dispositivos Físicos com iOS Analyzer 1.4.7
Uma configuração no iOS Analyzer 1.4.7 impede a execução das análises, retornando a mensagem "Teste Falhou". Para executar análises em um dispositivo físico, atualize para o projeto mais recente do iOS Analyzer.
Erro no Projeto Analyzer e Teste por ID do Conjunto no 2.8.1
A funcionalidade para testar um aplicativo pelo identificador de pacote foi interrompida na versão 2.8.1, resultando em um erro intitulado "Nenhum caminho de aplicação de destino especificado via configuração de teste: ...". Atualize para a versão 2.8.2 ou a mais recente para resolver o erro. Atualize para o mais recente dentro do projeto iOS Analyzer.
Erro "Não foi possível Serializar AxeResult" no Projeto Analyzer v1.2.0 e SDK v2.12.3
A varredura de alguns aplicativos com esta versão do analisador e SDK resultaria em um erro "Não foi possível Serializar AxeResult". Atualize para a versão mais recente para resolver o erro. Atualize para o projeto mais recente do iOS Analyzer.Atualize para o SDK mais recente do iOS.
Falso Positivo: LabelInName e LabelAtFront em SwiftUI e Apps Multiplataforma
Algumas telas podem relatar falsos positivos com LabelInName e LabelAtFront devido a uma propriedade associatedText incorreta (#1622)
A regra Suporta Tipo Dinâmico não funciona com o simulador iOS 15 Pro
Há um problema que afeta o simulador iPhone 15 Pro que impede que a regra Suporta Tipo Dinâmico seja executada. Se você estiver inscrito na regra Suporta Tipo Dinâmico, não será capaz de testá-la usando um simulador de iPhone 15 Pro. Um bug foi registrado na Apple.
Regras contra Controles Aninhados
Durante a análise de uma melhoria para nossas regras, descobrimos que no XCTest, controles aninhados não são retornados na árvore de acessibilidade. Um bug foi registrado na Apple. (#1110)
Regra Nome do ImageView Precisa de Revisão em Resultados para Apps UIKit
Em aplicativos UIKit, uma imagem sem um `accessibilityLabel` não é focalizável por tecnologia assistiva por padrão.
As propriedades que usamos para verificar a focalizabilidade da Apple podem ser imprecisas quando um `accessibilityIdentifier` é definido na imagem. Devido a esse comportamento inesperado, os resultados para problemas de Nome do ImageView em aplicativos UIKit serão relatados como Necessita de Revisão. Um relatório de bug foi registrado na Apple. (#1633)
Falso Positivo: Em Scroll View, Label In Name, Label na Frente, e v2.11.0 Nome do Image View & ActiveControlName
Estamos trabalhando ativamente em correções para os seguintes falsos positivos e atualizaremos esta lista à medida que as correções forem lançadas.
In Scroll View
Pode relatar problemas para texto dentro de elementos que se comportam como banner. Para tornar esses elementos disponíveis para aqueles que requerem texto maior, use UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Se uma UIImageView tem um `accessibilityIdentifier` definido, mas não é focável pelo VoiceOver, e possui controles focáveis aninhados, o ActiveControlName pode relatar um falso positivo na UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi reportado à Apple. (#1633)
Label In Name and Label At Front
Essas duas regras procuram por um rótulo visível de controle entre elementos próximos para ajudar a determinar o status da regra. Em algumas hierarquias de visualização, o texto próximo incorreto pode ser detectado, causando a falha dessas regras. (#1622)
Android
Regra de Contraste de Cor não é executada quando as cores do texto e do fundo são iguais
Nossa regra de Contraste de Cor depende de Aprendizado de Máquina para detectar texto, o que garante que o texto sendo verificado seja visível para os usuários da sua aplicação. Em casos onde o texto contido numa visualização tem a mesma cor do fundo, nosso algoritmo de Aprendizado de Máquina não consegue detectar se algum texto está presente, por isso a regra de Contraste de Cor não é executada nessa visualização.
EditTextName no Android 7 (SDK 24-25)
Apps escritos com XML que utilizam o recurso de texto de sugestão podem ver falsos positivos com a EditTextName regra. O texto de sugestão não foi introduzido até o Android 8 (SDK 26). Usar este elemento em seu app XML atribuirá o texto de sugestão ao valor do campo de texto. Versões mais recentes do Android estão melhor equipadas para tornar essa experiência acessível.
Para superar este problema, nossa primeira recomendação é executar seus testes em versões mais recentes do Android. Contudo, se for importante que o app seja acessível em versões anteriores do Android, você pode considerar evitar o uso do hintText recurso, pois ele não é oficialmente suportado.
Visualizações escondidas no Android retornando resultados
Você pode ver resultados para visualizações que estão escondidas atrás de outras visualizações na tela. Essas visualizações ocultas não estão disponíveis para tecnologia assistiva, mas o axe DevTools Mobile ainda as reporta como problemas.
Estamos trabalhando em uma solução para este problema complexo. Enquanto isso, se o TalkBack não conseguir acessar essas visualizações, você pode ignorar os problemas correspondentes. Eles não precisam ser corrigidos para garantir a acessibilidade.
Erro ao executar Detecção de Texto do ML Kit
A detecção de texto ML Kit é necessária em muitas das regras de axe DevTools Mobile para garantir a precisão dos resultados. A biblioteca ML Kit deve ser automaticamente importada ao referenciar o axe DevTools Mobile em seus testes automatizados Espresso ou UIAutomator. Em alguns casos, no entanto, a importação automática não ocorre e você verá o seguinte erro no logcat:
Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.
Para superar este problema, você deve importar a biblioteca ML Kit em seu projeto manualmente. No build.gradle arquivo do aplicativo, adicione o seguinte sob dependências:
implementation 'com.google.mlkit:text-recognition:16.0.1'
Espaçamento da Área de Toque e Jetpack Compose
A regra de Espaçamento da Área de Toque atualmente não está sendo executada em nenhum componente deslizante que foi escrito com Jetpack Compose. Nenhuma ação pode ser tomada neste momento. No entanto, uma correção está a caminho!
Erro ao salvar resultados localmente no API 30
No Android API 30, um dos locais que tentamos salvar os resultados localmente possui um erro de permissões. O resultado ainda será salvo como um arquivo JSON, apesar de este erro ser exibido. O erro pode ser suprimido comentando o código no seguinte bloco:
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
// finalizedBy {
// fetchAndroidFolderAxeReportsTask
// }
}
Please note that this code should only be commented out for API 30 as it will cause problems when saving locally for other API levels.
Detecção de Rolagem em Apps Híbridos e Apps Cross-Platform
Em alguns apps híbridos e cross-platform, podemos retornar resultados inesperados quando itens em uma visualização de rolagem estão parcialmente fora da tela. Para testar um elemento em termos de acessibilidade, certifique-se de que ele esteja totalmente na tela antes de realizar a verificação.
App Analyzer: Botão de Ação Flutuante Desaparece
A capacidade de ocultar sobreposições não sistêmicas foi introduzida com a API 31 (Android 12). Para utilizar o aplicativo axe Analyzer, certifique-se de que essa configuração não esteja ativada. Se você optou por usar este recurso para seus aprimoramentos de segurança, recomendamos deixá-lo desligado para builds de teste internos onde você pode usar dados de teste com segurança e eliminar preocupações de segurança dessa forma. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
Para utilizar o aplicativo axe Accessibility Analyzer, atualize quaisquer chamadas para o método setHideOverlayWindows(true) para setHideOverlayWindows(false) nas janelas de atividades afetadas.
Captura de Tela Ausente (Caixa Preta) no Dashboard
Para desbloquear toda a funcionalidade do axe DevTools para Mobile, certifique-se de que capturas de tela estejam habilitadas. Recomendamos habilitar capturas de tela em uma versão de depuração ou teste de seu app que use dados simulados para evitar preocupações de segurança. Confira nosso guia para habilitar capturas de tela em apps Android.
Falha quando `minifiedEnabled` está definido como verdadeiro
Se minimizar sua build, você verá uma falha com um log de erro relatando que um adaptador não pôde ser encontrado ao tentar se conectar à biblioteca axe DevTools. Desative a minificação para seus builds de depuração com o axe DevTools implementado. (#729)
Builds com r8 ativado geram um erro
Uma build com r8 ativado pode tentar minimizar a biblioteca axeDevTools resultando em um erro semelhante a:
Caused by: java.lang.NullPointerException: throw with null exception
at g.b.b.a$a.a(Unknown Source:1)
at g.b.b.a$a.a(Unknown Source:0)
at g.b.b.a.a(AccessToken.java:190)
To resolve this error add the following line to your ProGuard file to keep axeDevTools classes:keep class com.deque.** { *; }
Mensagem de erro semelhante a:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
ou: No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
As APIs Compose estão depreciadas, por favor use as APIs agnósticas de layout para continuar recebendo atualizações. Se você continuar usando as APIs Compose e encontrar um erro como `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)` ou `No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?`, por favor consulte o Compose setTestTag API.
Mensagem de log:MlKitContext has not been initialized
Se você encontrar esta mensagem, alguns resultados de regras podem não retornar como esperado quando essa regra estiver utilizando inteligência artificial. Regras afetadas incluem Contraste de Cor, Texto Focável e Nome de Elemento Aninhado. (#841)
MAUI: Regra de Nome de Texto Editável
Devido a limitações da arquitetura do aplicativo MAUI ao renderizar no ecossistema Android, a regra de Nome de Texto Editável será exibida como Necessita Revisão no painel quando uma falha for suspeitada para a versão do SDK 5.5.0 e superior. Por favor, confirme o comportamento correto manualmente para este caso.
Android Nativo: Diálogos/Modais Personalizados
Quando você estiver implementando diálogos ou modais personalizados que não estendem os controles nativos, você pode obter resultados para visualizações atrás do modal. Nesse caso, recomendamos não executar nossa ferramenta contra esses modais ou diálogos personalizados e, em vez disso, verificá-los manualmente para garantir que se comportem com a tecnologia assistiva conforme desejado.
Painel da Web
Captura de Tela Ausente
Se a captura de tela estiver ausente na página de detalhes da verificação, seu aplicativo pode estar impedindo que capturas de tela sejam tiradas. Muitas vezes, isso ocorre por razões de segurança em seu aplicativo de produção. Considere remover esse requisito para a sua versão de teste para permitir a funcionalidade completa no painel do axe DevTools Mobile.
Alguns nomes de verificação do Android estão desformatados
Alguns nomes de verificação do Android que são padronizados para o título da tela aparecerão como o nome completo da classe, incluindo o identificador do pacote. Em uma versão futura, isso será resolvido para que o título da tela seja formatado em um nome mais legível. Como solução alternativa, você pode definir o nome da verificação no painel ou nos frameworks. (#1643)
