Notas de Lançamento do axe DevTools Mobile em 14 de agosto de 2025
14 de agosto de 2025
Versões dos Componentes
iOS
- SDK iOS (axeDevToolsXCUI v2.17.0)
- Analisador iOS (axe-devtools-mobile-analyzer v1.5.0)
- Driver Appium iOS (axe-appium-xcuitest-driver v1.7.0) (Forkeado do XCUITest v9.10.4)
Como atualizar: SDK iOS, Analisador iOS, Driver Appium iOS
Android
- SDK Android (axe-devtools-android v7.1.0)
- Analisador Android (axe Accessibility Analyzer v2.1.0)
- Driver Appium Android (axe-appium-uiautomator2-driver v1.5.0) (Forkeado do UiAutomator2 v4.2.8)
Como atualizar SDK Android, Analisador Android, Driver Appium Android
Correções
iOS
- Melhorias na precisão das seguintes regras: Nome dos Elementos Aninhados, Tamanho do Alvo de Toque e Espaçamento do Alvo de Toque
Android
- Se o MLKit falhar ao executar, um item "Revisão Necessária" será relatado na visualização raiz da varredura para indicar que o restante dos resultados pode ser impreciso. Encontre detalhes abaixo sobre como você pode importar o MLKit manualmente, caso isso ocorra.
- Melhorias na precisão da regra Nome da Visualização Ativa
Atualizações
Suporte ao Nível de API do Android
- O aplicativo Mobile Analyzer agora suporta o Nível de API 36
Problemas Conhecidos
Se você estiver enfrentando algum dos problemas abaixo, por favor, entre em contato conosco em helpdesk@deque.com ou support.deque.com. Assim, poderemos notificá-lo assim que for resolvido ou com uma solução alternativa identificada, caso nenhuma esteja listada.
- O teste automatizado do axe DevTools Mobile é executado em aplicativos nativos iOS, Android nativo e React Native. Por favor, entre em contato com seu representante da Deque para soluções de teste de acessibilidade em seu stack tecnológico.
- Embora você possa obter alguns resultados a partir de visualizações web ou PDFs renderizados, recomendamos fortemente o teste usando o axe DevTools for Web ou o axe Monitor para o teste de acessibilidade mais abrangente 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 Varreduras em Dispositivos Físicos com o Analisador iOS 1.4.7
Uma configuração no Analisador iOS 1.4.7 impede a execução de varreduras, retornando a mensagem "Teste Falhou". Para executar varreduras em um dispositivo físico, atualize para o projeto mais recente do Analisador iOS.
Erro no Projeto do Analisador & Teste por Bundle ID na versão 2.8.1
A funcionalidade de teste de um aplicativo pelo identificador de bundle quebrou na versão 2.8.1, o que resultou em um erro intitulado "No target application path specified via test configuration: ...". Atualize para a versão 2.8.2 ou a última versão para resolver o erro. Atualize para a última versão dentro do projeto iOS Analyzer.
Erro „Could not Serialize AxeResult“ no Projeto Analyzer v1.2.0 & SDK v2.12.3
Analisar algumas aplicações com esta versão do analisador e SDK resultaria em um "Could not Serialize AxeResult" erro. Atualize para a última versão para resolver o erro. Atualize para o último projeto iOS Analyzer.Atualize para o último SDK iOS.
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 sendo encontrada (#1622)
Regra de Suporte a Tipo Dinâmico não funciona com iOS 15 Pro simulador
Há um problema afetando o simulador do iPhone 15 Pro que impede a execução da regra de Suporte a Tipo Dinâmico. Se você optou por usar a regra de Suporte a 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 procurar 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
Em aplicativos UIKit, uma imagem sem um accessibilityLabel não é focalizável com tecnologia assistiva por padrão.
As propriedades que usamos para verificar a focalização da Apple podem estar imprecisas quando um accessibilityIdentifier é definido na imagem. Devido a este comportamento inesperado, os resultados para problemas de Nome de ImageView em aplicativos UIKit serão relatados como Necessita de Revisão. Um relatório de bug foi enviado para a Apple. (#1633)
Falso Positivo: Em Scroll View, Label In Name, Label at Front, e v2.11.0 Image View Name & ActiveControlName
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 que se comportam como banner. Para tornar esses elementos disponíveis para aqueles que exigem 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 focalizável pelo VoiceOver, e possuir 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
Estas 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 iguais
Nossa regra de Contraste de Cor depende de Aprendizado de Máquina para detectar texto, o que garante que o texto sendo escaneado seja visível para os usuários do seu aplicativo. Em casos onde o texto contido em uma visualização tem a mesma cor que o fundo, nosso algoritmo de Aprendizado de Máquina é incapaz de detectar se algum texto está presente, então a regra de Contraste de Cor não é executada nessa visualização.
EditTextName no Android 7 (SDK 24-25)
Aplicativos escritos com XML que utilizam a funcionalidade 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 esse problema, nossa primeira recomendação é executar seus testes em versões mais novas do Android. No entanto, se for importante que o aplicativo seja acessível em versões anteriores do Android, considere evitar o uso da hintText função, pois não é oficialmente suportada.
Visões ocultas do Android retornando resultados
Você pode ver resultados para visões que estão ocultas atrás de outras visões na tela. Essas visõ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 conseguir alcançar essas visões, você pode ignorar as questões correspondentes. Elas não requerem uma correção para garantir a acessibilidade.
Erro ao executar a 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. No entanto, em alguns casos, 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 esse problema, você deve importar manualmente a biblioteca ML Kit em seu projeto. No build.gradle do seu aplicativo, adicione o seguinte sob dependências:
implementation 'com.google.mlkit:text-recognition:16.0.1'
Espaçamento do Alvo de Toque e Jetpack Compose
A regra de Espaçamento do Alvo de Toque não está atualmente rodando em nenhum componente de slider que foi escrito em 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 em que tentamos salvar resultados localmente apresenta um erro de permissões. O resultado ainda será salvo como um arquivo JSON, apesar desse 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
// }
}
Observe que este código deve ser comentado apenas para a API 30, pois causará problemas ao salvar localmente para outros níveis de API.
Detecção de rolagem em Aplicativos Híbridos e Multiplataforma
Em alguns aplicativos híbridos e multiplataforma, podemos retornar 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 completamente na tela antes de realizar a verificação.
App Analyzer: Botão de Ação Flutuante Desaparece
Introduzido 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 esteja ativada. Se você optou por usar este recurso por seus aprimoramentos de segurança, recomendamos deixá-lo desativado para builds de teste internos onde você pode utilizar 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 qualquer chamada ao método setHideOverlayWindows(true) para setHideOverlayWindows(false)
nas janelas de atividades afetadas.
Captura de Tela Ausente (Caixa Preta) no Painel de Controle
Para desbloquear toda a funcionalidade do axe DevTools para Mobile, certifique-se de que as capturas de tela estejam ativadas. Recomendamos habilitar as capturas de tela em uma versão de depuração ou teste do seu aplicativo que use dados simulados para evitar problemas de segurança. Confira nosso guia para habilitar capturas de tela em aplicativos Android.
Falha quando `minifiedEnabled` está definido como true
Se minimizar sua compilação, você 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. Desative a minificação para suas compilações de depuração com axe DevTools implementado. (#729)
Compilações com r8 ativado geram um erro
Uma compilação com r8 ativado pode tentar minimizar a biblioteca axeDevTools, resultando em um erro semelhante a:
Caused by: java.lang.NullPointerException: throw with null exception
Para resolver este erro, adicione a seguinte linha ao seu arquivo ProGuard para manter as classes axeDevTools:
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)
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 do Compose estão obsoletas, por favor, use as APIs independentes de layout para continuar recebendo atualizações. Se você continuar usando as APIs do Compose e encontrar um erro como `Esperado exatamente '1' nó, mas encontrados '2' nós que satisfazem: (isRoot)` ou `Nenhuma View inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?`, por favor, consulte a API setTestTag do Compose.
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. As 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 renderizando no ecossistema Android, a regra de Nome de Texto Editável será exibida como Necessita 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. Neste caso, recomendamos não executar nossa ferramenta contra esses modais ou diálogos personalizados e, em vez disso, verificar manualmente se eles se comportam como desejado com a tecnologia assistiva.
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. Com frequência, isso ocorre por razões de segurança na sua aplicação em produção. Considere remover essa exigência para sua compilação de teste para permitir total funcionalidade 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 frameworks. (#1643)
