Notas de Lançamento do Axe DevTools Mobile - 20 de julho de 2026

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

20 de julho de 2026

Not for use with personal data

Versões dos Componentes

Maestro

  • Axe DevTools Mobile para Maestro (axe-devtools-mobile-maestro v1.0.0)
    • (Fork do Maestro v2.6.0)

O que há de novo?

Axe DevTools Mobile para Maestro

O Axe DevTools Mobile para Maestro traz verificação de acessibilidade integrada para Maestro, alimentado pelos SDKs do Axe DevTools para Mobile. Ao executar seus fluxos de teste de UI com ele, você pode facilmente invocar verificações automáticas de acessibilidade diretamente no seu YAML com dois comandos: axeStartScanSession e axeScan.

Problemas Conhecidos

Se você estiver enfrentando qualquer um dos problemas abaixo, entre em contato conosco em helpdesk@deque.com ou support.deque.com. Nós poderemos notificá-lo assim que for resolvido ou informá-lo sobre uma solução alternativa identificada, caso nenhuma seja listada.

important
  • O teste automatizado do Axe DevTools Mobile é executado em aplicativos nativos iOS, Android e React Native. Por favor, entre em contato com seu representante da Deque para soluções de teste de acessibilidade em sua tecnologia.
  • Embora você possa obter alguns resultados de visualizações na web ou PDFs renderizados, recomendamos fortemente o uso do Axe DevTools for Web ou do Axe Monitor para o teste de acessibilidade mais abrangente para a web.

iOS

Contraste de cor pode ser executado em elementos somente com ícones devido ao OCR

A regra de Contraste de Cor usa o framework Vision da Apple (Reconhecimento Óptico de Caracteres, ou OCR) para ler texto dentro dos limites de um elemento. O OCR pode ocasionalmente confundir pequenos glifos parecidos com ícones - como setas para trás (<), marcadores, símbolos decorativos - como texto. Quando isso acontece, a regra de Contraste de Cor é executada em um elemento que não contém texto legível, o que pode produzir um resultado para um botão somente com ícone. Como a saída do OCR não é determinística em diferentes verificações, o mesmo elemento pode aparecer nos resultados de Contraste de Cor em uma verificação e ser reportado como "NÃO APLICÁVEL" na seguinte. Isso é uma característica conhecida do OCR, não um bug na regra.

Para contornar essa questão, você pode usar as ignore APIs para suprimir os resultados de Contraste de Cor para os elementos afetados.



// Ignore Color Contrast for a specific element by accessibility identifier
axeDevTools?.configuration.ignore(rulesFor: [
    "backButton": [AxeRuleId.ColorContrast.toString()]
])

// Ou ignore Contraste de Cor globalmente axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())

Saiba mais sobre ignorando regras.

Falso positivo de Título de Tela em aplicativos Flutter

O Flutter não mapeia AppBar.title para a propriedade de título da tela nativa - UIViewController.title, fazendo com que a regra de Título de Tela falhe em todas as telas Flutter, independentemente de haver um título descritivo presente.

Isso é uma limitação conhecida da plataforma Flutter acompanhada em flutter/flutter#185894.

Falsos positivos para a regra de Contraste de Cor com fundos em degradê em telas pequenas

Ao executar verificações de acessibilidade em tamanhos de tela menores ou com tamanhos de fonte menores, a regra de Contraste de Cor pode relatar falsos positivos para fundos em degradê. Em tais casos, pode não conseguir determinar a cor do primeiro plano e, em vez disso, comparar as cores de fundo entre si, resultando em uma falha.

Para contornar esta questão, tente executar verificações de acessibilidade em dispositivos maiores. Alternativamente, você pode optar por ignorar a regra em seus testes e verificar manualmente o Contraste de Cor para essas visualizações.

isVisible inacuracidade na propriedade do XCTest

As APIs de acessibilidade da Apple podem relatar incorretamente conteúdos web dentro do WKWebView como "isVisible", mesmo quando a visualização web está coberta por sobreposições nativas (como vistas modais, alertas, ou outros elementos de UI nativos). Isso ocorre porque o sistema de acessibilidade verifica se o contêiner do WKWebView em si está visível, em vez de se o conteúdo web está realmente desobstruído e perceptível para o usuário.

Erro de acessibilidade no iOS 26 com seletores

O iOS 26 contém um erro de acessibilidade em que os botões padrão de seletores não anunciam "esmaecido" pela Tecnologia Assistiva para indicar que não estão habilitados. Como resultado, as regras do iOS também veem esses botões como habilitados, mesmo que não estejam. Um relatório de erro foi arquivado com a Apple, mas até que isso seja resolvido, as seguintes regras podem relatar resultados em botões de seletor desativados: AssociatedText, InaccessibleAction, e ColorContrast.

Até que a Apple corrija esse erro, a solução será [ignorar as regras](ios-ignore-rule). Os botões padrão de seletores têm os identificadores "Decrement" e "Increment" e podem ser ignorados por identificador, se necessário.

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.

Falso Positivo: LabelInName e LabelAtFront em SwiftUI & Aplicativos Multiplataforma

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

Regra Supports Dynamic Type não funciona com simulador iOS 15 Pro

Há um problema que afeta o simulador iPhone 15 Pro que impede a execução da regra Supports Dynamic Type. Se você estiver inscrito na regra Supports Dynamic Type, não poderá testá-la usando um simulador iPhone 15 Pro. Um erro foi arquivado 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 erro foi arquivado com a Apple. (#1110)

Regra de Nome de ImageView Precisa de Resultados de Revisão para Aplicativos UIKit

Em 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 esse comportamento inesperado, os resultados para problemas de Nome de ImageView em aplicativos UIKit serão relatados como Necessita de Revisão. Um relatório de bug foi enviado à Apple. (#1633)

Falso Positivo: Em Scroll View, Label In Name, Label at Front e v2.11.0 Nome de Image View & 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
Textos dentro de elementos que se comportam como banners podem ser sinalizados com uma mensagem de "Necessita de Revisão". Para tornar esses elementos acessíveis àqueles 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 relatar um falso positivo no UIImageView. Remover o `accessibilityIdentifier` resolve o problema. Um bug foi relatado à Apple. (#1633)

Label In Name and Label At Front
Essas 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 essas regras falhem. (#1622)

Android

Falsos positivos de Label at Front com texto visível obscurecido

A regra Label at Front verifica se o rótulo visível de um elemento está no início do seu texto anunciado. Um erro na regra pode ocorrer quando o texto visível de um elemento interativo contém uma abreviação (por exemplo, "GB", "km") ou um identificador obscurecido / truncado, e o anúncio de acessibilidade consiste nas palavras representadas (por exemplo, "gigabytes", "quilômetros"), mesmo que este seja o padrão recomendado para tornar o conteúdo abreviado ou truncado amigável para leitores de tela.

Se a primeira parte do rótulo visível de um elemento interativo corresponder ao início do anúncio do leitor de tela e apenas a parte abreviada / obscurecida for diferente, o resultado sinalizado pode ser ignorado com segurança. Verifique com um leitor de tela se o anúncio completo é lido conforme o pretendido.

Potenciais preocupações de acessibilidade para Texto Focável

Ao usar texto decorativo em exibições como "Ícones de Contato", é possível introduzir um problema de acessibilidade. Se você estiver usando uma visualização de texto para exibir letras em vez de gerar imagens com as letras desejadas como vetores, e então declarar que essa visualização de texto não é importante para acessibilidade, não poderemos verificar de forma confiável se você introduziu uma violação de acessibilidade.

Se você editar texto focável para ignorar dois caracteres ou menos, poderá inadvertidamente ignorar muitos botões de uma única palavra em vários idiomas (por exemplo, "OK", "No", "Sí"). Para evitar esses problemas, você deve pegar as letras desejadas da palavra que deseja representar no ícone e gerar as letras como parte da imagem, em vez de visualizações de texto separadas. `FocusableText` então não será executado nessas visualizações.

Falso positivo de Título de Tela em aplicativos Flutter

Flutter não mapeia AppBar.title para a propriedade nativa de título de tela - Activity.setTitle, fazendo com que a regra de Título de Tela falhe em todas as telas Flutter, independentemente de um título descritivo estar presente.

Esta é uma limitação conhecida da plataforma Flutter, rastreada em flutter/flutter#185894.

Falso positivo na detecção de texto anunciado

Em alguns casos, a tecnologia assistiva depende de AccessibilityEvent descrições do sistema Android para anunciar informações ao usuário quando nenhum outro anúncio está disponível. Como AccessibilityEvents são acionados por ações do usuário, não conseguimos acessar a descrição correta se essa informação não for fornecida.

Para evitar esse problema, certifique-se de que todas as visualizações relevantes estejam marcadas como importantes para acessibilidade. Isso permitirá que o Talkback acesse as informações da visualização, que nossa ferramenta poderá então detectar.

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 do aprendizado de máquina para detectar texto, o que garante que o texto sendo escaneado seja visível para os usuários do seu aplicativo. Em casos onde o texto contido em uma visualização tem a mesma cor do fundo, nosso algoritmo de aprendizado de máquina não consegue detectar se algum texto está presente, de modo que a regra de Contraste de Cor não é executada nessa visualização.

EditTextName no Android 7 (SDK 24-25)

Aplicativos escritos com XML que utilizam o recurso de texto de dica podem ver falsos positivos com a regra EditTextName . O texto de dica não foi introduzido até o Android 8 (SDK 26). Usar este elemento em seu aplicativo XML atribuirá o texto de dica 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 esse 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 ele não é oficialmente suportado.

Visualizações ocultas no Android retornando resultados

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

Estamos trabalhando em uma correção para esse problema complexo. Enquanto isso, se o TalkBack não puder alcançar essas visualizações, você pode desconsiderar os problemas correspondentes. Eles não requerem uma correção para garantir a acessibilidade.

Erro ao executar detecção de texto do 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 automaticamente importada ao referenciar o Axe DevTools Mobile em seus testes automatizados do Espresso ou UIAutomator. Em alguns casos, no entanto, a importação automática não ocorre e você verá o seguinte erro no logcat:

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

Para superar esse problema, você deve importar a biblioteca ML Kit em seu projeto manualmente. No build.gradle arquivo de sua aplicação, adicione o seguinte sob dependências:

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

Find a full working example of the ML Kit library being imported in the Android Mobile SDK Getting Started section, under Implementação

Espaçamento de Alvo de Toque e Jetpack Compose

A regra de Espaçamento de Alvo de Toque atualmente não está sendo executada em nenhum componente 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 em que tentamos salvar resultados localmente apresenta um erro de permissão. O resultado ainda será salvo como um arquivo JSON, apesar de esse erro ser exibido. O erro pode ser suprimido comentando o código no bloco a seguir:

def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
	executable "${android.getAdbExecutable().toString()}"
	args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'

// finalizedBy { // fetchAndroidFolderAxeReportsTask // } }
Observe que esse código deve ser comentado apenas na API 30, pois causará problemas ao salvar localmente para outros níveis de API.

Detecção de rolagem em Aplicativos Híbridos e 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 para acessibilidade, certifique-se de que ele esteja totalmente na tela antes de realizar a varredura.

App Analyzer: Botão de Ação Flutuante Desaparece

Introduzida com a API 31 (Android 12) está a habilidade de ocultar sobreposições não-sistema. Para utilizar o aplicativo Axe Analyzer, certifique-se de que essa configuração não esteja ativada. Se você optou por utilizar este recurso devido às suas melhorias de segurança, recomendamos deixá-lo desativado para versões internas de teste onde você pode utilizar dados de teste com segurança e, assim, eliminar preocupações de segurança. 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 todas as chamadas para o método setHideOverlayWindows(true) para setHideOverlayWindows(false) nas janelas de atividade 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 estão habilitadas. Recomendamos habilitar as capturas de tela em uma versão de depuração ou teste do seu aplicativo que utiliza dados simulados para evitar questões de segurança. Confira nosso guia para habilitar capturas de tela em aplicativos Android.

Falha quando minifiedEnabled está definido como verdadeiro

Se compactar seu build, você verá um erro com um log indicando que um adaptador não pôde ser encontrado ao tentar fazer login na biblioteca Axe DevTools. Desative a compactação para seus builds de depuração com Axe DevTools implementados. (#729)

Builds com r8 habilitado apresentam um erro

Um build com r8 habilitado pode tentar compactar a biblioteca axeDevTools, resultando em um 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.** { *; }

Mensagens de erro ao usar APIs Compose

As APIs Compose estão obsoletas, por favor, utilize as APIs independentes de layout para continuar a receber atualizações. Se continuar a usar as APIs Compose e encontrar um erro semelhante a `Esperado exatamente '1' nó, mas encontrados '2' nós que satisfazem: (isRoot)` ou `Nenhuma View inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?`, por favor, consulte API Compose setTestTag.

MAUI: Regra de Nome do Edit Text

Devido às limitações da arquitetura do aplicativo MAUI renderizando no ecossistema Android, a regra de Nome do Edit Text aparecerá como Necessita Revisão no painel quando uma falha for suspeita para a versão 5.5.0 do SDK e superiores. Por favor, confirme o comportamento correto manualmente para este 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 executar nossa ferramenta contra esses modais ou diálogos personalizados e, em vez disso, verificá-los manualmente para garantir que funcionem 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 feitas. Muitas vezes, isso ocorre por razões de segurança em seu aplicativo de produção. Considere remover este requisito do seu build de teste para permitir a funcionalidade completa no Painel Mobile do Axe DevTools.

Alguns nomes de varredura do Android estão sem formatação

Alguns nomes de varredura do Android que são definidos automaticamente como 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 painel ou frameworks. (#1643)