Notas de Lançamento do Axe DevTools Mobile em 30 de agosto de 2023
30 de Agosto de 2023
Versões dos Componentes
- axeDevToolsXCUI v2.7.0
- axe-devtools-android v4.1.0
- Axe DevTools Reporter CLI v4.7.0
O que há de novo?
O WCAG 2.2 está atualmente no status de Recomendação Proposta. Resultados da regra do WCAG 2.2, "Espaçamento do Alvo de Toque", serão marcados como Experimentais até que o WCAG 2.2 alcance o status de Recomendação. Isso significa que os resultados dessa regra agora aparecerão em suas contagens de resultados como Falha, Aprovado e Precisa de Revisão sob o título Experimetal. (Essa regra anteriormente aparecia na contagem Ignorada.) Você também pode desativar regras experimentais, se preferir. Saiba mais sobre regras experimentais.
Android
- Agora você pode ignorar regras em seus Testes de UI automatizados (Espresso ou UI Automator) usando o Nome do Recurso de ID da Visualização. Use isso para ignorar regras ao passar no Registro de Instrumentação.
iOS
- A regra Ação Inacessível agora faz parte do framework Axe DevTools XCUI.
Reporter CLI
- Agora você pode salvar relatórios em CSV e JUnit XML, além de HTML. Saiba mais sobre o Axe DevTools Reporter CLI.
Correções de Bugs
iOS
- Precisão dos resultados melhorada quando os controles estão desativados.
- Regra de "Contraste de Cor" atualizada para garantir que não seja executada em visualizações esmaecidas atrás de um modal.
- Chamadas de atualização de nome e tag de digitalização combinadas em uma solicitação de rede para melhorar o desempenho.
Android
- Testes do UI Automator agora esperarão a atualização da janela ser concluída antes de digitalizar para evitar capturar uma captura de tela desatualizada.
- Corrigido um falso positivo na regra "Nome do Texto Editável" para Compose. Esta regra não reportará mais uma falha quando um Compose TextField contém um rótulo.
- Corrigida a regra "Valor do Texto Editável" para executar em todos os elementos Compose TextField.
- Corrigido um problema de cálculo com a regra "Espaçamento do Alvo Tátil".
Dashboard
- Resolvido um problema da última versão que causava a alteração da ordem dos problemas dentro das digitalizações.
Atualizações
Lembrete: a partir de 16 de agosto de 2023, interrompemos o lançamento de atualizações para o framework UIKit para testes automatizados em aplicativos iOS. Continuaremos a oferecer esse framework no futuro próximo, 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 adiante. Se você estiver usando atualmente o framework UIKit para testes automatizados de unidade ou UI e quiser suporte para a transição para o framework XCUI, por favor, informe-nos. Envie uma solicitação em support.deque.com ou envie um e-mail para helpdesk@deque.com.
Problemas Conhecidos
Se você estiver enfrentando qualquer um dos problemas abaixo, por favor entre em contato conosco em helpdesk@deque.com ou support.deque.com. Assim, poderemos notificá-lo uma vez que tenha sido resolvido ou sobre uma solução alternativa identificada, caso nenhuma esteja listada.
- O teste automatizado do Axe DevTools Mobile é executado em aplicativos nativos iOS, nativos Android e React Native. Por favor, entre em contato com seu representante Deque para soluções de teste de acessibilidade em sua pilha tecnológica.
- Para ajudá-lo a 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 varredura de PDFs para acessibilidade.
Axe DevTools Mobile para iOS
axeDevToolsUIKit.xcframework
Visualizações construídas com SwiftUI não podem ser testadas usando este framework para testes automatizados.
Use o framework axeDevToolsXCUI em UITesting para visualizações SwiftUI.
O suporte para regras personalizadas está disponível apenas em Swift
A API de regras personalizadas não está aberta para Objective-C.
Falsos Positivos: InScrollView, SupportsDynamicType, Visualizações Colidindo
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 banners. Para tornar esses elementos acessíveis para aqueles que necessitam de texto maior, 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 pai 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
As visualizações de Picker no SwiftUI e UIKit podem fazer com que o framework fique travado em simuladores ou dispositivos. (#636)
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 registrado com a Apple. (#1110)
Falso Positivo: In 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 banners. Para tornar esses elementos acessíveis para aqueles que necessitam de texto maior, 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 dela, o ActiveControlName pode relatar um falso positivo na UIImageView. Remover o `accessibilityIdentifier` resolve o problema. (#1178)
Falso Negativo: Nome da View 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 Proguard
Se sua compilação de depuração ou teste estiver utilizando Proguard, siga os passos para ignorar Deque nas suas configurações do Proguard.
Falha quando `minifiedEnabled` está definido como verdadeiro
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 o 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 geram um erro
Uma compilação com r8 habilitado 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)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 do tipo `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)`, por favor, entre em contato conosco em helpdesk@deque.com ou support.deque.com para assistência. Em certas condições, pode haver dois nós raiz do Compose existentes ao mesmo tempo.
Painel do Axe DevTools Mobile
Alguns nomes de escaneamento do Android estão sem formatação
Alguns nomes de escaneamento do Android que estã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 do escaneamento a partir do painel ou dos frameworks. (#1643)
