Notas de Lançamento do axe DevTools Mobile de 16 de janeiro de 2025
16 de janeiro de 2025
Versões dos Componentes
- iOS SDK (axeDevToolsXCUI v2.13.0)
- Analisador iOS (axe-devtools-mobile-analyzer v1.4.5)
- Driver iOS Appium (axe-appium-xcuitest-driver v1.1.0)
Como atualizar: iOS SDK, Analisador iOS, Driver iOS Appium
Correções
- Atualizações para melhorar o desempenho e a precisão das seguintes regras: Texto Associado, Contraste de Cor, Características Conflitantes, Ação Inacessível, Na Visualização de Rolagem, Rótulo no Nome, Rótulo na Frente, Nome de Elementos Aninhados
- A versão mínima do iOS suportada agora é iOS 16
- Problema corrigido com a funcionalidade de Ignorar Regras, especificamente ignorando por identificador de acessibilidade com SwiftUI
Problemas Conhecidos
Se você estiver enfrentando algum dos problemas abaixo, por favor nos contate através do helpdesk@deque.com ou support.deque.com. Assim poderemos notificá-lo assim que estiver resolvido ou se houver uma solução alternativa identificada, caso nenhuma esteja listada.
- Os testes automatizados do axe DevTools Mobile são executados em aplicativos nativos iOS, Android e React Native. Por favor, entre em contato com seu representante Deque para soluções de teste de acessibilidade em sua pilha de tecnologia.
- Embora você possa obter alguns resultados de visualizações da web ou PDFs renderizados, recomendamos fortemente o uso do axe DevTools for Web ou do axe Monitor para o teste mais completo de acessibilidade para a web.
iOS
Erro no Projeto do Analisador e Teste por ID de Pacote na versão 2.8.1
A funcionalidade de testar um aplicativo pelo identificador de pacote foi interrompida na versão 2.8.1, resultando em um erro intitulado "Nenhum caminho de aplicativo alvo especificado via configuração de teste: ...". Atualize para 2.8.2 ou a versão mais recente para solucionar o erro. Atualize para a versão mais recente dentro do projeto iOS Analyzer.
Falso Positivo: LabelInName e LabelAtFront em Apps SwiftUI & Cross Platform
Algumas telas podem reportar 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 do iOS 15 Pro
Há um problema que afeta 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 com a Apple.
Regras contra Controles Aninhados
Ao buscar 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 da ImageView Precisa de Revisão de Resultados 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 focalizabilidade da Apple podem ser imprecisas quando um `accessibilityIdentifier` é definido na imagem. Devido a esse comportamento inesperado, os resultados para problemas de Nome da ImageView em aplicativos UIKit relatarão como Necessita de Revisão. Um relatório de bug foi registrado com a Apple. (#1633)
Falso Positivo: In Scroll View, Label In Name, Label at Front, e Nome da Imagem View & ActiveControlName v2.11.0
Estamos trabalhando ativamente em correções para os seguintes falsos positivos e atualizaremos esta lista conforme as correções forem lançadas.
In Scroll View
Podem relatar problemas para texto dentro de elementos que se comportam como banners. Para tornar esses elementos disponíveis para aqueles que requerem 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 ele tem controles focalizáveis aninhados dentro dele, 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 buscam 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
Erro ao salvar resultados localmente na 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 de este 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 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 totalmente na tela antes de realizar a varredura.
Aplicativo Analisador: Botão de Ação Flutuante Desaparece
Introduzida com a API 31 (Android 12) está a capacidade de ocultar sobreposições não-sistema. Para utilizar o aplicativo axe Analyzer, certifique-se de que essa configuração não esteja ativada. Se você optou por utilizar este recurso para seus aprimoramentos de segurança, recomendamos deixá-lo desativado para versões de teste internas onde você pode utilizar os 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 de Análise de Acessibilidade axe, 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 a funcionalidade completa do axe DevTools para Mobile, certifique-se de que as capturas de tela estão habilitadas. Recomendamos habilitar capturas de tela numa versão de debug ou teste do seu aplicativo que utiliza 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 true
Se estiver minimizando sua build, 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 seus builds de debug com axe DevTools implementado. (#729)
Builds com r8 ativado lançam um erro
Um build 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: (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 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 Nome do Texto Editável
Devido a limitações da arquitetura do aplicativo MAUI em renderizar no ecossistema Android, a regra Nome do Texto Editável aparecerá como Precisa de Revisão no painel quando uma falha é suspeita para a versão 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 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 eles se comportam com a 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 as capturas de tela sejam tiradas. Frequentemente, isso ocorre por razões de segurança em seu aplicativo de produção. Considere remover esta exigência para seu build de teste para permitir funcionalidade total no Dashboard Mobile do axe DevTools.
Alguns nomes de varredura Android estão sem formatação
Alguns nomes de varredura 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 varredura a partir do painel ou dos frameworks. (#1643)
