Notas de Lançamento de axe DevTools Mobile de 16 de Agosto de 2023

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

16 de Agosto de 2023

Not for use with personal data

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

Use o novo axe DevTools Mobile Analyzer para testar aplicativos iOS ou Android construídos com qualquer tecnologia sem acesso ao código-fonte. Teste aplicativos nativos e de multiplataforma, 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 Floating Action Button incorporado para testes de acessibilidade iniciados pelo usuário (manuais). Para fazer a troca, remova o código incorporado para o Floating Action Button do seu aplicativo e siga a documentação para começar com o novo axe DevTools Mobile Analyzer.

iOS

  • Visualizações construídas com SwiftUI e aplicativos de multiplataforma agora podem ser testados via testes iniciados pelo usuário (manuais) usando o novo axe DevTools Mobile Analyzer para iOS.
  • O Suporta Tipo Dinâmico a regra 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 isto como opcional. Para optar, defina optInToSDT como verdadeiro a partir da 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 de multiplataforma agora podem ser testados via 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 DashboardService foi substituída pela classe ResultsDashboard .

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 Painel de Controle

  • 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

Este lançamento marca a última de nossas atualizações para o framework UIKit para testes automatizados em aplicativos iOS. Continuaremos a oferecer este framework por tempo indeterminado, mas não faremos mais correções de bugs ou atualizações. Encorajamos você a mudar para o framework XCUI, que será atualizado com novas regras e melhorias no futuro. Se você estiver atualmente usando o framework UIKit para testes unitários ou de interface automatizados e desejar suporte para transição para o framework XCUI, por favor nos informe. Envie uma solicitação em support.deque.com, ou envie um email para helpdesk@deque.com.

Problemas Conhecidos

Se você estiver enfrentando algum 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.

important
  • O teste automatizado do axe DevTools Mobile funciona em aplicativos nativos iOS, Android nativo e React Native. Entre em contato com seu representante Deque para obter soluções de teste de acessibilidade para sua pilha tecnológica.
  • Para apoiar você em obter resultados precisos e conselhos de remediação aplicáveis, as regras do axe DevTools Mobile não são executadas em visualizações da web ou PDFs renderizados. Para testar conteúdo HTML, utilize o axe DevTools para Web. O axe Monitor suporta a verificação de acessibilidade em PDFs.

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 UIContentSizeCategoryDidChange notificaçã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 à UIContentSizeCategoryDidChange notificação.
  • Se estiver usando traitCollectionDidChange na visualização principal de um texto ou no controlador de visualização para responder ao Dynamic Type.
Colliding Views
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ê estiver minimizando seu 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 minimização para seus builds de depuração com axe DevTools implementado. (#729)

Erros de Compilação com Java8 Project 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.

Painel do axe DevTools Mobile

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)