Notas de Lançamento do axe DevTools Mobile de 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 se alinhar com nosso produto web. O painel possui um novo visual, sem apresentar gráfico, contagem total de problemas ou pontuação de acessibilidade. Essa pontuação antes considerava cada problema e sua respectiva gravidade. Agora, os usuários podem obter uma pontuação para cada varredura. O problema mais grave nessa tela determina a pontuação. O recurso 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 nesse grupo. Você ainda pode clicar em varreduras individuais para então ver todos os problemas encontrados em cada varredura.
Correções
- Várias melhorias de 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 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, caso nenhuma esteja listada.
- Os testes automatizados do axe DevTools Mobile são executados em aplicativos nativos iOS, Android nativo e React Native. Entre em contato com seu representante Deque para soluções de teste de acessibilidade na sua stack tecnológica.
- Embora você possa obter alguns resultados de visualizações web ou PDFs renderizados, recomendamos fortemente testar usando o axe DevTools para Web ou o axe Monitor para obter os testes de acessibilidade mais abrangentes 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
Introduzido 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 esta configuração não esteja ativada. Se você optou por usar esse recurso para seus aprimoramentos de segurança, recomendamos deixá-lo desativado para compilações de teste internas 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 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 a funcionalidade completa do axe DevTools para Mobile, assegure-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 utilize 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 estiver minimizando sua compilação, 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 minificação para suas construções de depuração com o 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 da página de detalhes da varredura, seu aplicativo pode estar impedindo que capturas de tela sejam tiradas. Muitas vezes isso ocorre por razões de segurança em seu aplicativo de produção. Considere remover esse requisito para sua build de teste para permitir funcionalidade completa no Painel Mobile do axe DevTools.
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)
