Notas de Lançamento do axe DevTools Mobile de 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. Os resultados da regra do WCAG 2.2, "Espaçamento do Alvo Tátil", serão marcados como Experimentais até que o WCAG 2.2 atinja o status de Recomendação. Isso significa que os resultados desta regra agora aparecerão em suas contagens de Falha, Aprovação e Revisão Necessária sob o cabeçalho Experimental. (Esta regra aparecia anteriormente 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 Ago. de 2023, paramos de lançar atualizações para o framework UIKit para testes automatizados em apps iOS. Continuaremos a oferecer este framework enquanto for viável, mas não faremos mais correções de bugs ou atualizações. Encorajamos a mudança para o framework XCUI, que será atualizado com novas regras e melhorias daqui em diante. Se você estiver usando o framework UIKit para testes automatizados de unidade ou UI e gostaria de suporte na transição para o framework XCUI, por favor, nos avise. Envie um pedido em support.deque.com, ou envie um email para helpdesk@deque.com.
Problemas Conhecidos
Se você está enfrentando algum 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, se nenhuma estiver listada.
- Os testes automatizados do axe DevTools Mobile são executados em apps nativas iOS, Android nativo e React Native. Por favor, entre em contato com seu representante da Deque para soluções de teste de acessibilidade na sua stack de tecnologia.
- 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 da 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 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 reduzir a sua compilação, você 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 compilações de depuração com axe DevTools implementado. (#729)
Erros ao Compilar 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 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.
Dashboard 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)
