Axe DevTools Mobile Notas de Lançamento de 16 de agosto de 2023
16 de Agosto de 2023
Versões dos Componentes
- axeDevToolsXCUI v2.6.0
- axe-devtools-android v4.0.0
O que há de novo?
Apresentando o Axe DevTools Mobile Analyzer
Utilize o novo Axe DevTools Mobile Analyzer para testar aplicativos iOS ou Android criados com qualquer tecnologia sem acessar o código-fonte. Teste tanto aplicativos nativos quanto cross-platform, como SwiftUI e UIKit no iOS, Jetpack Compose e XML no Android, React Native, Flutter, Xamarin e Ionic. O Axe DevTools Mobile Analyzer substitui o Botão de Ação Flutuante incorporado para testes de acessibilidade iniciados pelo usuário (manuais). Para fazer a troca, remova o código incorporado do Botão de Ação Flutuante do seu aplicativo e siga os documentos para comece a usar o novo Axe DevTools Mobile Analyzer.
iOS
- Views construídas com SwiftUI e aplicativos cross-platform agora podem ser testados por meio de testes iniciados pelo usuário (manuais) usando o novo Axe DevTools Mobile Analyzer para iOS.
- A regra Suporta Tipo Dinâmico agora está disponível no framework XCUI. Esta regra redimensiona o texto várias vezes e reavalia a tela após cada redimensionamento para procurar problemas, o que leva alguns segundos para ser executado. Por este motivo, lançamos isso como opt-in. Para aderir, defina
optInToSDTcomo verdadeiro na API de configuração do Axe.axeDevTools.configuration.optInToSDT = true. - A versão mínima suportada do iOS é agora iOS 14 (anteriormente iOS 13).
Android
- Aplicativos cross-platform agora podem ser testados por meio de testes iniciados pelo usuário (manuais) usando o novo Axe DevTools Mobile Analyzer para Android.
- Aplicativos que usam visualizações do Jetpack Compose agora executarão o conjunto completo de regras através de testes iniciados pelo usuário (manuais) ou automatizados. (Anteriormente, aplicativos Android que usam Jetpack Compose tinham um conjunto de regras menor.)
- Agora damos suporte ao framework de teste UI Automator para testes automatizados.
- O SDK Android atualizado permite a varredura automatizada de acessibilidade através do Espresso e UI Automator usando o Instrumentation Registry, que não requer que você especifique qualquer visualização ou atividade.
- Mudança importante: A classe
DashboardServicefoi substituída pela classeResultsDashboard.
Painel de Controle
- Melhoria no tempo de carregamento para a contagem de problemas e resumo na tela principal do Painel de Controle.
- Aparência da Hierarquia de Visualização melhorada quando visualizada no navegador Safari.
Correções de Bugs
Axe DevTools Mobile para iOS
- Regra de Contraste de Cores - Não executaremos mais regras de contraste de cores em botões desativados porque as regras de contraste de cores são inaplicáveis a elementos desativados.
- Regra de Controles em Colisão - Qualquer controle que não esteja marcado como focável por acessibilidade ou que não seja um elemento de acessibilidade não será mais considerado ao analisar controles em colisão.
- Resultados salvos localmente - O nome da varredura agora é adicionado corretamente ao arquivo JSON quando salvo localmente ou baixado do Painel de Controle. Isto corrige o título "varredura sem nome" que anteriormente aparecia nos relatórios HTML gerados pelo CLI do Reporter.
Axe DevTools Mobile Dashboard
- Correções de acessibilidade: Adicionado o papel "button" ausente em aria, melhorou o cabeçalho do modal de anúncio, removeu a dica de ferramenta na hierarquia de visualização e adicionou melhores anúncios de leitor de tela para paginação.
- Corrigido o nome da varredura na captura de tela que anteriormente estava sobrepondo o botão 'Inspecionar'.
- Corrigido um problema onde usuários de teste grátis estavam vendo um carregamento infinito.
Atualizações
Esta versão marca a última de nossas atualizações para o framework UIKit para testes automatizados em aplicativos iOS. Continuaremos a oferecer este framework no futuro previsível, mas não faremos mais correções de bugs ou atualizações. Incentivamos você a migrar para o framework XCUI, que será atualizado com novas regras e melhorias daqui para frente. Se você está atualmente usando o framework UIKit para testes automatizados de unidade ou UI e gostaria de suporte para a transição para o framework XCUI, por favor nos avise. Envie uma solicitação em support.deque.com ou envie um email para helpdesk@deque.com.
Problemas Conhecidos
Se você está enfrentando qualquer um dos problemas abaixo, por favor entre em contato conosco em helpdesk@deque.com ou support.deque.com. Poderemos, então, 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 iOS nativos, Android nativo e React Native. Por favor, entre em contato com seu representante Deque para soluções de teste de acessibilidade na sua pilha tecnológica.
- Para apoiá-lo na obtenção de resultados precisos e conselhos de remediação aplicáveis, as regras do Axe DevTools Mobile não são executadas em visualizações web ou PDFs renderizados. Para testar conteúdo HTML, por favor utilize o Axe DevTools para Web. O Axe Monitor suporta a digitalização de PDFs para acessibilidade.
Axe DevTools Mobile para iOS
axeDevToolsUIKit.xcframework
Visualizações criadas com SwiftUI não podem ser testadas usando este framework para testes automatizados.
Use o framework axeDevToolsXCUI no UITesting para visualizações SwiftUI.
Suporte para regras personalizadas está disponível apenas em Swift
A API de regras personalizadas não está disponível para Objective-C.
Falsos Positivos: InScrollView, SupportsDynamicType, Colliding Views
Estamos trabalhando ativamente em correções para os seguintes falsos positivos e atualizaremos esta lista à medida que as correções forem lançadas.
InScrollView
O InScrollView pode relatar problemas para texto dentro de elementos que se comportam como banner. Para tornar esses elementos acessíveis para aqueles que necessitam de textos maiores, use UILargeContentViewer.
SupportsDynamicType
Você pode ver falsos positivos nos seguintes cenários:
- Se estiver usando a
UIContentSizeCategoryDidChangenotificação, o framework pode relatar incorretamente que o texto não responde ao Dynamic Type em UITests. - Se estiver usando
NotificationCenter.default.addObserver(forName:.., object:.., queue:.., using:..)para responder àUIContentSizeCategoryDidChangenotificação. - Se estiver usando
traitCollectionDidChangena visualização principal de um texto ou no controlador de visualização para responder ao Dynamic Type.
When a scrollable subview contains text, and that subview does not span to the edge of the screen's bounds, you will see failures for text located within the view's bounds.
axeDevToolsXCUI.xcframework
SwiftUI Picker e UIKit Picker
Visualizações de Picker no SwiftUI e UIKit podem fazer com que o framework trave em simuladores ou dispositivos. (#636)
Regras contra Controles Aninhados
Ao trabalhar em uma melhoria para nossas regras, descobrimos que no XCTest, controles aninhados não são retornados na árvore de acessibilidade. Um bug foi registrado com a Apple. (#1110)
Falso Positivo: Em Scroll 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
Pode relatar problemas para texto dentro de elementos que se comportam como banner. Para tornar esses elementos acessíveis para aqueles que necessitam de textos maiores, use UILargeContentViewer. (#622)
ActiveControlName
Se uma UIImageView tiver um `accessibilityIdentifier` definido mas não for focável pelo VoiceOver, e tiver controles focáveis aninhados dentro, o ActiveControlName pode relatar um falso positivo na UIImageView. Remover o `accessibilityIdentifier` resolve o problema. (#1178)
Falso Negativo: Nome da Visualização de Imagem, Texto Focável no iOS 13 até iOS 14.8.1
Estamos trabalhando ativamente em correções para os seguintes falsos negativos e atualizaremos esta lista à medida que as correções forem lançadas.
Image View Name
Se uma UIImageView tiver um `accessibilityIdentifier` definido mas não for focável pelo VoiceOver, o ImageViewName pode relatar um falso negativo na UIImageView. Remover o `accessibilityIdentifier` resolve o problema. (#1188)
Focusable Text
Elementos marcados como não acessíveis podem relatar resultados inadequados devido a um bug no framework da Apple.
Axe DevTools Mobile para Android
Falha ao usar o Proguard
Se o seu build de depuração ou teste estiver utilizando o Proguard, siga os passos para ignorar a Deque nas suas configurações do Proguard.
Falha quando `minifiedEnabled` está configurado como true
Se você minimizar sua build, 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 builds de depuração com Axe DevTools implementado. (#729)
Erros ao Compilar com Projeto Java8 e Axe DevTools Android 3.1.0
Tente as seguintes importações:
implementation 'androidx.core:core-ktx:1.9.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'After importing the above library, if you see errors related to minSDK version for core-ktx library try the following in your project’s Android Manifest:
<uses-sdk tools:overrideLibrary="androidx.core" />
Compilações com r8 ativado lançam um erro
Uma compilação com r8 ativado pode tentar minimizar 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.** { *; }
Mensagem de erro semelhante a:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
Se você encontrar um erro como `Esperado exatamente '1' nó, mas foram encontrados '2' nós que atendem a: (isRoot)`, por favor, entre em contato conosco em helpdesk@deque.com ou support.deque.com para assistência. Sob certas condições, pode haver dois nós raiz Compose existentes ao mesmo tempo.
Axe DevTools Mobile Dashboard
Alguns nomes de varredura do Android estão sem formatação
Alguns nomes de varredura do Android que são definidos como padrão 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 varredura no painel ou frameworks. (#1643)
