Notas da versão do axe DevTools Mobile de 21 de maio de 2025

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

21 de maio de 2025

Not for use with personal data

Versões dos Componentes

iOS

  • iOS SDK (axeDevToolsXCUI v2.15.0)
  • Analisador iOS (axe-devtools-mobile-analyzer v1.4.11)
  • Driver iOS Appium (axe-appium-xcuitest-driver v1.4.0)

Como atualizar: iOS SDK, Analisador iOS, Driver iOS Appium

Android

  • Android SDK (axe-devtools-android v6.3.0)
  • Analisador Android (axe Accessibility Analyzer v1.13.0)
  • Driver Android Appium (axe-appium-uiautomator2-driver v1.4.1)

Como atualizar SDK Android, Analisador Android, Driver Android Appium

Novidades

Alinhamento de Fontes de Regras

Agora, ao referenciar nossas regras de acessibilidade, você descobrirá que elas se alinham diretamente com os critérios de sucesso das Diretrizes de Acessibilidade para Conteúdo Web (WCAG) ou são consideradas uma Melhor Prática definida por uma nota no WCAG, conselho de especialistas da Deque em A11y ou recomendações da Apple e Google.

SDK Android e App do Analisador

Implementada uma nova e melhorada forma de testar a Orientação de Tela.

Regras Experimentais desativadas por padrão

Para alinhar com o comportamento do axe DevTools para Web, desativamos as regras experimentais por padrão no painel do axe DevTools Mobile. Saiba mais sobre regras experimentais e como você pode ativá-las se desejar.

Correções

iOS

  • As regras não levantarão mais problemas para controles dentro do teclado fornecido pelo OS
  • Melhorias na precisão das regras de Rótulo no Nome e Controle Ativo

Android

  • Melhorou o tratamento de erros para uma exceção ao coletar AccessibilityNodeInfo
  • Ajustada a implementação do MLKit para reduzir incompatibilidades de versão
  • Melhorias na precisão das regras de Nome do EditText e Contraste de Cor

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 de uma solução alternativa identificada, caso nenhuma esteja listada.

important
  • 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 para sua pilha de tecnologia.
  • Embora você possa obter alguns resultados de visualizações web ou PDFs renderizados, recomendamos fortemente o uso do axe DevTools para Web ou axe Monitor para os testes de acessibilidade mais abrangentes para a web.

iOS

Color Contrast rule does not run when text and background colors are the same

Our Color Contrast rule depends on Machine Learning to detect text, which ensures that the text being scanned is visible to users of your application. In cases where the text contained in a view is the same color as the background, our Machine Learning algorithm is unable to detect if any text is present, so the Color Contrast rule does not run on this view.

Não é possível executar varreduras em dispositivos físicos com o iOS Analyzer 1.4.7

Uma configuração no iOS Analyzer 1.4.7 impede que as varreduras sejam executadas, retornando a mensagem "Teste Falhou". Para executar varreduras em um dispositivo físico, atualize para a versão mais recente do projeto iOS Analyzer.

Erro no Projeto Analyzer e Teste por ID de Pacote na versão 2.8.1

A funcionalidade de testar um aplicativo pelo identificador de pacote foi quebrada na versão 2.8.1, resultando em um erro intitulado "Nenhum caminho de aplicativo alvo especificado via configuração de teste: ...". Atualize para a versão 2.8.2 ou a última versão para resolver o erro. Atualize para a versão mais recente dentro do projeto iOS Analyzer.

Erro "Não foi possível serializar AxeResult" no Projeto Analyzer v1.2.0 & SDK v2.12.3

Escanear alguns aplicativos com esta versão do analyzer e SDK resultaria em um erro "Não foi possível serializar AxeResult". Atualize para a versão mais recente para resolver o erro. Atualize para a versão mais recente do projeto iOS Analyzer.Atualize para a versão mais recente do SDK iOS.

Falso Positivo: LabelInName e LabelAtFront em SwiftUI & Apps Multiplataforma

Algumas telas podem relatar falsos positivos com LabelInName e LabelAtFront devido a uma propriedade associatedText incorreta ser encontrada (#1622)

Regra de Suporte ao 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 que a regra de Suporte ao Tipo Dinâmico seja executada. Se você optou pela regra de Suporte ao Tipo Dinâmico, não poderá testá-la usando o simulador do iPhone 15 Pro. Um bug foi reportado para a Apple.

Regras contra Controles Aninhados

Ao procurar uma melhoria para nossas regras, descobrimos que no XCTest, os controles aninhados não são retornados na árvore de acessibilidade. Um bug foi reportado para a Apple. (#1110)

Regra de Nome do ImageView Precisa Revisar Resultados para Aplicativos UIKit

Nos aplicativos UIKit, uma imagem sem um `accessibilityLabel` não é focável com tecnologia assistiva por padrão.
As propriedades que usamos para verificar a focabilidade da Apple podem ser imprecisas quando um `accessibilityIdentifier` é definido na imagem. Devido a este comportamento inesperado, os resultados das questões de Nome do ImageView nos aplicativos UIKit serão relatados como Necessitando de Revisão. Um relatório de bug foi feito para a Apple. (#1633)

Falso Positivo: Em Scroll View, Label In Name, Label at Front, e v2.11.0 Nome de ImageView & ActiveControlName

Estamos trabalhando ativamente em correções para os seguintes falsos positivos e atualizaremos esta lista conforme as correções forem liberadas.

In Scroll View
Pode relatar problemas para texto dentro de elementos que se comportam como faixas. 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 focável pelo VoiceOver, e tiver controles focáveis aninhados dentro dele, o ActiveControlName pode reportar um falso positivo no UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi reportado para a Apple. (#1633)

Label In Name and Label At Front
Estas duas regras procuram 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 estas regras falhem. (#1622)

Android

A regra de Contraste de Cor não é executada quando as cores do texto e do fundo são iguais

Nossa regra de Contraste de Cor depende de aprendizado de máquina para detectar texto, o que garante que o texto analisado seja visível para os usuários do seu aplicativo. Em casos onde o texto contido em uma visualização é da mesma cor que o fundo, nosso algoritmo de aprendizado de máquina não consegue detectar se há algum texto presente, então a regra de Contraste de Cor não é executada nessa visualização.

EditTextName no Android 7 (SDK 24-25)

Aplicativos escritos em XML que utilizam o recurso de texto sugestivo podem ver falsos positivos com a regra EditTextName . O texto sugestivo não foi introduzido até o Android 8 (SDK 26). Usar este elemento em seu aplicativo XML atribuirá o texto sugestivo ao valor do campo de entrada de texto. Versões mais recentes do Android estão melhor equipadas para tornar essa experiência acessível.

Para superar este problema, nossa primeira recomendação é executar seus testes em versões mais recentes do Android. Se for importante que o aplicativo seja acessível em versões anteriores do Android, no entanto, você pode considerar evitar o uso do recurso hintText , pois não é oficialmente suportado.

Visualizações ocultas do Android retornando resultados

Você pode ver resultados para visualizações que estão ocultas atrás de outras visualizações na tela. Estas visualizações ocultas não estão acessíveis para tecnologia assistiva, mas o axe DevTools Mobile ainda as relata como problemas.

Estamos trabalhando em uma solução para este problema complexo. Enquanto isso, se o TalkBack não puder alcançar essas visualizações, você pode desconsiderar as questões correspondentes. Elas não precisam de correção para garantir a acessibilidade.

Erro ao executar Detecção de Texto com ML Kit

A detecção de texto do ML Kit é necessária em muitas das regras do axe DevTools Mobile para garantir a precisão dos resultados. A biblioteca ML Kit deve ser importada automaticamente ao referenciar o axe DevTools Mobile em seus testes automatizados Espresso ou UIAutomator. Em alguns casos, no entanto, a importação automática não acontece e você verá o seguinte erro no logcat:

Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.

Para superar este problema, você deve importar a biblioteca ML Kit manualmente em seu projeto. No arquivo build.gradle do seu aplicativo, adicione o seguinte em dependências:

implementation 'com.google.mlkit:text-recognition:16.0.1'

Espaçamento de Alvo de Toque e Jetpack Compose

A regra de Espaçamento de Alvo de Toque não está sendo executada em nenhum componente de controle deslizante escrito em Jetpack Compose. Nenhuma ação pode ser tomada no momento. No entanto, uma correção está a caminho!

Erro ao salvar resultados localmente na API 30

No Android API 30, um dos locais onde tentamos salvar os resultados localmente apresenta 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 em busca de acessibilidade, certifique-se de que ele está totalmente visível 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 está ativada. Se você optou por utilizar este recurso por suas melhorias de segurança, recomendamos deixá-lo desativado para builds de teste internos 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) nas janelas de atividade afetadas. setHideOverlayWindows(false) 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 problemas de segurança. Confira nosso guia para

habilitar capturas de tela em apps Android. Falha quando `minifiedEnabled` está definido como true

Se você estiver minimizando sua build, poderá 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 builds de depuração com axe DevTools implementado. (#729)

Builds com r8 habilitado geram um erro

Um build com r8 habilitado pode tentar minimizar a biblioteca axeDevTools, resultando em um erro similar a:

Mensagem de erro similar 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.** { *; }

ou:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
As APIs Compose estão obsoletas, por favor, utilize as No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?

APIs agnósticas a layout para continuar recebendo atualizações. Se você continuar usando as APIs Compose e encontrar um erro como `Esperado exatamente '1' nó, mas encontrado '2' nós que satisfazem: (isRoot)` ou `Nenhuma View inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?`, consulte API Compose setTestTag .Mensagem de log:

Se você 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)MlKitContext has not been initialized

MAUI: Regra Nome do Texto Editável

Devido a limitações da arquitetura de aplicativos MAUI na renderização do ecossistema Android, a regra Nome do Texto Editável aparecerá como Necessita Revisão no painel quando uma falha for 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. Nesse caso, recomendamos não executar nossa ferramenta contra esses modais ou diálogos personalizados e, em vez disso, verificá-los manualmente para garantir que se comportem com a 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. Frequentemente, isso ocorre por razões de segurança em seu aplicativo de produção. Considere remover essa exigência para sua build de teste para permitir a funcionalidade completa no Painel Mobile do axe DevTools.

Android - FLAG_SECURE

Alguns nomes de varreduras 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 alternativa, você pode definir o nome da varredura a partir do painel ou das estruturas. (#1643)

Some Android scan names that are defaulted to the screen title will appear as the full class name including the bundle identifier. In a future release, this will be resolved so that the screen title is formatted into a more readable name. As a workaround, you can set the scan name from the dashboard or frameworks. (#1643)