Notas de Lançamento do Axe DevTools Mobile - 28 de fevereiro de 2024
28 de fevereiro de 2024
Versões dos Componentes
- axeDevToolsXCUI v2.9.1
- axe-devtools-android v5.2.0
O que há de novo?
Solução Appium Melhorada
- Uma solução aprimorada para usar o Appium foi lançada em 14 de fevereiro. Veja as notas de lançamento.
Android
- O método connect() para autenticação no servidor do Axe DevTools Mobile está sendo descontinuado em favor de loginWithUsername() ou loginWithApiKey(). Referência da API
- Uma nova API agora está disponível e permite que você use tags de teste para localizar e verificar um composable específico em layouts do Jetpack Compose. Isso pode ser útil quando uma tela tem uma mistura de Jetpack Compose e layouts XML. Exemplo
Correções de Bugs
iOS
- Corrigido um falso negativo na regra Nome do Controle Ativo onde um
searchBarTextFieldsem um rótulo acessível estava passando incorretamente na regra. - Corrigido um falso positivo com a regra de Contraste de Cor em campos de texto quando o cursor está presente. Quando um campo de texto parece estar sendo editado, vamos colocá-lo no status “Precisa de Revisão” em vez de “Reprovado”.
Android
- Corrigido um problema onde o Mobile Analyzer às vezes falhava ao analisar aplicativos multiplataforma.
- Corrigidos falsos positivos com as regras de Texto Focável e Nome de Elementos Aninhados em execução para visões que não estavam visíveis para o usuário. A regra não será mais executada a menos que a visão esteja visível na tela.
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 sobre uma solução alternativa identificada se nenhuma estiver listada.
- Os testes automatizados do Axe DevTools Mobile operam em aplicações nativas iOS, nativas Android e React Native. Entre em contato com seu representante Deque para soluções de testes de acessibilidade na sua tecnologia.
- Embora você possa obter alguns resultados de visualizações web ou PDFs renderizados, recomendamos fortemente o uso do Axe DevTools para Web ou do Axe Monitor para testes de acessibilidade mais abrangentes para a web.
Axe DevTools Mobile para iOS
Erro no Projeto do Analyzer & Teste por ID do Bundle em 2.8.1
A funcionalidade de testar uma aplicação pelo identificador do bundle foi quebrada na versão 2.8.1, resultando no erro intitulado "Nenhum caminho de aplicação alvo especificado via configuração de teste: ...". Atualize para 2.8.2 ou a versão mais recente para resolver o erro. Atualize para a versão mais recente dentro do projeto do Analyzer para iOS.
Visões fora da tela podem mostrar resultados para aplicativos SwiftUI testados no iOS 17
Com a versão 2.8.0 (Ver Notas de Lançamento), os resultados não são mais reportados em visões que não são visíveis, incluindo fora da tela ou ocultadas por outra visão. Descobrimos que em aplicativos SwiftUI sendo testados no iOS 17, alguns resultados ainda aparecem. (#1383)
Regra de Suporte a Tipo Dinâmico não funciona com o simulador do iOS 15 Pro
Há um problema afetando 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 será capaz de 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)
Falso Positivo: Nome do Controle Ativo em Visão de Rolagem
Estamos trabalhando ativamente em correções para os seguintes falsos positivos e atualizaremos esta lista à medida que as correções forem lançadas.
In Scroll View
Pode reportar problemas para textos dentro de elementos com comportamento de banner. Para tornar esses elementos disponíveis para aqueles que necessitam de texto maior, use UILargeContentViewer. (#622)
ActiveControlName
Se uma UIImageView tem um `accessibilityIdentifier` definido mas não é focalizável pelo VoiceOver, e tem controles focalizáveis aninhados dentro dela, o ActiveControlName pode reportar um falso positivo sobre a UIImageView. Remover o `accessibilityIdentifier` resolve a questão. Um bug foi registrado com a Apple. (#1226)
Falso Negativo: Nome da Visão de Imagem, Texto Focável no iOS 13 até iOS 14.8.1
Estamos trabalhando ativamente em correções para os seguintes falsos negativos e atualizaremos esta lista à medida que as correções forem lançadas.
Image View Name
Se um UIImageView possuir um `accessibilityIdentifier` definido, mas não puder ser focalizado pelo VoiceOver, o ImageViewName pode relatar um falso negativo no UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi registrado na Apple. (#1226)
Focusable Text
Elementos marcados como não acessíveis podem relatar resultados incorretos devido a um bug no framework da Apple.
Axe DevTools Mobile para Android
Falha ao usar Proguard
Se sua build de depuração ou teste estiver utilizando Proguard, siga os passos para ignorar a Deque em suas configurações do Proguard.
Falha quando `minifiedEnabled` está definido como true
Se ao minimizar sua build, ocorrer um crash 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 builds de depuração com o Axe DevTools implementado. (#729)
Builds com r8 habilitado geram um erro
Uma build 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.** { *; }
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()?
Se você encontrar um erro semelhante a `Esperado exatamente '1' nó, mas foram encontrados '2' nós que satisfazem: (isRoot)` ou `Nenhuma Visualização inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?`, por favor, consulte a API Compose setTestTag.
Painel do Axe DevTools Mobile
Captura de Tela Ausente
Se a captura de tela estiver ausente da página de detalhes da verificação, seu aplicativo pode estar impedindo que capturas de tela sejam tiradas. Frequentemente, isso ocorre por razões de segurança na sua aplicação de produção. Considere remover esse requisito para sua compilação de teste para permitir funcionalidade total no Painel do Axe DevTools Mobile.
Alguns nomes de varredura do Android estão sem formatação
Alguns nomes de varredura 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 futura versão, 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 dashboard ou frameworks. (#1643)
Axe DevTools Mobile para Appium
Falso Positivo: Nome da Visualização Ativa
Devido a limitações nas informações disponíveis via a plataforma Appium, identificamos um falso positivo para Nome da Visualização Ativa ao usar a labeledBy propriedade para fornecer um rótulo para um elemento de botão. Estamos explorando soluções e esperamos um correção em uma futura atualização.
React Native: Rótulo No Nome & Rótulo No Início
Devido a limitações nas informações disponíveis via a plataforma Appium, identificamos que as regras Rótulo No Nome & Rótulo No Início não conseguem ser executadas para aplicativos construídos com React Native. Estamos explorando soluções e esperamos uma correção em uma futura atualização.
React Native: Inspecionar Hierarquia de Visualização Mostrando Tela Anterior
Às vezes, a propriedade page source do Appium precisa de tempo extra para ser atualizada entre as varreduras. Se isso acontecer, você verá a hierarquia de visualização de uma tela anterior ao usar o recurso de inspeção no dashboard. Para corrigir, adicione um pequeno tempo de espera antes de chamar a API page source para iniciar a varredura de acessibilidade. Exemplo:
await driver.pause(1000);
const result = await driver.getPageSource();
