Notas de Lançamento do axe DevTools Mobile de 2 de julho de 2025
2 de julho de 2025
Versões dos Componentes
iOS
- iOS SDK (axeDevToolsXCUI v2.16.0)
- Analisador iOS (axe-devtools-mobile-analyzer v1.4.12)
- Driver iOS Appium (axe-appium-xcuitest-driver v1.5.0)
- (Derivado de XCUITest v9.2.3)
Como atualizar: SDK iOS, Analisador iOS, Driver iOS Appium
Android
- SDK Android (axe-devtools-android v7.0.0)
- Analisador Android (axe Accessibility Analyzer v2.0.0)
- Driver Android Appium (axe-appium-uiautomator2-driver v1.4.2)
- (Derivado de UiAutomator2 v4.2.4)
Como atualizar: SDK Android, Analisador Android, Driver Android Appium
O que há de novo?
URLs de Grupo de Varredura
Agora você pode criar uma URL para um grupo de até 20 resultados de varredura, tanto com nossos SDKs Android quanto iOS. Construa uma URL para uma única varredura ou para um grupo de varreduras com nossos drivers Appium.
Visite as seguintes páginas para detalhes sobre a implementação deste recurso:
- iOS - Carregar Resultados no Painel Móvel
- Android - Carregar Resultados no Painel Móvel
- Appium - Criar uma URL de Varredura para Resultados
Correções
iOS
- Solicitações de rede simplificadas para envio de varreduras com nome e/ou tags
- Melhorias na precisão das seguintes regras: Texto Associado, Contraste de Cor, Rótulo no Nome, Rótulo na Frente
Alterações Significativas
APIs Android XML e Compose removidas
Avançamos para uma implementação simplificada do axe DevTools para Android que resultou na depreciação das APIs XML e Compose. Indicamos que essa mudança ocorreria nas notas de lançamento de outubro de 2024. Se você ainda não fez isso, sua equipe deve mudar para as APIs independentes de layout para obter suporte contínuo e acesso às últimas atualizações.
Suporte ao Nível de API Android
Adicionamos suporte para o nível de API 36 do Android para o SDK. O nível mínimo de API Android suportado agora é 26 tanto para o SDK quanto para o aplicativo Mobile Analyzer.
Para perguntas ou preocupações sobre essas mudanças significativas, entre em contato com support.deque.com.
Problemas Conhecidos
Se você estiver enfrentando algum dos problemas abaixo, entre em contato conosco em helpdesk@deque.com ou support.deque.com. Poderemos então notificá-lo assim que for resolvido ou sobre uma solução alternativa identificada, caso nenhuma esteja listada.
- Os testes automatizados do axe DevTools Mobile são executados em aplicativos nativos para iOS, Android nativo e React Native. Por favor, entre em contato com o representante da Deque para soluções de testes de acessibilidade no seu ecossistema tecnológico.
- Embora você possa obter alguns resultados de visualizações da web ou PDFs renderizados, recomendamos fortemente o uso do axe DevTools for Web ou axe Monitor para 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 Scans em Dispositivos Físicos com o iOS Analyzer 1.4.7
Uma configuração no iOS Analyzer 1.4.7 impede a execução dos scans, retornando a mensagem "Teste Falhou". Para executar scans em um dispositivo físico, atualize para o projeto iOS Analyzer mais recente.
Erro no Projeto Analyzer & Teste por ID de Pacote na versão 2.8.1
A funcionalidade de testar um aplicativo por identificador de pacote foi quebrada na versão 2.8.1, resultando em um erro intitulado "Caminho do aplicativo de destino não especificado através da configuração de teste: ...". Atualize para a versão 2.8.2 ou a mais recente para resolver o erro. Atualize para a versão mais recente dentro do projeto iOS Analyzer.
Erro "Não Pôde Serializar AxeResult" no Projeto Analyzer v1.2.0 & SDK v2.12.3
Scannear alguns aplicativos com esta versão do analisador e SDK resultaria em um erro "Não Pôde Serializar AxeResult". Atualize para a versão mais recente para resolver o erro. Atualize para o projeto iOS Analyzer mais recente.Atualize para o iOS SDK mais recente.
Falso Positivo: LabelInName e LabelAtFront em SwiftUI & Apps Multiplataforma
Algumas telas podem relatar falsos positivos com LabelInName e LabelAtFront devido a uma propriedade associatedText incorreta ser encontrada (#1622)
Regra Suporta Tipo Dinâmico não funcionando com o simulador iOS 15 Pro
Há um problema afetando o simulador do iPhone 15 Pro que impede a execução da regra Suporta Tipo Dinâmico. Se você estiver inscrito na regra Suporta Tipo Dinâmico, não poderá testá-la usando um simulador do iPhone 15 Pro. Um bug foi registrado com a Apple.
Regras contra Controles Aninhados
Ao analisar uma melhoria para nossas regras, descobrimos que no XCTest, controles aninhados não são retornados na árvore de acessibilidade. Um bug foi registrado com a Apple. (#1110)
Regra de Nome de ImageView Precisa de Revisão de Resultados para Apps UIKit
Nos aplicativos UIKit, uma imagem sem um `accessibilityLabel` não é focável com tecnologia assistiva por padrão.
As propriedades que usamos para verificar a capacidade de foco da Apple podem ser imprecisas quando um `accessibilityIdentifier` é definido na imagem. Devido a este comportamento inesperado, os resultados para problemas de Nome de ImageView em apps UIKit serão relatados como Precisam de Revisão. Um relatório de bug foi registrado com a Apple. (#1633)
Falso Positivo: Em Scroll View, Label In Name, Label at Front e Nome de Image View & ActiveControlName na versão v2.11.0
Estamos ativamente trabalhando 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 com comportamento de banner. Para tornar esses elementos acessíveis àqueles que precisam de texto maior, use UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Se um UIImageView tiver um `accessibilityIdentifier` definido mas não for focável pelo VoiceOver, e tiver controles focáveis aninhados dentro dele, o ActiveControlName pode relatar um falso positivo no UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi registrado com a Apple. (#1633)
Label In Name and Label At Front
Essas duas regras procuram o rótulo visível de um 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, fazendo com que essas regras falhem. (#1622)
Android
Regra de Contraste de Cor não é executada quando as cores do texto e do fundo são as mesmas
Nossa regra de Contraste de Cor depende de aprendizado de máquina para detectar texto, o que garante que o texto escaneado seja visível para os usuários do seu aplicativo. Nos casos em que o texto contido em uma visualização é da mesma cor que o fundo, nosso algoritmo de aprendizado de máquina não consegue detectar se há texto presente, portanto, 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 dica podem ver falsos positivos com a EditTextName regra. O texto de dica não foi introduzido até o Android 8 (SDK 26). Usar este elemento em seu aplicativo XML atribuirá o texto de dica ao valor do campo de entrada de texto. Versões mais recentes do Android estão mais equipadas para tornar esta experiência acessível.
Para superar este problema, nossa primeira recomendação é executar seus testes em versões mais recentes do Android. Se for importante que o aplicativo seja acessível em versões anteriores do Android, no entanto, você pode considerar evitar o uso do hintText recurso, pois não é oficialmente suportado.
Visualizações ocultas do 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 relata como problemas.
Estamos trabalhando em uma correção para este problema complexo. Enquanto isso, se o TalkBack não puder alcançar estas visualizações, você pode desconsiderar os problemas correspondentes. Eles não requerem uma correção para garantir a acessibilidade.
Erro ao executar Detecção de Texto do ML Kit
A detecção de texto do ML Kit é necessária em muitas das regras do 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 acontece 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 manualmente a biblioteca ML Kit em seu projeto. No build.gradle do seu aplicativo, adicione o seguinte nas dependências:
implementation 'com.google.mlkit:text-recognition:16.0.1'
Espaçamento de Alvo de Toque e Jetpack Compose
A regra de Espaçamento do Alvo de Toque atualmente não está sendo executada em nenhum componente de controle deslizante escrito em Jetpack Compose. Nenhuma ação pode ser tomada neste momento. No entanto, uma correção está chegando em breve!
Erro ao salvar resultados localmente na API 30
No Android API 30, uma das localizações em que tentamos salvar os resultados localmente apresenta 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 Multiplataforma
Em alguns apps híbridos e multiplataforma, podemos obter resultados inesperados quando itens em uma visualização de rolagem estão parcialmente fora da tela. Para testar um elemento quanto à acessibilidade, certifique-se de que ele esteja totalmente visível na tela antes de realizar a verificação.
App Analyzer: Botão de Ação Flutuante Desaparece
Introduzida com a API 31 (Android 12) está a capacidade de ocultar sobreposições não sistêmicas. Para utilizar o app axe Analyzer, certifique-se de que esta configuração não está ativada. Se você optou por utilizar este recurso para seus aprimoramentos de segurança, recomendamos deixá-lo desativado 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 app axe Accessibility Analyzer, atualize qualquer chamada para o método setHideOverlayWindows(true) para setHideOverlayWindows(false) nas janelas de atividades afetadas.
Screenshot Ausente (Caixa Preta) no Painel
Para desbloquear a funcionalidade completa do axe DevTools para Mobile, certifique-se de que as capturas de tela estejam ativadas. Recomendamos habilitar capturas de tela em uma versão de depuração ou teste do 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á configurado como verdadeiro
Se você minimizar sua build, verá uma falha com um log de erro relatando que um adaptador não pôde ser encontrado ao tentar fazer login na biblioteca axe DevTools. Desabilite a minimização para suas builds de depuração com o axe DevTools implementado. (#729)
Builds com r8 habilitado geram um erro
Uma build com o r8 habilitado pode tentar minimizar a biblioteca axeDevTools, resultando em um erro similar 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 obsoletas, por favor, use as APIs independentes de layout para continuar recebendo atualizações. Se você continuar a usar as APIs Compose e encontrar um erro do tipo 'Esperado exatamente '1' nó, mas encontrados '2' nós que satisfazem: (isRoot)' ou 'Nenhuma View inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?', por favor, consulte API Compose setTestTag.
Mensagem de log:MlKitContext has not been initialized
Se você encontrar esta mensagem, alguns resultados das regras podem não ser retornados conforme o esperado quando essa regra estiver utilizando inteligência artificial. As regras afetadas incluem Contraste de Cor, Texto Focável e Nome do Elemento Aninhado. (#841)
MAUI: Regra de Nome do Texto de Edição
Devido a limitações da arquitetura de apps MAUI na execução no ecossistema Android, a regra Nome do Texto de Edição aparecerá como Necessita de Revisão no painel quando uma falha for suspeita 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
Ao implementar 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 estes modais ou diálogos personalizados e, em vez disso, verificá-los manualmente para garantir que se comportam com a tecnologia assistiva conforme desejado.
Painel Web
Screenshot Ausente
Se o screenshot estiver ausente na página de detalhes da verificação, seu app pode estar impedindo que capturas de tela sejam feitas. Frequentemente, isso é por razões de segurança em seu aplicativo de produção. Considere remover este requisito para sua build de testes para permitir a funcionalidade completa no Painel Mobile do axe DevTools.
Alguns nomes de verificação do Android estão sem formatação
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 a partir do painel ou das estruturas. (#1643)
