Notas de Lançamento do Axe DevTools Mobile de 5 de agosto de 2026
5 de agosto de 2026
iOS
- SDK do iOS (axeDevToolsXCUI v4.1.0)
- Aplicativo de Análise para Desktop do iOS (axe-devtools-mobile-desktop-app v1.3.0)
Como atualizar: SDK do iOS, Aplicativo de Análise para Desktop do iOS
Android
- SDK do Android (axe-devtools-android v9.1.0)
- Plugin Gradle para Android (axe-devtools-android-plugin v1.2.0)
- Analisador para Android (Axe Accessibility Analyzer v3.2.0)
Como atualizar Plugin Gradle para Android, Analisador para Android
O que há de novo?
Pular telas ao executar a varredura automática
Você está usando a Varredura Automática com nossos SDKs? Agora você pode pular telas que não devem ser incluídas nos resultados da varredura, envolvendo seções com AxeAutoScan.skipScan. A sessão de varredura é retomada automaticamente quando o bloco termina. Encontre detalhes de implementação da Varredura Automática nas seguintes páginas:
Cobertura WCAG Aumentada
A Deque tem um compromisso contínuo de oferecer e otimizar regras que detectem com precisão problemas reais de acessibilidade. Com este lançamento, estamos expandindo nossa cobertura do WCAG 2.0 promovendo duas regras que anteriormente eram marcadas como experimentais.
iOS
A regra Suporte para Tipo Dinâmico foi promovida a uma regra completa. Esta regra corresponde ao WCAG 2.0, 1.4.4 Redimensionar Texto (AA) e agora é executada por padrão, enquanto antes era opcional. Tipo Dinâmico é um recurso do iOS que permite aos usuários definir um tamanho de fonte preferido para todo o dispositivo. Esta regra verifica se os aplicativos respeitam essa preferência usando fontes escaláveis.
Por favor, observe que esta regra é executada na API de Auditoria de Acessibilidade XCUI da Apple, que requer iOS 17.0+. A regra Suporte para Tipo Dinâmico é executada apenas durante testes direcionados. O suporte para Varredura Automática está chegando em breve!
Saiba mais sobre esta regra de acessibilidade: Suporte para Tipo Dinâmico.
Android
The Inaccessible Action rule for Android has graduated to a full rule, expanding our coverage of WCAG 2.0, 2.1.1 Keyboard (A). This rule checks that the action associated with an interactive element can be both focused e triggered by assistive technology such as TalkBack or Switch Access.
Learn more about this accessibility rule: Ação Inacessível.
Correções
iOS
- Melhorias na precisão da regra de Texto Clipped
Android
- Melhorias na precisão das seguintes regras: Texto Focável, Nome do Texto de Edição, Ação Inacessível e Elemento Focável Aninhado
Depreciações e Remoções
iOS
A propriedade optInToSupportsDynamicType está obsoleta. A regra Suporte para Tipo Dinâmico agora é executada por padrão. Se você anteriormente optou por essa regra, por favor, remova a propriedade do seu código.
Android
As regras de Controle Ativo Aninhado e Nome de Elemento Aninhado foram desativadas e você não verá mais esses problemas sinalizados em seus resultados. Ambas as regras serão removidas - pelo menos temporariamente - em uma data posterior.
Problemas Conhecidos
Se você estiver enfrentando qualquer um dos problemas abaixo, entre em contato conosco em helpdesk@deque.com ou support.deque.com. Poderemos notificá-lo assim que for resolvido ou de uma solução alternativa identificada caso nenhuma esteja listada.
- Os testes automatizados do Axe DevTools Mobile são executados em aplicativos nativos iOS, Android nativos e React Native. Por favor, entre em contato com seu representante da Deque para soluções de testes de acessibilidade na sua pilha de tecnologia.
- Embora você possa obter alguns resultados de visualizações da web ou PDFs renderizados, recomendamos fortemente testar usando o Axe DevTools for Web ou o Axe Monitor para os testes de acessibilidade mais abrangentes para a web.
iOS
Resultados incompletos para a regra de Suporte para Tipo Dinâmico em telas com sinais de porcentagem no texto
No iOS 26 e versões posteriores, se uma tela contiver texto com um sinal de porcentagem (por exemplo, um rótulo de texto dizendo "50% de desconto"), a regra Suporte para Tipo Dinâmico pode ser relatada como Incompleta em vez de aprovada ou reprovada. Essa regra depende de uma auditoria de acessibilidade fornecida pela Apple, e essa auditoria interrompe a execução do teste quando encontra sinais de porcentagem. Para manter seus testes em execução, nossa regra pula a verificação para aquela tela e relata incompleta para cada elemento que contém um sinal de porcentagem. Todas as outras regras são executadas normalmente na tela, e outras telas não são afetadas.
Nenhuma ação é necessária, uma vez que sua varredura ainda será concluída. Para verificar o suporte ao Tipo Dinâmico para essas telas, aumente o tamanho do texto no seu dispositivo em **Configurações** > **Acessibilidade** > **Tela e Tamanho do Texto** > **Texto Grande**, e confirme se o texto na tela é redimensionado adequadamente. Esse problema foi reportado à Apple. (#2985)
O contraste de cor pode ser executado em elementos somente ícone devido ao OCR
A regra de Contraste de Cor usa a estrutura Vision da Apple (Reconhecimento Óptico de Caracteres, ou OCR) para ler texto dentro dos limites de um elemento. O OCR pode ocasionalmente identificar erroneamente pequenos glifos semelhantes a ícones - como setas para trás (<), marcadores, símbolos decorativos - como texto. Quando isso acontece, a regra de Contraste de Cor é aplicada a um elemento que não contém texto legível, o que pode produzir um resultado para um botão apenas com ícone. Como a saída do OCR não é determinística entre as verificações, o mesmo elemento pode aparecer nos resultados de Contraste de Cor em uma verificação e ser relatado como "INAPLICÁVEL" na próxima. Esta é uma característica conhecida do OCR, não um erro na regra.
Para contornar este problema, você pode usar as ignore APIs para suprimir 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()]
])
// Or ignore Color Contrast globally
axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())Saiba mais sobre ignorar regras.
Falso positivo de Título da Tela em aplicativos Flutter
O Flutter não mapeia AppBar.title para a propriedade de título de tela nativa - UIViewController.title, fazendo com que a regra de Título da Tela falhe em todas as telas do Flutter, independentemente de um título descritivo estar presente.
Esta é uma limitação conhecida da plataforma Flutter rastreada em flutter/flutter#185894.
Falsos positivos da 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ê. Nesses 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 este problema, 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.
Impreciso isVisible propriedade do XCTest
As APIs de acessibilidade da Apple podem relatar incorretamente conteúdo da web dentro do WKWebView como "isVisible", mesmo quando a visualização da web está coberta por sobreposições nativas (como visualizações modais, alertas ou outros elementos de UI nativos). Isso ocorre porque o sistema de acessibilidade verifica se o contêiner do WKWebView está visível, em vez de verificar se seu conteúdo web está realmente desobstruído e perceptível para o usuário.
Bug de acessibilidade do iOS 26 com steppers
O iOS 26 contém um bug de acessibilidade onde os botões de incremento padrão 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 bug foi enviado para a Apple, mas até que isso seja resolvido, as seguintes regras podem relatar resultados em botões de incremento desabilitados: AssociatedText, InaccessibleAction, e ColorContrast.
Até que a Apple corrija este bug, a solução será [ignorar as regras](ios-ignore-rule). Os botões de incremento padrão 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)
Regras contra Controles Aninhados
Ao procurar uma melhoria para nossas regras, descobrimos que no XCTest, 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 de Análise de Resultados 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 focalização da Apple podem ser imprecisas quando um `accessibilityIdentifier` é definido na imagem. Devido a esse comportamento inesperado, os resultados dos problemas de Nome do ImageView em aplicativos UIKit serão relatados como Necessita de Análise. Um relatório de bug foi enviado para a Apple. (#1633)
Falso Positivo: Em Scroll View, Label In Name, Label at Front, e Nome da Visualização de Imagem & ActiveControlName v2.11.0
Estamos trabalhando ativamente em soluções para os seguintes falsos positivos e atualizaremos esta lista à medida que correções forem lançadas.
In Scroll View
O texto dentro de elementos que se comportam como banners, cabeçalhos/rodapés fixos, botões de ação flutuantes e visualizações de abas personalizadas podem ser sinalizados com uma mensagem "Necessita de Análise" ou "Falha". Para tornar esses elementos disponíveis para aqueles que necessitam de texto maior, use UILargeContentViewer. (#622, #2077)
v2.11.0 Image View Name & Active Control Name
Se uma UIImageView tiver um accessibilityIdentifier definido, mas não for focável pelo VoiceOver, e tiver controles focáveis aninhados, a regra Active Control Name pode relatar um falso positivo na UIImageView. Remover o accessibilityIdentifier resolve o problema. Um bug foi reportado para a 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 incorreto próximo pode ser detectado, causando falhas nessas regras. (#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 aparece no início do seu texto anunciado. Uma falha 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 ao leitor 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 pretendido.
Potenciais preocupações de acessibilidade para Texto Focável
Ao usar texto decorativo em visualizaçõ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 declarar que essa visualização de texto não é importante para acessibilidade, não poderemos dizer com segurança se você introduziu uma violação de acessibilidade.
Se você editar texto focável para ignorar duas ou menos letras, poderá inadvertidamente ignorar muitos botões de uma palavra em vários idiomas (por exemplo, "OK", "No", "Sí"). Para evitar esses problemas, você deve capturar as letras desejadas da palavra que deseja representar no ícone e gerar as letras como parte da imagem em vez de como visualizações de texto separadas. `FocusableText` então não será executado nessas visualizações.
Falso positivo do título de tela em aplicativos Flutter
O Flutter não mapeia AppBar.title para a propriedade nativa de título de tela - Activity.setTitle, causando a falha da regra de Título de Tela em todas as telas do Flutter, independentemente de um título descritivo estar presente.
Esta é uma limitação conhecida da plataforma Flutter acompanhada 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 não há outro anúncio disponível. Como AccessibilityEventsão disparados por ações do usuário, não conseguimos acessar a descrição correta se essa informação não for fornecida.
Para evitar este problema, certifique-se de que todas as visualizações relevantes sejam 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 de Aprendizado de Máquina para detectar texto, o que garante que o texto sendo escaneado é visível para os usuários do seu aplicativo. Em casos onde o texto contido em uma visualização tem a 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 nesta visualização.
EditTextName no Android 7 (SDK 24-25)
Apps escritos com XML que utilizam o recurso de texto de dica podem ver falsos positivos com a EditTextName regra. O texto de dica não foi introduzido até o Android 8 (SDK 26). Usar este elemento no seu aplicativo XML atribuirá o texto de dica ao valor do campo de entrada de texto. As 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 hintText recurso, pois ele 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. 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 solução para esse problema complexo. Enquanto isso, se o TalkBack não conseguir alcançar essas visualizações, você pode desconsiderar os problemas correspondentes. Eles não requerem uma solução para garantir acessibilidade.
Erro ao executar a 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 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 ocorre e você verá o seguinte erro no logcat:
Axe DevTools Android: Erro ao executar a detecção de texto do mlKit: MlKitContext não foi inicializado.
Para superar este problema, você deve importar manualmente a biblioteca ML Kit em seu projeto. No seu build.gradle do aplicativo, adicione o seguinte sob dependências:
debugImplementation 'com.google.mlkit:text-recognition:16.0.1'Encontre um exemplo completo de funcionamento da biblioteca ML Kit sendo importada na seção Android Mobile SDK Getting Started, em Implementação
Espaçamento do Alvo de Toque e Jetpack Compose
A regra de Espaçamento do Alvo de Toque atualmente não está sendo executada em nenhum componente de deslizante que foi escrito em Jetpack Compose. Nenhuma ação pode ser tomada neste momento. No entanto, uma correção está chegando em breve!
Erro ao salvar resultados localmente no API 30
No Android API 30, um dos locais que tentamos salvar resultados localmente tem 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 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 este código só deve ser comentado no API 30, pois causará problemas ao salvar localmente para outros níveis de API.
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 completamente na tela antes de realizar a varredura.
Aplicativo Analyzer: Botão de Ação Flutuante Desaparece
Introduzida com a API 31 (Android 12) está a capacidade de ocultar sobreposições não-sistêmicas. Para utilizar o aplicativo Axe Analyzer, certifique-se de que essa configuração não esteja ativada. Se você optou por utilizar este recurso para seus aprimoramentos de segurança, recomendamos deixá-lo desativado para versões de teste interno 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 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 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.
Erro ao minifiedEnabled ser definido como verdadeiro
Se minimizar sua compilação, 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 o minify para suas compilações de depuração com Axe DevTools implementado. (#729)
Compilações com r8 ativado geram um erro
Uma compilação com r8 ativado 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)
Para resolver este erro, adicione a seguinte linha ao seu arquivo ProGuard para manter as classes axeDevTools:
keep class com.deque.** { *; }Mensagens de erro ao usar APIs Compose
As APIs Compose estão obsoletas, por favor, use as APIs agnósticas ao layout para continuar recebendo atualizações. Se você continuar a usar as APIs Compose e encontrar um erro como `Esperado exatamente '1' nó, mas encontrados '2' nós que satisfazem: (isRoot)` ou `Nenhuma View inicializada, você chamou AxeDevToolsCompose.setComposeTestRule()?`, por favor, consulte a API Compose setTestTag.
MAUI: Regra de Nome do Edit Text
Devido às limitações da arquitetura do app MAUI ao renderizar no ecossistema Android, a regra de Nome do Edit Text aparecerá como Necessita Revisão no painel quando uma falha for suspeitada para a versão SDK 5.5.0 e superiores. Por favor, confirme o comportamento correto manualmente neste 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 views atrás do modal. Nesse caso, recomendamos não executar nossa ferramenta contra esses modais ou diálogos personalizados e, em vez disso, verificar manualmente se eles se comportam com a tecnologia assistiva conforme desejado.
Painel da Web
Captura de Tela Ausente
Se a captura de tela estiver ausente na página de detalhes da verificação, 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 essa exigência para sua versão de teste para permitir funcionalidade completa no Painel Mobile do Axe DevTools.
Alguns nomes de verificação Android estão sem formatação
Alguns nomes de verificação 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 solução alternativa, você pode definir o nome da verificação a partir do painel ou frameworks. (#1643)
