Notas de Lançamento do Axe DevTools Mobile 22 de abril de 2026
22 de abril de 2026
Versões dos Componentes
iOS
- Driver iOS Appium 2 (axe-appium2-xcuitest-driver v2.4.0)
- (Derivado de XCUITest v9.10.4)
- Driver iOS Appium 3 (axe-appium3-xcuitest-driver v_1.3.0)
- (Derivado de XCUITest v10.33.0)
Como atualizar: Driver iOS Appium
Android
- Driver Android Appium 2 (axe-appium2-uiautomator2-driver v2.4.0)
- (Derivado de UiAutomator2 v4.2.8)
- Driver Android Appium 3 (axe-appium3-uiautomator2-driver v1.3.0)
- (Derivado de UiAutomator2 v7.1.0)
Como atualizar Driver Android Appium
O que há de novo?
Comece a usar o Auto Scan com os drivers Axe DevTools para Mobile Appium.
O Auto Scan é a maneira mais rápida de adicionar verificações de acessibilidade aos seus testes de interface do usuário existentes.
- Realize verificações automaticamente enquanto interage com seu aplicativo
- Configure apenas uma vez, e o Auto Scan se adaptará para acomodar qualquer novo teste que você adicionar ao seu conjunto
- Quando os testes terminarem, um resumo é impresso diretamente nos seus logs de teste e um relatório HTML independente é gerado automaticamente
- O Auto Scan suporta ambientes online e offline e se integra perfeitamente ao seu conjunto de testes
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 uma vez que for resolvido ou de uma solução alternativa identificada, caso nenhuma esteja listada.
- Os testes automatizados do Axe DevTools Mobile são executados em aplicativos nativos de iOS, Android nativo e React Native. Entre em contato com seu representante Deque para soluções de teste de acessibilidade na sua pilha tecnológica.
- Embora você possa obter alguns resultados de visualizações web ou PDFs renderizados, recomendamos fortemente testar usando o axe DevTools for Web ou o axe Monitor para os testes de acessibilidade mais abrangentes para a web.
iOS
Resultados falso-positivos para a regra de Contraste de Cor com fundos gradientes em telas pequenas
Ao executar verificações de acessibilidade em tamanhos de tela menores ou com tamanhos de fonte menores, a regra de Contraste de Cor pode relatar falso-positivos para fundos gradientes. Nesses casos, pode não conseguir determinar a cor do primeiro plano e, em vez disso, comparar cores de fundo entre si, resultando em uma falha.
Para contornar esse problema, tente executar verificações de acessibilidade em dispositivos maiores. Alternativamente, você pode optar por ignorar a regra em seus testes e verificar o Contraste de Cor manualmente para essas visualizações.
Propriedade isVisible imprecisa do XCTest
As APIs de acessibilidade da Apple podem relatar incorretamente o conteúdo web dentro de um WKWebView como "isVisible", mesmo quando a visualização web está coberta por sobreposições nativas (como visualizações modais, alertas ou outros elementos de UI nativos). Isso ocorre porque o sistema de acessibilidade verifica se o próprio contêiner WKWebView está visível, em vez de verificar se seu conteúdo web está realmente desobstruído e perceptível ao usuário.
Bug de acessibilidade no iOS 26 com steppers
O iOS 26 contém um bug de acessibilidade onde os botões padrão de stepper não anunciam "escurecido" pela Tecnologia Assistiva para indicar que não estão habilitados. Como resultado, as regras do iOS também veem esses botões como habilitados, mesmo que não estejam. Um relatório de bug foi enviado para a Apple, mas até que isso seja resolvido, as seguintes regras podem relatar resultados em botões de stepper desabilitados: AssociatedText, InaccessibleAction, e ColorContrast.
Até que a Apple corrija esse bug, a resolução será [ignorar as regras](ios-ignore-rule). Os botões padrão de stepper têm os identificadores "Decrement" e "Increment", e podem ser ignorados por identificador, se necessário.
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.
Falso-positivo: LabelInName e LabelAtFront em SwiftUI & Aplicativos Multiplataforma
Algumas telas podem relatar falso-positivos com LabelInName e LabelAtFront devido a uma propriedade associatedText incorreta ser encontrada (#1622)
A regra Suporta Dynamic Type não funciona com o simulador do iOS 15 Pro
Há um problema que afeta o simulador do iPhone 15 Pro e que impede a execução da regra Suporta Dynamic Type. Se você optou pela regra Suporta Dynamic Type, não poderá testá-la usando um simulador do iPhone 15 Pro. Um bug foi registrado na 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 na Apple. (#1110)
Regra de Nome do ImageView precisa de revisão de resultados para aplicativos UIKit
Em aplicativos UIKit, uma imagem sem um `accessibilityLabel` não é focável com tecnologias assistivas por padrão.
As propriedades que utilizamos 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 do ImageView em aplicativos UIKit serão relatados como Necessita Revisão. Um relatório de bug foi registrado na Apple. (#1633)
Falso Positivo: Em Scroll View, Rótulo no Nome, Rótulo na Frente e Nome do ImageView v2.11.0 & NomeControleAtivo
Estamos trabalhando ativamente em correções para os seguintes falsos positivos e atualizaremos esta lista à medida que as correções forem liberadas.
In Scroll View
Textos dentro de elementos que se comportam como banners podem ser marcados com uma mensagem "Necessita Revisão". Para tornar esses elementos acessíveis para aqueles que necessitam 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 NomeControleAtivo pode relatar um falso positivo no UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi registrado na Apple. (#1633)
Label In Name and Label At Front
Essas duas regras procuram pelo 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 causando falhas nessas regras. (#1622)
Android
Falso positivo na detecção de texto anunciado
Em alguns casos, a tecnologia assistiva depende de AccessibilityEvent descrições do sistema Android para anunciar informações ao usuário quando nenhum outro anúncio está disponível. Desde AccessibilityEvents are triggered by user actions, we are unable to access the correct description if this information is not provided.
Para evitar este problema, certifique-se de que todas as visualizações relevantes sejam marcadas como importantes para acessibilidade. Isso permitirá que o Talkback acesse as informações da visualização, que nossa ferramenta pode então detectar.
Regra de Contraste de Cores não é executada quando as cores do texto e do fundo são as mesmas
Nossa regra de Contraste de Cores depende de Aprendizado de Máquina para detectar texto, o que garante que o texto sendo escaneado seja visível para os usuários de sua aplicação. Em casos em que 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, portanto a regra de Contraste de Cores não é executada nesta visualização.
EditTextName no Android 7 (SDK 24-25)
Aplicativos escritos em 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 aplicativo XML atribuirá o texto de sugestão ao valor do campo de entrada de texto. As versões mais recentes do Android estão mais bem 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. 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 ele não é oficialmente suportado.
Visualizações ocultas do Android retornando resultados
Você pode ver resultados para visualizações que estão ocultas 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 solução para este problema complexo. Enquanto isso, se o TalkBack não puder acessar essas visualizações, você pode desconsiderar os problemas correspondentes. Eles não exigem uma correção para garantir 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 importada automaticamente ao referenciar 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 arquivo do seu aplicativo, adicione o seguinte em dependências:
debugImplementation 'com.google.mlkit:text-recognition:16.0.1'
Find a full working example of the ML Kit library being imported in the Android Mobile SDK Getting Started section, under Implementação
Espaçamento do Alvo de Toque e Jetpack Compose
A regra de Espaçamento do Alvo de Toque atualmente não é executada em nenhum componente deslizante que foi escrito em Jetpack Compose. Nenhuma ação pode ser tomada no momento. No entanto, uma correção está chegando em breve!
Erro ao salvar resultados localmente no API 30
No Android API 30, um dos locais que tentamos salvar 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 bloco a seguir:
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 o API 30, pois causará problemas ao salvar localmente para outros níveis de API.
Detecção de rolagem em aplicativos híbridos e aplicativos 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 varredura.
Aplicativo Analyzer: Botão de Ação Flutuante Desaparece
Com o API 31 (Android 12), foi introduzida a capacidade de ocultar sobreposições não-sistêmicas. Para utilizar o aplicativo axe Analyzer, certifique-se de que esta configuração não esteja ativada. Se você optou por utilizar esse recurso por suas melhorias de segurança, recomendamos deixá-lo desativado para compilações de teste interno, 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 qualquer chamada para o método setHideOverlayWindows(true) para setHideOverlayWindows(false) nas janelas de atividades afetadas.
Captura de tela ausente (Caixa Preta) no Painel
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 do seu aplicativo que utilize dados mock para evitar preocupações de segurança. Confira nosso guia para habilitar capturas de tela em aplicativos Android.
Falha quando minifiedEnabled está configurado como verdadeiro
Se minimizar sua compilação, você verá um erro com um log relatando que um adaptador não pôde ser encontrado ao tentar fazer login na biblioteca axe DevTools. Desative a minimização para suas compilações de depuração com axe DevTools implementado. (#729)
Compilações com r8 habilitado geram um erro
Uma compilação com r8 habilitado 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.** { *; }
Mensagens de erro ao usar APIs Compose
As APIs Compose estão obsoletas, por favor use as APIs agnósticas de layout para continuar recebendo atualizações. Se você continuar a usar 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 a API Compose setTestTag.
MAUI: Regra de Nome de Edit Text
Devido a limitações da arquitetura de aplicativos MAUI no ecossistema Android, a regra de Nome de Edit Text aparecerá 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. 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 eles se comportem com tecnologia assistiva como desejado.
Painel Web
Captura de Tela Ausente
Se a captura de tela estiver ausente na página de detalhes da varredura, seu aplicativo pode estar impedindo que capturas de tela sejam feitas. Muitas vezes isso é por razões de segurança em sua aplicação de produção. Considere remover essa exigência para sua compilação de teste para permitir a funcionalidade completa no Painel Mobile do axe DevTools.
Alguns nomes de varredura no Android estão sem formatação
Alguns nomes de varredura no Android que são definidos como padrão 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, você pode definir o nome da varredura a partir do painel ou estruturas. (#1643)
