Notas de Lançamento do axe DevTools Mobile de 24 de setembro de 2025
24 de setembro de 2025
Versões dos Componentes
iOS
- iOS SDK (axeDevToolsXCUI v3.0.0)
- iOS Analyzer (axe-devtools-mobile-analyzer v1.6.0)
- iOS Appium Driver (axe-appium-xcuitest-driver v2.0.0)
- (Desviado do XCUITest v10.1.0)
Como atualizar: iOS SDK, iOS Analyzer, iOS Appium Driver
Android
- Android SDK (axe-devtools-android v8.0.1)
- Android Analyzer (axe Accessibility Analyzer v2.1.2)
- Android Appium Driver (axe-appium-uiautomator2-driver v2.0.1)
- (Desviado do UiAutomator2 v5.0.1)
Como atualizar Android-SDK, Android Analyzer, Android Appium Driver
Reporter CLI
- axe DevTools Reporter CLI v4.11.1
O que há de novo?
Nova Regra para Android: Elemento Focalizável Aninhado
A Deque tem um compromisso contínuo de oferecer e otimizar regras que detectem com precisão problemas reais de acessibilidade. Nossa nova regra para Android ajuda a garantir que os usuários de tecnologia assistiva recebam todas as informações necessárias para interagir com a interface do usuário. Saiba mais sobre nossa regra de Elemento Focalizável Aninhado .
Drivers Appium Offline
Agora temos drivers Appium offline disponíveis para uso com uma chave de licença fornecida pela Deque. Isso pode ser útil ao trabalhar com provedores de nuvem ou para otimizar o desempenho no seu fluxo de trabalho CI/CD, reduzindo as solicitações de rede.
Suporte ao Appium 3
Desde o nosso último lançamento, o Appium lançou novas versões principais de seus drivers para suportar o servidor Appium 3. Atualizamos *nossas* versões principais para alinhar com o repositório público, e estamos trabalhando para garantir que não haja impacto na funcionalidade do axe. Esses drivers suportam totalmente o Appium 3. Esperávamos ter compatibilidade retroativa com o Appium 2, mas descobrimos um bug que estamos trabalhando para corrigir o mais rápido possível.
Correções
iOS
- Registros mais descritivos quando
debugStatementsestão ativados - Melhorias na precisão das seguintes regras: Tamanho do Alvo de Toque e Espaçamento do Alvo de Toque
Android
- Melhorias na precisão das seguintes regras: Valor do Texto Editável e Nome da Visualização de Imagem
axe DevTools Reporter CLI
- Corrigido um bug nos relatórios HTML para filtrar questões por gravidade no caso de regras móveis que podem relatar múltiplas gravidades
- Resolvido um problema de falha na geração de relatórios HTML para nomes de varredura que incluíam barras
Atualizações
iOS e Xcode 26
Nossa equipe vem testando diligentemente em preparação para o recente lançamento do iOS e Xcode 26. Esta atualização garante que o framework XCUI e o driver Appium possam rodar no iOS 26, usando o Xcode 26. Identificamos algumas mudanças com este lançamento que impactaram como nossas regras são executadas, por isso atualizamos Problemas Conhecidos de acordo e continuaremos a fazê-lo à medida que aprendermos mais.
Chaves Offline
Automatizações offline estão disponíveis tanto para nossos SDKs quanto para drivers Appium, e todos precisarão de uma chave de licença offline para fins de autenticação. Por favor, entre em contato com seu representante Deque ou fale com o suporte para coordenar a entrega de sua chave de licença. Consulte as Perguntas Frequentes para mais informações sobre como usar os SDKs Offline para desempenho otimizado sem solicitações de rede.
Problemas Conhecidos
Se você estiver enfrentando qualquer um 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 de uma solução alternativa identificada, caso nenhuma esteja listada.
- Os testes automatizados do axe DevTools Mobile são executados em aplicativos nativos iOS, Android nativo e React Native. Por favor, entre em contato com seu representante Deque para soluções de testes de acessibilidade em sua stack tecnológica.
- Embora você possa obter alguns resultados de visualizações web ou PDFs renderizados, recomendamos fortemente testar usando axe DevTools para Web ou axe Monitor para os testes de acessibilidade mais abrangentes para a web.
iOS
Erro de acessibilidade com steppers no iOS 26
O iOS 26 contém um erro de acessibilidade onde os botões padrão de stepper não anunciam "esmaecido" 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 erro foi enviado à 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 este erro, a soluçã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.
Incapaz de Executar Scans em Dispositivos Físicos com iOS Analyzer 1.4.7
Uma configuração no iOS Analyzer 1.4.7 impede que os scans sejam executados, 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 do Pacote na 2.8.1
A funcionalidade de testar um aplicativo pelo identificador de pacote foi quebrada na versão 2.8.1, resultando em um erro intitulado "No target application path specified via test configuration: ...". Atualize para a 2.8.2 ou para a versão 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 & SDK v2.12.3
Escanear alguns aplicativos com esta versão do analyzer e SDK resultaria em um "Could not Serialize AxeResult" erro. Atualize para a versão mais recente para resolver o erro. Atualize para o projeto iOS Analyzer mais recente.Atualize para o SDK iOS mais recente.
Falso Positivo: LabelInName e LabelAtFront em Aplicativos SwiftUI & Cross Platform
Algumas telas podem relatar falsos positivos com LabelInName e LabelAtFront devido a uma propriedade associatedText incorreta encontrada (#1622)
Regra de Suporte a Tipo Dinâmico não funciona com o simulador iOS 15 Pro
Há um problema que afeta o simulador do iPhone 15 Pro que impede a execução da regra de Suporte a Tipo Dinâmico. Se você estiver inscrito na regra de Suporte a Tipo Dinâmico, não poderá testá-la usando um simulador do iPhone 15 Pro. Um bug foi reportado à 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 reportado à Apple. (#1110)
Regra Nome da ImageView Precisa de Revisão para Aplicativos 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 ser imprecisas quando um accessibilityIdentifier é definido na imagem. Devido a este comportamento inesperado, os resultados para problemas de Nome da ImageView em aplicativos UIKit serão reportados como Necessita Revisão. Um relatório de bug foi enviado à Apple. (#1633)
Falso Positivo: In Scroll View, Label In Name, Label at Front e v2.11.0 Nome da ImageView & Nome do Controle Ativo
Estamos trabalhando ativamente nas 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 banners. Para tornar esses elementos acessíveis àqueles que necessitam de texto maior, use UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Se uma UIImageView tiver um accessibilityIdentifier definido, mas não for focada pelo VoiceOver, e tiver controles focáveis aninhados dentro dela, o ActiveControlName pode relatar um falso positivo na UIImageView. Remover o accessibilityIdentifier resolve o problema. Um bug foi relatado à Apple. (#1633)
Label In Name and Label At Front
Estas duas regras procuram o rótulo visível de um controle entre os 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
A regra de Contraste de Cores não é executada quando as cores do texto e do plano de 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 verificado seja visível para os usuários da sua aplicação. Em casos onde o texto contido em uma visualização é da mesma cor que o plano de fundo, nosso algoritmo de Aprendizado de Máquina não consegue detectar se algum texto está presente, então a regra de Contraste de Cores não é executada nessa visualização.
EditTextName no Android 7 (SDK 24-25)
Aplicativos escritos com XML que utilizam o recurso de texto de dica podem ver falsos positivos com a regra EditTextName . O texto de dica não foi introduzido até o Android 8 (SDK 26). Usar este elemento no seu aplicativo XML irá atribuir o texto de dica ao valor do campo de entrada 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 é que você execute 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 recurso hintText , pois ele não é suportado oficialmente.
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 reporta como problemas.
Estamos trabalhando em uma correção para este problema complexo. Enquanto isso, se o TalkBack não puder acessar essas visões, você pode ignorar os problemas correspondentes. Eles não exigem 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 importada automaticamente ao referenciar o axe DevTools Mobile nos seus testes automatizados do 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 a biblioteca ML Kit no seu projeto manualmente. No arquivo da sua aplicação build.gradle , adicione o seguinte sob 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 de Alvo de Toque não está sendo executada atualmente 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 em que tentamos salvar resultados localmente tem um erro de permissões. O resultado ainda será salvo como um arquivo JSON apesar deste 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 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 totalmente na tela antes de realizar a varredura.
App do Analyzer: Botão de Ação Flutuante Desaparece
Introduzida com API 31 (Android 12) está a capacidade de ocultar sobreposições que não são de sistema. Para utilizar o aplicativo axe Analyzer, certifique-se de que essa configuração não esteja ativada. Se você optou por utilizar essa função por suas melhorias de segurança, recomendamos deixá-la desativada para compilações de teste internas 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 quaisquer chamadas ao método setHideOverlayWindows(true) para setHideOverlayWindows(false) nas janelas de atividade afetadas.
Captura de tela ausente (Caixa Preta) no Painel de Controle
Para desbloquear a funcionalidade completa do axe DevTools para Mobile, certifique-se de que as capturas de tela estejam habilitadas. Recomendamos habilitar capturas de tela em uma versão de debug ou teste do seu aplicativo que utilize dados simulados para evitar preocupações de segurança. Confira nosso guia para habilitar capturas de tela em aplicativos Android.
Falha quando `minifiedEnabled` está definido como verdadeiro
Ao 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 minimização para suas compilações de debug 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
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 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 como `Esperado exatamente '1' nó, mas encontrados '2' nós que satisfazem: (isRoot)` ou `Nenhuma View inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?`, por favor, consulte o 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 Focalizável e Nome de Elemento Aninhado. (#841)
MAUI: Regra de Nome de Texto Editável
Devido às limitações da arquitetura de renderização do aplicativo MAUI no ecossistema Android, a regra de Nome de Texto Editável será exibida como Necessita Revisão no painel de controle quando uma falha for suspeitada para a versão SDK 5.5.0 e superiores. 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, é possível que obtenha 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, verificá-los manualmente para garantir que se comportem com 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 feitas. Muitas vezes isso ocorre por razões de segurança em seu aplicativo de produção. Considere remover essa exigência para sua versão de teste a fim de permitir funcionalidade completa no Dashboard do axe DevTools Mobile.
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 de controle ou estruturas. (#1643)
