Notas de Lançamento do axe DevTools Mobile de 26 de março de 2025
26 de março de 2025
Versões dos Componentes
iOS
- iOS SDK (axeDevToolsXCUI v2.14.1)
- iOS Analyzer (axe-devtools-mobile-analyzer v1.4.9)
- iOS Appium Driver (axe-appium-xcuitest-driver v1.3.0)
Como atualizar: iOS SDK, iOS Analyzer, iOS Appium Driver
Android
- Android SDK (axe-devtools-android v6.2.0)
- Android Analyzer (axe Accessibility Analyzer v1.12.0)
- Android Appium Driver (axe-appium-uiautomator2-driver v1.4.0)
Como atualizar Android-SDK, Android Analyzer, Android Appium Driver
O que há de novo?
SDK
Ao escrever seus testes, agora você pode optar por ignorar regras experimentais dos SDKs do axe DevTools Mobile. Como as regras experimentais ainda estão em fase de teste e desenvolvimento, você pode optar por se concentrar nos resultados baseados no conjunto de regras padrão.
Appium Driver
Você tem várias novas opções ao escanear com nossos drivers Appium. Você pode:
- Ignorar regras experimentais ao configurar sua configuração
- Desativar o upload de scans para o Mobile Dashboard, para reduzir o número de solicitações de rede e melhorar a velocidade de escaneamento
- Criar um link para um scan no Mobile Dashboard usando a chave de resultado
Saiba mais na página de Recursos do Appium .
Correções
iOS
- Corrigido
couldNotSerializeResulterro para visualizações que têm área infinita - Reduzido o número de falsos positivos para visualizações que estão parcialmente fora da tela
- Melhorias na precisão das regras de Contraste de Cor e Visualizações Colidentes
Android
- Corrigido um problema com a forma como a captura de tela é armazenada no escaneamento
- Reduzidos os falsos positivos para WebViews
- Prevenção de falhas na tela de login do aplicativo Analyzer
- Melhorias na precisão das seguintes regras: Espaçamento do Alvo de Toque, Nome do ImageView, Rótulo na Frente e Texto Focável
Problemas Conhecidos
Se você estiver enfrentando algum dos problemas abaixo, entre em contato conosco em helpdesk@deque.com ou support.deque.com. Então poderemos 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 iOS, nativos Android e React Native. Entre em contato com seu representante Deque para soluções de teste de acessibilidade para sua pilha de tecnologia.
- Embora você possa obter alguns resultados de visualizações da web ou PDFs renderizados, recomendamos fortemente testar usando o axe DevTools for Web ou axe Monitor para testes de acessibilidade mais abrangentes na web.
iOS
Não é possível executar verificações em dispositivos físicos com o iOS Analyzer 1.4.7
Uma configuração no iOS Analyzer 1.4.7 impede a execução das verificações, retornando a mensagem „Falha no Teste“. Para executar verificações em um dispositivo físico, atualize para o projeto mais recente do iOS Analyzer.
Erro no Projeto Analyzer & Teste por ID do Pacote no 2.8.1
A funcionalidade de testar um aplicativo por identificador de pacote foi interrompida na versão 2.8.1, resultando em um erro intitulado „Caminho do aplicativo alvo não especificado via configuração de teste: ...“. Atualize para 2.8.2 ou para a versão mais recente para resolver o erro. Atualize para a última versão do projeto iOS Analyzer.
Erro „Não foi possível serializar AxeResult“ no Projeto Analyzer v1.2.0 & SDK v2.12.3
Verificar alguns aplicativos com esta versão do analisador e do SDK resultava em um erro de „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 & Apps Multiplataforma
Algumas telas podem relatar falsos positivos com LabelInName e LabelAtFront devido a uma propriedade associatedText incorreta sendo encontrada (#1622)
Regra Supports Dynamic Type não funcionando com o simulador iOS 15 Pro
Há um problema afetando o simulador iPhone 15 Pro que impede a execução da regra Supports Dynamic Type. Se você estiver inscrito na regra Supports Dynamic Type, não poderá testá-la usando um simulador iPhone 15 Pro. Um bug foi registrado junto à Apple.
Regras contra Controles Aninhados
Durante a busca por uma melhoria em nossas regras, descobrimos que no XCTest, os controles aninhados não são retornados na árvore de acessibilidade. Um bug foi registrado junto à Apple. (#1110)
Regra de Nome de ImageView Precisa de Revisão de Resultados para Aplicativos UIKit
Em aplicativos UIKit, uma imagem sem um `accessibilityLabel` não é focada por 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 esse comportamento inesperado, os resultados dos problemas de Nome de ImageView em aplicativos UIKit serão relatados como Precisando de Revisão. Um relatório de bug foi registrado junto à Apple. (#1633)
Falso Positivo: Em Scroll View, Label In Name, Label at Front, e v2.11.0 Nome de ImageView & ActiveControlName
Estamos trabalhando ativamente em correções para os seguintes falsos positivos e atualizaremos esta lista conforme as correções forem sendo liberadas.
In Scroll View
Pode relatar problemas para texto dentro de elementos que se comportam como banners. Para tornar esses elementos disponí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 centrado pelo VoiceOver, e tiver controles focáveis aninhados dentro dele, ActiveControlName pode relatar um falso positivo no UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi registrado junto à Apple. (#1633)
Label In Name and Label At Front
Essas duas regras procuram um rótulo visível do 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
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). Utilizar 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 melhor equipadas para tornar essa experiência acessível.
Para superar esse problema, nossa primeira recomendação é executar seus testes em versões mais recentes do Android. No entanto, se for importante que o aplicativo seja acessível em versões anteriores do Android, você pode considerar evitar o uso do hintText recurso, pois não é oficialmente suportado.
Vistas ocultas do Android retornando resultados
Você pode ver resultados para vistas que estão ocultas atrás de outras vistas na tela. Essas vistas 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 essas vistas, você pode desconsiderar os problemas correspondentes. Eles não exigem 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 é exigida 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 de 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 contornar esse problema, você deve importar a biblioteca ML Kit em seu projeto manualmente. No build.gradle arquivo do seu aplicativo, adicione o seguinte sob dependências:
implementation 'com.google.mlkit:text-recognition:16.0.1'
Regra de Espaçamento do Alvo de Toque e Jetpack Compose
A regra de Espaçamento do Alvo de Toque atualmente não está sendo executada em nenhum componente deslizante 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 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
// }
}
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 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 visível na tela antes de realizar a verificação.
Aplicativo Analyzer: Botão de Ação Flutuante Desaparece
Introduzida com a API 31 (Android 12) está a capacidade de ocultar sobreposições que não são do sistema. Para utilizar o aplicativo axe Analyzer, certifique-se de que essa configuração não está ativada. Se você optou por utilizar esse recurso por suas melhorias de segurança, recomendamos deixá-lo desativado para versões de teste internas, 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 usar o aplicativo axe Accessibility Analyzer, atualize todas as chamadas para o método setHideOverlayWindows(true) para setHideOverlayWindows(false) nas janelas de atividade afetadas.
Captura de Tela Ausente (Caixa Preta) no Painel
Para desbloquear toda a funcionalidade do axe DevTools para Mobile, certifique-se de que as capturas de tela estão habilitadas. Recomendamos habilitar capturas de tela em uma versão de depuração ou teste do seu aplicativo que use dados simulados para evitar preocupações de segurança. Consulte nosso guia para habilitar capturas de tela em aplicativos Android.
Falha quando `minifiedEnabled` está configurado 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 minimização para as construções de depuração com axe DevTools implementado. (#729)
Compilações com r8 ativado lançam 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
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 agnósticas de layout para continuar recebendo atualizações. Se continuar a usar as APIs Compose e encontrar um erro como `Esperava exatamente '1' nó, mas encontrou '2' nós que satisfazem: (éRaiz)` ou `Nenhuma Visualização inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?`, por favor consulte a API Compose setTestTag.
Mensagem de log:MlKitContext has not been initialized
Se encontrar esta mensagem, alguns resultados de regras podem não retornar como esperado quando essa regra está 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 às limitações da arquitetura do aplicativo MAUI na renderização no ecossistema Android, a regra de Nome de Texto Editável será exibida como Precisa de Revisão no painel quando uma falha for suspeita para a versão 5.5.0 do SDK e superiores. Por favor, confirme o comportamento correto manualmente para este caso.
Android Nativo: Diálogos / Modais Personalizados
Quando 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 tecnologia assistiva conforme desejado.
Painel Web
Captura de Tela Ausente
Se a captura de tela estiver ausente na página de detalhes da análise, seu aplicativo pode estar impedindo que capturas de tela sejam tiradas. Muitas vezes isso é por motivos de segurança no seu aplicativo em produção. Considere remover essa exigência para sua compilação de teste para permitir a funcionalidade total no Painel Mobile do axe DevTools.
Alguns nomes de análises Android estão sem formatação
Alguns nomes de análises Android que são padrão para o título da tela aparecerão como o nome completo da classe incluindo o identificador de 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 uma solução alternativa, você pode definir o nome da análise a partir do painel ou frameworks. (#1643)
