Notas de Lançamento do axe DevTools Mobile de 20 de fevereiro de 2025
20 de fevereiro de 2025
Versões dos Componentes
- iOS SDK (axeDevToolsXCUI v2.14.0)
- iOS Analyzer (axe-devtools-mobile-analyzer v1.4.8)
- iOS Appium Driver (axe-appium-xcuitest-driver v1.2.0)
Como atualizar: iOS SDK, iOS Analyzer, iOS Appium Driver
O que há de novo?
iOS Appium Driver
O recurso Ignorar Regras agora está disponível para o driver do iOS Appium! Consulte a nossa documentação de Ignorar Regras para Appium para obter informações de implementação. Para saber mais sobre como Ignorar Regras ao executar verificações de acessibilidade, veja a nossa documentação de configuração do Appium.
iOS SDK
Tornamos as mensagens de registro de rede mais descritivas. Anteriormente, todos os logs de sucesso incluíam apenas a mensagem 200 OK. Agora você verá mensagens mais descritivas, como DEQUE LOG: 200 OK - User verified. Successfully logged in., impressas no console.
Correções para iOS
- Melhorias na precisão das seguintes regras: Contraste de Cores, Texto Associado, Etiqueta no Nome e Etiqueta na Frente
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 assim que for resolvido ou informar uma solução alternativa, 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 da Deque para soluções de teste de acessibilidade em sua stack de tecnologia.
- Embora você possa obter alguns resultados de visualizações da web ou PDFs renderizados, recomendamos fortemente o uso do axe DevTools para Web ou axe Monitor para os testes de acessibilidade mais abrangentes para a web.
iOS
Incapacidade de Executar Escaneamentos 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 escaneamentos, retornando a mensagem "Teste Falhou". Para executar escaneamentos em um dispositivo físico, atualize para o projeto mais recente do iOS Analyzer.
Erro no Projeto do Analyzer e Teste por ID de Pacote em 2.8.1
A funcionalidade com teste de uma aplicação por identificador de pacote foi quebrada na versão 2.8.1, resultando em um erro intitulado "Nenhum caminho de aplicativo alvo especificado via configuração de teste: ...". Atualize para a versão 2.8.2 ou a versão mais recente para resolver o erro. Atualize para a versão mais recente dentro do projeto do iOS Analyzer.
Erro "Não foi possível Serializar AxeResult" no Projeto do Analyzer v1.2.0 e SDK v2.12.3
Passar algumas aplicações com esta versão do analyzer e SDK resultaria em um erro "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 do iOS mais recente.
Falso Positivo: LabelInName e LabelAtFront em Aplicativos SwiftUI & Cross Platform
Algumas telas podem reportar 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 o simulador iOS 15 Pro
Há um problema que afeta o simulador do iPhone 15 Pro que impede a regra de Suporte a Tipo Dinâmico de ser executada. Se você estiver inscrito na regra de Suporte a Tipo Dinâmico, não será possível 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)
Resultados da Revisão das Regras de Nome em ImageView 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 esse comportamento inesperado, os resultados para problemas de Nome de ImageView em aplicativos UIKit serão reportados como Necessário Revisar. Um relatório de erro foi enviado para a Apple. (#1633)
Falso Positivo: In Scroll View, Label In Name, Label at Front, e Nome de Image View e ActiveControlName v2.11.0
Estamos trabalhando ativamente em correções para os seguintes falsos positivos e atualizaremos esta lista assim que as correções forem liberadas.
In Scroll View
Pode reportar problemas para textos dentro de elementos que se comportam como banner. Para tornar esses elementos acessíveis a quem necessita de texto maior, use UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Se um UIImageView tem um `accessibilityIdentifier` definido, mas não é focalizável pelo VoiceOver, e possui controles focalizáveis aninhados dentro dele, o ActiveControlName pode reportar um falso positivo no UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi reportado para a 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 incorreto próximo pode ser detectado, fazendo com que essas regras falhem. (#1622)
Android
Espaçamento do Alvo de Toque e Jetpack Compose
A regra de Espaçamento do Alvo de Toque atualmente não está funcionando 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 onde tentamos salvar resultados localmente tem um erro de permissão. O resultado ainda será salvo como um arquivo JSON, apesar de esse 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 Aplicativos Híbridos e Cross-Platform
Em alguns aplicativos híbridos e cross-platform, podemos obter resultados inesperados quando itens em uma visualização de rolagem estão parcialmente fora da tela. Para testar um elemento em termos de acessibilidade, certifique-se de que ele esteja totalmente na tela antes de realizar a varredura.
Aplicativo Analyzer: Botão de Ação Flutuante Desaparece
Introduzido com o API 31 (Android 12) está a capacidade de ocultar sobreposições não-sistemáticas. Para utilizar o aplicativo axe Analyzer, certifique-se de que esta configuração não esteja ativada. Se você optou por utilizar este recurso para seus aprimoramentos de segurança, recomendamos deixá-lo desativado para as 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 das atividades afetadas.
Captura de Tela Ausente (Caixa Preta) no Painel
Para desbloquear a funcionalidade completa 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 use dados simulados para evitar problemas de segurança. Consulte nosso guia para habilitar capturas de tela em aplicativos Android.
Falha quando `minifiedEnabled` está definido como true
Se você está minimizando seu build, verá uma falha com um registro de erro indicando que um adaptador não pôde ser encontrado ao tentar fazer login na biblioteca axe DevTools. Desative a minificação para seus builds de depuração com axe DevTools implementado. (#729)
Builds com r8 habilitado geram um erro
Um build com 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 similar 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 você continuar a usar as APIs Compose e encontrar um erro como "Esperado exatamente '1' nó, mas encontrado '2' nós que satisfazem: (isRoot)" ou "Nenhuma Visualização 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 de regra 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 do Texto de Edição
Devido a limitações da arquitetura de aplicativos MAUI ao renderizar no ecossistema Android, a regra de Nome do Texto de Edição será exibida como Necessário Revisar no painel quando uma falha for suspeitada 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
Quando você está implementando diálogos ou modais personalizados que não estendem os controles nativos, você pode obter resultados para visualizações por trá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 a tecnologia assistiva conforme desejado.
Painel da Web
Captura de Tela Ausente
Se a captura de tela estiver ausente na página de detalhes do scan, seu aplicativo pode estar impedindo que capturas de tela sejam feitas. Frequentemente, isso ocorre por razões de segurança em seu aplicativo em produção. Considere remover esse requisito para sua build de teste para permitir funcionalidade completa no Painel do axe DevTools Mobile.
Alguns nomes de scan do Android estão sem formatação
Alguns nomes de scan 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 do scan a partir do painel ou das estruturas. (#1643)
