Notas de Lançamento do axe DevTools Mobile em 27 de março de 2024
27 de março de 2024
Versões dos Componentes
- axe-devtools-android v5.3.0
- Plugin axeDevToolsMobile para Appium v2.0.0
O que há de novo?
Appium
- Mudança Radical - Com base no feedback dos clientes, fizemos as seguintes alterações para tornar nosso plugin Appium mais fácil de usar.
- Não exigimos mais que você use o método do driver Appium
page sourcepara iniciar uma verificação de acessibilidade. Em vez disso, agora você usará a funcionalidade do driverexecute script. Isso significa que você tem a liberdade de usar o métodopage sourcepara outros fins nos seus testes Appium. Por favor, observe: Quando você executar nosso script, iremos recuperar automaticamente a fonte da página. Se você já tiver recuperado a fonte da página durante seu teste, passe-a ao executar nosso script para evitar recuperá-la duas vezes. - Você não precisa mais definir uma capacidade para o
key. Em vez disso, você passará sua chave de API para o nosso script. - Veja o guia de migração para atualizar da v1.0.0 para v2.0.0.
- Começando? Consulte a documentação do Appium para instruções de configuração e exemplos.
- Não exigimos mais que você use o método do driver Appium
Correções de Bugs
Android
- Corrigido um problema onde salvar resultados localmente de testes automatizados não funcionava com a versão 8 ou superior do Gradle.
Problemas Conhecidos
Se você estiver enfrentando algum dos problemas abaixo, por favor, entre em contato conosco em helpdesk@deque.com ou support.deque.com. Assim, poderemos notificá-lo uma vez que o problema seja resolvido ou sobre uma solução alternativa identificada, se nenhuma estiver listada.
- Os testes automatizados do axe DevTools Mobile rodam em aplicativos nativos iOS, Android nativo e React Native. Por favor, entre em contato com seu representante Deque para soluções de teste de acessibilidade na sua pilha tecnológica.
- Embora você possa obter alguns resultados de visualizações web ou PDFs renderizados, recomendamos fortemente o teste usando o axe DevTools for Web ou o axe Monitor para os testes de acessibilidade mais abrangentes para a web.
axe DevTools Mobile para iOS
Erro no Projeto Analisador & Teste por Bundle ID na v2.8.1
A funcionalidade com testes de aplicação por identificador de pacote foi quebrada na versão 2.8.1, resultando em um erro intitulado "Nenhum caminho de aplicação 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 o mais recente dentro do projeto Analisador para iOS.
Visualizações fora da tela podem mostrar resultados para apps SwiftUI testados no iOS 17
Com a versão 2.8.0 (Veja as Notas de Lançamento), os resultados não são mais reportados em visualizações que não estão visíveis, incluindo fora da tela ou escondidas por outra visualização. Descobrimos que, em aplicações SwiftUI sendo testadas no iOS 17, alguns resultados ainda aparecem. (#1383)
A regra Suporta 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 regra Suporta Tipo Dinâmico de ser executada. Se você estiver inscrito na regra Suporta Tipo Dinâmico, não poderá testá-la usando um simulador do iPhone 15 Pro. Um bug foi registrado com a Apple.
Regras contra Controles Aninhados
Ao analisar 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: Em Scroll View, ActiveControlName
Estamos ativamente trabalhando em 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 banner. Para tornar esses elementos disponíveis para aqueles que requerem texto maior, use UILargeContentViewer. (#622)
ActiveControlName
Se uma UIImageView tiver um `accessibilityIdentifier` definido, mas não for focável pelo VoiceOver, e tiver controles focáveis aninhados dentro dela, ActiveControlName pode relatar um falso positivo na UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi registrado com a Apple. (#1226)
Falso Negativo: Nome da Visualização da Imagem, Texto Focável no iOS 13 até iOS 14.8.1
Estamos ativamente trabalhando em correções para os seguintes falsos negativos e atualizaremos esta lista à medida que as correções forem lançadas.
Image View Name
Se uma UIImageView tiver um `accessibilityIdentifier` definido, mas não for focável pelo VoiceOver, ImageViewName pode relatar um falso negativo na UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi registrado com a Apple. (#1226)
Focusable Text
Elementos marcados como não-acessíveis podem relatar resultados impróprios 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 o Proguard, siga os passos para ignorar Deque nas suas configurações do Proguard.
Falha quando `minifiedEnabled` está definido como true
Se você estiver minimizando sua build, 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 depuração com axe DevTools implementado. (#729)
Compilações 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 do tipo `Esperado exatamente '1' nó, mas encontrados '2' nós que satisfazem: (isRoot)` ou `Nenhuma View inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?`, consulte API Compose setTestTag.
Painel do axe DevTools Mobile
Captura de Tela Ausente
Se a captura de tela estiver ausente na página de detalhes da varredura, seu aplicativo pode estar impedindo que capturas de tela sejam tiradas. Muitas vezes isso acontece por razões de segurança no seu aplicativo de produção. Considere remover esse requisito para sua build de teste para permitir a funcionalidade completa 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 padrão para o título da tela, aparecerão como o nome completo da classe, incluindo o identificador do pacote. Em um futuro lançamento, 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)
axe DevTools Mobile para Appium
Falso Positivo: Nome da Visualização Ativa
Devido às limitações nas informações disponíveis através da 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 uma correção em um futuro lançamento.
React Native & .NET MAUI: Rótulo no Nome & Rótulo na Frente
Devido às limitações nas informações disponíveis através da plataforma Appium, identificamos que as regras Rótulo no Nome & Rótulo na Frente não podem ser executadas para aplicativos construídos com React Native. Estamos explorando soluções e esperamos uma correção em um futuro lançamento.
React Native: Inspecionar Hierarquia de Visualização Mostrando Tela Anterior
Às vezes, a propriedade fonte da página do Appium precisa de tempo extra para ser atualizada entre as varreduras. Se isso acontecer, você verá a hierarquia de visualizações da tela anterior ao usar o recurso de inspeção no painel. Para corrigir, adicione um pequeno tempo limite antes de chamar a API de fonte da página para iniciar a varredura de acessibilidade. Exemplo:
await driver.pause(1000);
const result = await driver.getPageSource();
