Axe DevTools Mobile Notities van de Release op 2 juli 2025
2 juli 2025
Componentversies
iOS
- iOS SDK (axeDevToolsXCUI v2.16.0)
- iOS Analyzer (axe-devtools-mobile-analyzer v1.4.12)
- iOS Appium Driver (axe-appium-xcuitest-driver v1.5.0)
- (Afgeleid van XCUITest v9.2.3)
Hoe bij te werken: iOS SDK, iOS Analyzer, iOS Appium Driver
Android
- Android SDK (axe-devtools-android v7.0.0)
- Android Analyzer (Axe Accessibility Analyzer v2.0.0)
- Android Appium Driver (axe-appium-uiautomator2-driver v1.4.2)
- (Afgeleid van UiAutomator2 v4.2.4)
Hoe bij te werken: Android SDK, Android Analyzer, Android Appium Driver
Wat is nieuw?
Scan Groep URL's
Je kunt nu een URL aanmaken voor een groep van maximaal 20 scanresultaten, met zowel onze Android als iOS SDK's. Maak een URL voor een enkele scan of een groep scans met onze Appium-drivers.
Bezoek de volgende pagina's voor details over het implementeren van deze functie:
- iOS - Resultaten uploaden naar het mobiele dashboard
- Android - Resultaten uploaden naar het mobiele dashboard
- Appium - Maak een scan URL voor resultaten
Oplossingen
iOS
- Gestroomlijnde netwerkverzoeken voor het verzenden van scans met een scannaam en/of tags
- Verbeteringen in de nauwkeurigheid van de volgende regels: Geassocieerde Tekst, Kleurcontrast, Label In Naam, Label Voorop
Breaking Changes
Android XML en Compose API's verwijderd
We zijn overgestapt naar een gestroomlijnde implementatie van Axe DevTools voor Android, wat heeft geleid tot het vervallen van de XML- en Compose API's. We hebben aangegeven dat deze verandering zou plaatsvinden in de release-opmerkingen van oktober 2024. Als je dat nog niet hebt gedaan, moet je team schakelen naar de lay-out-agnostische API's voor voortdurende ondersteuning en toegang tot de nieuwste updates.
Android API-niveausteun
We hebben ondersteuning toegevoegd voor Android API-niveau 36 voor de SDK. Het minimaal ondersteunde Android API-niveau is nu 26 voor zowel de SDK als de Mobile Analyzer-app.
Voor vragen of zorgen over deze breaking changes, neem contact op met support.deque.com.
Bekende Problemen
Als je een van de onderstaande problemen ervaart, neem dan contact met ons op via helpdesk@deque.com of support.deque.com. We kunnen je dan informeren zodra het is opgelost of over een geïdentificeerde oplossing indien er geen is vermeld.
- Axe DevTools Mobile geautomatiseerde testen draaien op native iOS, native Android en React Native-toepassingen. Neem contact op met je Deque-vertegenwoordiger voor oplossingen voor toegankelijkheidstesten op jouw tech stack.
- Hoewel je mogelijk resultaten krijgt van webweergaven of gerenderde PDF's, raden we ten zeerste aan om te testen met Axe DevTools voor Web of Axe Monitor voor de meest uitgebreide toegankelijkheidstests voor het web.
iOS
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.
Niet in staat om scans uit te voeren op fysieke apparaten met iOS Analyzer 1.4.7
Een configuratie-instelling in de iOS Analyzer 1.4.7 voorkomt dat scans worden uitgevoerd, met de melding "Test Mislukt". Om scans op een fysiek apparaat uit te voeren, update naar het nieuwste iOS Analyzer-project.
Fout in Analyzer Project & Testen op bundel-ID in 2.8.1
Functionaliteit met testen van een applicatie op bundel-ID was kapot in versie 2.8.1, wat resulteerde in een fout met de titel "Geen doeltoepad voor applicatie gespecificeerd via testconfiguratie: ...". Update naar 2.8.2 of de nieuwste versie om de fout op te lossen. Update naar het nieuwste binnen het iOS Analyzer-project.
Fout "Kon AxeResult niet serialiseren" in Analyzer Project v1.2.0 & SDK v2.12.3
Scanning van sommige applicaties met deze versie van de analyzer en SDK zou resulteren in een fout "Kon AxeResult niet serialiseren". Update naar de nieuwste versie om de fout op te lossen. Update naar het nieuwste iOS Analyzer-project.Update naar de nieuwste iOS SDK.
Vals positief: LabelInName en LabelAtFront in SwiftUI & Platformonafhankelijke Apps
Sommige schermen kunnen valse positieven rapporteren met LabelInName en LabelAtFront vanwege een onjuist gevonden associatedText-eigenschap (#1622)
Ondersteunt dynamische typeregel werkt niet met iOS 15 Pro simulator
Er is een probleem dat de iPhone 15 Pro simulator beïnvloedt, dat voorkomt dat de Ondersteunt dynamische typeregel wordt uitgevoerd. Als u bent ingeschreven voor de Ondersteunt dynamische typeregel, kunt u deze niet testen met een iPhone 15 Pro simulator. Er is een bug ingediend bij Apple.
Regels tegen geneste besturingselementen
Tijdens het bekijken van een verbetering voor onze regels ontdekten we dat in XCTest geneste besturingselementen niet worden geretourneerd in de toegankelijkheidsboom. Er is een bug ingediend bij Apple. (#1110)
ImageView Name-regel heeft controle nodig van resultaten voor UIKit-apps
In UIKit-apps is een afbeelding zonder een `accessibilityLabel` standaard niet focusbaar met ondersteunende technologie.
De eigenschappen die we gebruiken om focusbaarheid van Apple te controleren zijn mogelijk onnauwkeurig wanneer een `accessibilityIdentifier` is ingesteld op de afbeelding. Vanwege dit onverwachte gedrag zullen resultaten voor ImageView Name-problemen in UIKit-apps rapporteren als review nodig. Er is een bugrapport ingediend bij Apple. (#1633)
Vals positief: In Scroll View, Label In Name, Label at Front, en v2.11.0 Image View Name & ActiveControlName
We werken actief aan oplossingen voor de volgende valse positieven en zullen deze lijst bijwerken zodra er oplossingen zijn uitgebracht.
In Scroll View
Kan problemen melden voor tekst binnen elementen die zich als banners gedragen. Om deze elementen beschikbaar te maken voor degenen die grotere tekst nodig hebben, gebruik UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Als een UIImageView een `accessibilityIdentifier` heeft ingesteld, maar niet focusbaar is door VoiceOver, en het heeft focusbare besturingselementen binnenin genesteld, kan ActiveControlName een vals positief rapporteren op de UIImageView. Het verwijderen van de `accessibilityIdentifier` lost het probleem op. Er is een bug ingediend bij Apple. (#1633)
Label In Name and Label At Front
Deze twee regels zoeken naar het zichtbare label van een besturingselement tussen nabijgelegen elementen om de status van de regel te bepalen. In sommige weergavehiërarchieën kan de onjuiste nabijgelegen tekst worden gedetecteerd, waardoor deze regels falen. (#1622)
Android
Kleurcontrastregel wordt niet uitgevoerd wanneer tekst- en achtergrondkleuren hetzelfde zijn
Onze kleurcontrastregel is afhankelijk van machine learning om tekst te detecteren, wat ervoor zorgt dat de gescande tekst zichtbaar is voor gebruikers van uw applicatie. In gevallen waarin de tekst in een weergave dezelfde kleur heeft als de achtergrond, kan ons machine learning-algoritme niet detecteren of er tekst aanwezig is, waardoor de kleurcontrastregel niet wordt uitgevoerd op deze weergave.
EditTextName op Android 7 (SDK 24-25)
Apps geschreven met XML die de hinttekstfunctie gebruiken kunnen valse positieven zien met de EditTextName regel. Hinttekst werd pas geïntroduceerd in Android 8 (SDK 26). Het gebruik van dit element in uw XML-applicatie zal de hinttekst toewijzen aan de waarde van het tekstinvoerveld. Recentere versies van Android zijn beter uitgerust om deze ervaring toegankelijk te maken.
Om dit probleem te overwinnen is onze eerste aanbeveling om uw tests op nieuwere versies van Android uit te voeren. Als het belangrijk is dat de app toegankelijk is op oudere Android-versies, kunt u overwegen het gebruik van de hintText functie te vermijden, aangezien het niet officieel wordt ondersteund.
Android verborgen weergaven geven resultaten terug
Je kunt resultaten zien voor weergaven die zijn verborgen achter andere weergaven op het scherm. Deze verborgen weergaven zijn niet toegankelijk voor assistieve technologie, maar Axe DevTools Mobile rapporteert ze nog steeds als problemen.
We werken aan een oplossing voor dit complexe probleem. In de tussentijd, als TalkBack deze weergaven niet kan bereiken, kunt u de bijbehorende problemen negeren. Ze hoeven niet te worden opgelost om toegankelijkheid te garanderen.
Fout bij het uitvoeren van ML Kit Tekstdetectie
ML Kit tekstherkenning is vereist in veel van de Axe DevTools Mobile-regels om de nauwkeurigheid van resultaten te waarborgen. De ML Kit-bibliotheek wordt automatisch geïmporteerd wanneer je naar Axe DevTools Mobile in je geautomatiseerde Espresso- of UIAutomator-tests verwijst. In sommige gevallen gebeurt de automatische import echter niet en zie je de volgende foutmelding in de logcat:
Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.
Om dit probleem op te lossen, moet u de ML Kit-bibliotheek handmatig in uw project importeren. In het build.gradle bestand van uw applicatie, voeg het volgende toe onder dependencies:
implementation 'com.google.mlkit:text-recognition:16.0.1'
Aanraakdoelafstandsinstelling en Jetpack Compose
De Touch Target Spacing-regel draait momenteel niet op slidercomponenten die zijn geschreven in Jetpack Compose. Er kan op dit moment geen actie worden ondernomen. Een oplossing komt echter binnenkort!
Fout bij het lokaal opslaan van resultaten op API 30
Op Android API 30 heeft een van de locaties waar we proberen resultaten lokaal op te slaan een toestemmingfout. Het resultaat wordt desondanks als een JSON-bestand opgeslagen. De fout kan worden onderdrukt door de code in het volgende blok uit te schakelen:
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
// finalizedBy {
// fetchAndroidFolderAxeReportsTask
// }
}
Please note that this code should only be commented out for API 30 as it will cause problems when saving locally for other API levels.
Scrolldetectie op hybride apps en cross-platform apps
In sommige hybride en cross-platform apps kunnen we onverwachte resultaten terugkrijgen wanneer items in een scrollview gedeeltelijk van het scherm zijn. Om een element te testen op toegankelijkheid, zorg ervoor dat het volledig op het scherm staat voordat u de scan uitvoert.
Analyzer-app: Zwevende actieknop verdwijnt
Met API 31 (Android 12) is de mogelijkheid geïntroduceerd om niet-systeemoverlays te verbergen. Om de Axe Analyzer-app te gebruiken, zorg ervoor dat deze instelling niet is ingeschakeld. Als je hebt gekozen om deze functie te gebruiken voor de beveiligingsverbeteringen, raden we aan om deze uit te laten voor interne testopbouw waar je veilig testgegevens kunt gebruiken en zo beveiligingsproblemen kunt elimineren. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
Om de Axe Accessibility Analyzer-app te gebruiken, werk alle oproepen naar de methode setHideOverlayWindows(true) naar setHideOverlayWindows(false) op de getroffen activiteitvensters.
Screenshot ontbreekt (zwarte doos) in het dashboard
Om de volledige functionaliteit van Axe DevTools voor Mobile te ontgrendelen, zorg ervoor dat screenshots zijn ingeschakeld. We raden aan om screenshots in te schakelen op een debug- of testversie van je app die mock-gegevens gebruikt om beveiligingsproblemen te voorkomen. Bekijk onze gids voor het inschakelen van screenshots in Android-apps.
Crash wanneer `minifiedEnabled` is ingesteld op true
Als je je build minimaliseert, zul je een crash zien met een foutlog dat meldt dat een adapter niet gevonden kon worden bij het proberen in te loggen op de Axe DevTools-bibliotheek. Schakel de minimalisatie uit voor je debug-builds met Axe DevTools geïmplementeerd. (#729)
Builds met r8 ingeschakeld geven een fout
Een build met r8 ingeschakeld kan proberen de axeDevTools-bibliotheek te minimaliseren, wat resulteert in een fout zoals:
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.** { *; }
Foutmelding vergelijkbaar met:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
of: No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
De Compose-API's zijn verouderd, gebruik alstublieft de lay-out-agnostische API's om updates te blijven ontvangen. Als je de Compose-API's blijft gebruiken en een fout tegenkomt in de trant van `Er werd precies '1' knooppunt verwacht maar er zijn '2' knooppunten gevonden die voldoen aan: (isRoot)` of `Geen View geïnitialiseerd, heb je AxeDevToolsCompose.setComposeTestRule() genoemd?`, raadpleeg dan de Compose setTestTag API.
Logbericht:MlKitContext has not been initialized
Als je dit bericht tegenkomt, kunnen sommige regelresultaten mogelijk niet naar verwachting terugkeren wanneer die regel gebruikmaakt van kunstmatige intelligentie. Betrokken regels zijn onder andere Kleurcontrast, Focusbare Tekst en Genestelde Elementnaam. (#841)
MAUI: Bewerken tekstnaamregel
Door beperkingen van de MAUI-apparchitectuur in het Android-ecosysteem, zal de Bewerken tekstnaamregel als Beoordeling vereist worden weergegeven in het dashboard wanneer een mislukking wordt vermoed voor SDK-versie 5.5.0 en hoger. Bevestig in dit geval handmatig het juiste gedrag.
Native Android: Aangepaste dialogen/modals
Wanneer je aangepaste dialogen of modals implementeert die de native bedieningselementen niet uitbreiden, kun je resultaten krijgen voor weergaven achter de modal. In dit geval raden we aan onze tool niet tegen deze aangepaste modals of dialogen te laten lopen, maar ze in plaats daarvan handmatig te controleren om ervoor te zorgen dat ze naar wens functioneren met ondersteunende technologie.
Webdashboard
Ontbrekende Screenshot
Als de screenshot ontbreekt op de scandetailpagina, kan het zijn dat je app het maken van screenshots verhindert. Vaak is dit om veiligheidsredenen in je productieapplicatie. Overweeg om deze vereiste voor je testbuild te verwijderen om volledige functionaliteit in het Axe DevTools Mobile Dashboard mogelijk te maken.
Sommige Android-scan namen zijn niet opgemaakt
Sommige Android-scan namen die standaard zijn ingesteld op de schermtitel, verschijnen als de volledige klassennaam inclusief de bundelidentifier. In een toekomstige release zal dit worden opgelost, zodat de schermtitel wordt opgemaakt tot een leesbare naam. Als tijdelijke oplossing kun je de scannaam instellen vanuit het dashboard of frameworks. (#1643)
