Notas de Lançamento do Axe DevTools Mobile em 21 de janeiro de 2025
21 de janeiro de 2025
Novidades?
Pontuação de Acessibilidade
Alteramos o algoritmo de pontuação de acessibilidade do Axe DevTools Mobile para alinhar com o nosso produto web. O painel tem um novo visual, que não apresenta mais um gráfico, a contagem total de problemas ou a pontuação de acessibilidade. Essa pontuação anteriormente considerava cada problema e sua respectiva gravidade. Agora, os usuários podem obter uma pontuação para cada varredura. O problema mais grave naquela tela determina a pontuação. A funcionalidade de varredura em grupo agora inclui uma pontuação de acessibilidade calculada a partir da média das pontuações de cada uma das varreduras incluídas dentro desse grupo. Você ainda pode clicar em varreduras individuais para então ver todos os problemas encontrados em cada varredura.
Correções
- Várias melhorias para acessibilidade no Painel do Axe DevTools Mobile
- Corrigido um problema com a varredura errada sendo exibida no recurso de varreduras em grupo
Problemas Conhecidos
Se você estiver enfrentando qualquer um dos problemas abaixo, por favor, entre em contato conosco em helpdesk@deque.com ou support.deque.com. Assim, poderemos notificá-lo uma vez que esteja resolvido ou sobre uma solução alternativa identificada caso nenhuma esteja listada.
- Os testes automatizados do Axe DevTools Mobile rodam em aplicativos nativos iOS, nativos Android e React Native. Por favor, entre em contato com seu representante da Deque para soluções de teste de acessibilidade no seu conjunto tecnológico.
- Embora você possa obter alguns resultados de visualizações da web ou PDFs renderizados, recomendamos fortemente testar usando o Axe DevTools para Web ou o Axe Monitor para um teste de acessibilidade mais abrangente para a web.
iOS
Erro no Projeto do Analyzer & Testes por ID do Bundle na versão 2.8.1
A funcionalidade de testar um aplicativo pelo identificador de bundle foi quebrada na versão 2.8.1, o que resultou 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 mais recente para resolver o erro. Atualize para a última dentro do projeto do Analyzer iOS.
Erro "Could not Serialize AxeResult" no Projeto do Analyzer v1.2.0 & SDK v2.12.3
A varredura de alguns aplicativos com esta versão do analyzer e SDK resultaria em um erro "Could not Serialize AxeResult". Atualize para a versão mais recente para resolver o erro. Atualize para o projeto do Analyzer iOS mais recente.Atualize para o SDK iOS mais recente.
Falso Positivo: LabelInName e LabelAtFront em SwiftUI & Apps Multiplataforma
Algumas telas podem relatar falsos positivos com LabelInName e LabelAtFront devido à 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 execução da regra de Suporte a Tipo Dinâmico. Se você se inscreveu para a regra de Suporte a Tipo Dinâmico, não será possível testá-la usando um simulador do iPhone 15 Pro. Um bug foi reportado à Apple.
Regras contra Controles Aninhados
Ao revisar uma melhoria para nossas regras, descobrimos que no XCTest, controles aninhados não são retornados na árvore de acessibilidade. Um bug foi reportado à Apple. (#1110)
Regra do Nome do ImageView Precisa de Revisão de Resultados para Apps UIKit
Em aplicativos UIKit, uma imagem sem um `accessibilityLabel` não é focável por tecnologia assistiva por padrão.
As propriedades que usamos para verificar o foco da Apple podem ser imprecisas quando um `accessibilityIdentifier` é definido na imagem. Devido a esse comportamento inesperado, os resultados para problemas no Nome do ImageView em apps UIKit serão relatados como Necessitam de Revisão. Um relatório de bug foi enviado para a Apple. (#1633)
Falso Positivo: No Scroll View, Label In Name, Label at Front, e v2.11.0 Image View Name & ActiveControlName
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 relatar problemas para texto dentro de elementos com comportamento de banner. 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 focado pelo VoiceOver, e tiver controles focáveis aninhados dentro dele, o ActiveControlName pode relatar um falso positivo no UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi reportado à Apple. (#1633)
Label In Name and Label At Front
Essas duas regras procuram por um 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
Na API 30 do Android, um dos locais onde tentamos salvar resultados localmente possui um erro de permissões. O resultado ainda será salvo como um arquivo JSON apesar deste 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 Analyzer: Botão de Ação Flutuante Desaparece
Introduzida no API 31 (Android 12) está a capacidade de ocultar sobreposições que não sejam do sistema. Para utilizar o app Axe Analyzer, certifique-se de que essa configuração não esteja ativada. Se você optou por utilizar essa funcionalidade pelos seus aprimoramentos de segurança, recomendamos mantê-la desativada para builds de testes internos onde você pode utilizar 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 app Axe Accessibility Analyzer, atualize quaisquer chamadas para o método setHideOverlayWindows(true) para setHideOverlayWindows(false) nas janelas de atividades 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 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 preocupações de segurança. Confira nosso guia para habilitar capturas de tela em aplicativos Android.
Falha quando `minifiedEnabled` está configurado como verdadeiro
Se minificar seu build, você verá 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 minificação para seus builds de depuração com Axe DevTools implementado. (#729)
Compilações com r8 habilitado lançam um erro
Uma compilação 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()?
As APIs Compose estão obsoletas, por favor use as APIs agnósticas de layout para continuar recebendo atualizações. Se continuar usando as APIs Compose e encontrar um erro do tipo `Esperava exatamente '1' nó mas encontrou '2' nós que satisfazem: (éRaiz)` ou `Nenhuma View inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?`, consulte 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 estiver utilizando inteligência artificial. Regras afetadas incluem Contraste de Cor, Texto Focável e Nome de Elemento Aninhado. (#841)
MAUI: Regra Nome de Texto Editável
Devido a limitações da arquitetura do aplicativo MAUI no ecossistema Android, a regra Nome de Texto Editável aparecerá como Necessitando de Revisão no painel quando uma falha for suspeitada para a versão 5.5.0 do SDK e superiores. Por favor, confirme o comportamento correto manualmente nesse caso.
Android Nativo: Diálogos / Modais Personalizados
Ao implementar 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 rodar 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 varredura, seu aplicativo pode estar impedindo que capturas de tela sejam tiradas. Muitas vezes, isso é por razões de segurança em seu aplicativo de produção. Considere remover essa exigência para o seu build de teste para permitir a funcionalidade completa no Painel do Axe DevTools Mobile.
Alguns nomes de varredura Android estão sem formatação
Alguns nomes de varredura Android que são definidos como 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 uma solução alternativa, você pode definir o nome da varredura a partir do painel ou frameworks. (#1643)
