Axe DevTools Mobile Release Notes 5 augustus 2026
5 augustus 2026
iOS
- iOS SDK (axeDevToolsXCUI v4.1.0)
- iOS Analyzer Desktop App (axe-devtools-mobile-desktop-app v1.3.0)
Hoe te updaten: iOS SDK, iOS Analyzer Desktop App
Android
- Android SDK (axe-devtools-android v9.1.0)
- Android Gradle Plugin (axe-devtools-android-plugin v1.2.0)
- Android Analyzer (Axe Accessibility Analyzer v3.2.0)
Hoe te updaten Android Gradle Plugin, Android Analyzer
Wat is er nieuw?
Schermen overslaan bij het uitvoeren van Auto Scan
Gebruik je Auto Scan met onze SDK's? Je kunt nu schermen overslaan die niet in scanresultaten moeten worden opgenomen door secties te omwikkelen met AxeAutoScan.skipScan. De scansessie wordt automatisch hervat wanneer het blok eindigt. Vind de implementatiedetails van Auto Scan op de volgende pagina's:
Uitgebreide WCAG-dekking
Deque heeft een blijvende inzet om regels te bieden en te optimaliseren die echte toegankelijkheidsproblemen nauwkeurig detecteren. Met deze release breiden we onze WCAG 2.0-dekking uit door twee regels te promoten die eerder als experimenteel waren gemarkeerd.
iOS
De regel Ondersteunt Dynamic Type is opgewaardeerd naar een volledige regel. Deze regel komt overeen met WCAG 2.0, 1.4.4 Resize Text (AA) en draait nu standaard, terwijl deze voorheen opt-in was. Dynamic Type is een iOS-functie waarmee gebruikers een voorkeurslettergrootte kunnen instellen voor het hele toestel. Deze regel controleert of apps die voorkeur respecteren door schaalbare lettertypen te gebruiken.
Let op: deze regel draait op Apple's XCUI Accessibility Audit API, wat iOS 17.0+ vereist. De regel Ondersteunt Dynamic Type draait alleen tijdens gerichte testen. Ondersteuning voor Auto Scan komt binnenkort!
Meer informatie over deze toegankelijkheidsregel: Ondersteunt Dynamic Type.
Android
De regel Onaantoegankelijke Actie voor Android is opgewaardeerd naar een volledige regel, waarmee we onze dekking van WCAG 2.0, 2.1.1 Keyboard (A) uitbreiden. Deze regel controleert of de actie verbonden met een interactief element zowel kan worden gefocust en als geactiveerd door hulpmiddelen zoals TalkBack of Switch Access.
Meer informatie over deze toegankelijkheidsregel: Onaantoegankelijke Actie.
Oplossingen
iOS
- Verbeteringen aan de nauwkeurigheid van de regel voor Afgeknipte Tekst
Android
- Verbeteringen aan de nauwkeurigheid van de volgende regels: Focusbare Tekst, Naam Bewerken Tekst, Onaantoegankelijke Actie en Genest Focusbaar Element
Veroudering & Verwijderingen
iOS
De optInToSupportsDynamicType-eigenschap is verouderd. De regel Ondersteunt Dynamic Type draait nu standaard. Als je eerder voor deze regel hebt gekozen, verwijder dan de eigenschap uit je code.
Android
De regels Geneste Actieve Controle en Geneste Elementnaam zijn uitgeschakeld en deze problemen worden niet langer in je resultaten gemarkeerd. Beide regels worden verwijderd - althans tijdelijk - op een later tijdstip.
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 op de hoogte stellen zodra het is opgelost of informeren over een geïdentificeerde oplossing als er geen is vermeld.
- Axe DevTools Mobile geautomatiseerde tests draaien op native iOS, native Android en React Native applicaties. Neem contact op met je Deque-vertegenwoordiger voor toegankelijkheidstestoplossingen op jouw technologieplatform.
- Hoewel je enkele resultaten kunt krijgen van webweergaven of weergegeven PDF's, raden we ten zeerste aan om te testen met Axe DevTools for Web of Axe Monitor voor de meest uitgebreide toegankelijkheidstests voor het web.
iOS
Onvolledige resultaten voor Supports Dynamic Type-regel op schermen met procenttekens in tekst
Op iOS 26 en later, als een scherm tekst met een procentteken bevat (bijv. een tekstlabel met de tekst "50% Korting"), kan de regel Ondersteunt Dynamic Type als Onvolledig rapporteren in plaats van een geslaagd of mislukt resultaat. Deze regel is afhankelijk van een toegankelijkheidsaudit die door Apple wordt verstrekt, en die audit stopt de test zodra deze procenttekens tegenkomt. Om je tests door te laten gaan, slaat onze regel de controle voor dat scherm over en rapporteert onvolledig voor elk element met een procentteken. Alle andere regels draaien normaal op het scherm, en andere schermen worden niet beïnvloed.
Er is geen actie vereist, aangezien je scan toch wordt voltooid. Om Dynamic Type-ondersteuning voor deze schermen te controleren, verhoog je de tekstgrootte op je apparaat onder **Instellingen** > **Toegankelijkheid** > **Weergave & Tekstgrootte** > **Grote Tekst**, en bevestig je dat de tekst op het scherm op de juiste schaal wordt weergegeven. Dit probleem is gemeld aan Apple. (#2985)
Kleurcontrast kan draaien op uitsluitend op pictogram gebaseerde elementen vanwege OCR
De Kleurcontrast-regel maakt gebruik van Apple's Vision-framework (Optical Character Recognition, of OCR) om tekst binnen de grenzen van een element te lezen. OCR kan soms kleine, icoonachtige symbolen - zoals terugpijlen (<), opsommingstekens, decoratieve symbolen - foutief als tekst beschouwen. Als dat gebeurt, wordt de Kleurcontrast-regel toegepast op een element dat geen leesbare tekst bevat, wat kan resulteren in een resultaat voor een knop met alleen een icoon. Omdat OCR-uitvoer niet deterministisch is bij verschillende scans, kan hetzelfde element in de ene scan in de Kleurcontrast-resultaten verschijnen en in de volgende als "NIET VAN TOEPASSING" worden gerapporteerd. Dit is een bekende eigenschap van OCR, geen bug in de regel.
Om dit probleem te omzeilen, kunt u de ignore API's gebruiken om Kleurcontrast-resultaten voor de betreffende elementen te onderdrukken.
// Ignore Color Contrast for a specific element by accessibility identifier
axeDevTools?.configuration.ignore(rulesFor: [
"backButton": [AxeRuleId.ColorContrast.toString()]
])
// Or ignore Color Contrast globally
axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())Lees meer over regels negeren.
Valse positieve resultaten met Schermtitel in Flutter-apps
Flutter mappt niet AppBar.title naar de native schermtitel-eigenschap - UIViewController.title, waardoor de Schermtitel-regel faalt op alle Flutter-schermen, ongeacht of er een beschrijvende titel aanwezig is.
Dit is een bekende beperking van het Flutter-platform dat wordt gevolgd in flutter/flutter#185894.
Valse positieve resultaten voor de Kleurcontrast-regel met verloopachtergronden op kleine schermen
Bij het uitvoeren van toegankelijkheidscontroles op kleinere schermformaten of met kleinere lettergroottes, kan de Kleurcontrast-regel valse positieve resultaten rapporteren voor verloopachtergronden. In dergelijke gevallen kan het mogelijk zijn dat de voorgrondkleur niet kan worden bepaald en in plaats daarvan achtergrondkleuren met elkaar worden vergeleken, wat kan leiden tot een mislukking.
Om dit probleem te omzeilen, probeer toegankelijkheidscontroles uit te voeren op grotere apparaten. Alternatief kunt u ervoor kiezen de regel in uw tests te negeren en de Kleurcontrast handmatig te controleren voor deze weergaven.
Onnauwkeurige isVisible eigenschap van XCTest
Apple's toegankelijkheids-API's kunnen webinhoud binnen WKWebView ten onrechte rapporteren als "isVisible", zelfs wanneer de webview wordt bedekt door native overlays (zoals modale vensters, waarschuwingen of andere native UI-elementen). Dit gebeurt omdat het toegankelijkheidssysteem controleert of de WKWebView-container zelf zichtbaar is, in plaats van of de webinhoud daadwerkelijk ongehinderd en waarneembaar is voor de gebruiker.
iOS 26 toegankelijkheidsfout met steppers
iOS 26 bevat een toegankelijkheidsfout waarbij standaardstepperknoppen niet "uitgeschakeld" worden aangekondigd door hulpmiddelen voor toegankelijkheid om aan te geven dat ze niet ingeschakeld zijn. Als gevolg daarvan zien de iOS-regels deze knoppen ook als ingeschakeld, zelfs als ze dat niet zijn. Er is een bugrapport ingediend bij Apple, maar totdat dit is opgelost, kunnen de volgende regels resultaten rapporteren bij uitgeschakelde stepperknoppen: AssociatedText, InaccessibleAction, en ColorContrast.
Totdat Apple deze bug oplost, is de oplossing om de [regels te negeren](ios-ignore-rule). De standaardstepperknoppen hebben de identifiers "Decrement" en "Increment", en kunnen indien nodig worden genegeerd per identifier.
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.
Valse positieve resultaten: LabelInName en LabelAtFront in SwiftUI & Cross Platform Apps
Sommige schermen kunnen valse positieve resultaten rapporteren met LabelInName en LabelAtFront vanwege een onjuiste gevonden associatedText-eigenschap (#1622)
Regels tegen geneste bedieningselementen
Tijdens het verbeteren van onze regels ontdekten we dat in XCTest, geneste bedieningselementen niet in de toegankelijkheidsboom worden geretourneerd. Er is een bug gemeld bij Apple. (#1110)
ImageView Naam Regel heeft Beoordelingsresultaten nodig voor UIKit-apps
In UIKit-apps is een afbeelding zonder een `accessibilityLabel` niet standaard focusbaar met assistieve technologie.
De eigenschappen die we gebruiken om focusbaarheid van Apple te controleren kunnen onnauwkeurig zijn wanneer een `accessibilityIdentifier` is ingesteld op de afbeelding. Vanwege dit onverwachte gedrag zullen resultaten voor ImageView Naam-problemen in UIKit-apps als Beoordelingsresultaten worden gerapporteerd. Er is een bugrapport ingediend bij Apple. (#1633)
Valse positieve resultaten: 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 positieve resultaten en zullen deze lijst bijwerken zodra oplossingen worden uitgebracht.
In Scroll View
Tekst binnen banner-achtige elementen, plakkerige kop- en voetteksten, zwevende actieknoppen en aangepaste tabweergaven kunnen worden gemarkeerd met een "Beoordeling nodig" of "Mislukt" bericht. Om deze elementen beschikbaar te maken voor degenen die grotere tekst nodig hebben, gebruik UILargeContentViewer. (#622, #2077)
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 bedieningselementen erin genest, kan Active Control Name een vals positief resultaat rapporteren op de UIImageView. Het verwijderen van de accessibilityIdentifier lost het probleem op. Er is een bug gemeld bij Apple. (#1633)
Label In Name and Label At Front
Deze twee regels zoeken naar het zichtbare label van een controle onder nabijgelegen elementen om de status van de regel te bepalen. In sommige weergavehiërarchieën kan de onjuiste naburige tekst worden gedetecteerd, waardoor deze regels kunnen falen. (#1622)
Android
Label aan de Voorkant valse positieve resultaten met verhulde zichtbare tekst
De Label aan de Voorkant-regel controleert of het zichtbare label van een element aan het begin van de aangekondigde tekst komt. Een regelmislukking kan optreden wanneer de zichtbare tekst van een interactief element een afkorting bevat (bijv. "GB", "km") of een verhulde / afgekorte identifier, en de toegankelijkheidsaankondiging bestaat uit de vertegenwoordigde woorden (bijv. "gigabytes", "kilometers"), ook al is dit het aanbevolen patroon om afgekorte of afgeknotte inhoud schermlezer-vriendelijk te maken.
Als het eerste deel van het zichtbare label van een interactief element overeenkomt met het begin van de schermlezer-aankondiging en alleen het afgekorte / verhulde gedeelte verschilt, kan het gemarkeerde resultaat veilig worden genegeerd. Verifieer met een schermlezer dat de volledige aankondiging zoals bedoeld wordt gelezen.
Potentiële toegankelijkheidsproblemen voor Focusable Text
Bij het gebruik van decoratieve tekst in weergaven zoals "Contacticonen", is het mogelijk om een toegankelijkheidsprobleem te introduceren. Als u een tekstweergave gebruikt om letters weer te geven in plaats van afbeeldingen te genereren met de gewenste letters als vectoren, en u verklaart vervolgens die tekstweergave als niet belangrijk voor toegankelijkheid, kunnen we niet betrouwbaar vaststellen of u een toegankelijkheidsfout heeft geïntroduceerd.
Als u bewerkbare tekst zo aanpast dat deze twee of minder tekens negeert, kunt u per ongeluk veel een-woordknoppen in verschillende talen negeren (bijv. "OK", "No", "Sí"). Om deze problemen te voorkomen, dient u de gewenste letters uit het woord te halen dat u wilt weergeven in het pictogram en de letters als onderdeel van de afbeelding te genereren in plaats van als afzonderlijke tekstweergaven. `FocusableText` zal dan niet draaien op die weergaven.
Schermtitel vals-positief in Flutter-apps
Flutter koppelt niet AppBar.title aan de native schermtitel-eigenschap - Activity.setTitle, waardoor de regel voor schermtitel naar voren komt op alle Flutter-schermen, ongeacht of er een beschrijvende titel aanwezig is.
Dit is een bekende platformbeperking van Flutter die wordt bijgehouden in flutter/flutter#185894.
Aangekondigde tekstdetectie vals-positief
In sommige gevallen vertrouwt assistieve technologie op AccessibilityEvent beschrijvingen van het Android-systeem om informatie aan de gebruiker aan te kondigen wanneer er geen andere aankondiging beschikbaar is. Omdat AccessibilityEvents worden geactiveerd door gebruikersacties, kunnen we niet de juiste beschrijving krijgen als deze informatie niet wordt verstrekt.
Om dit probleem te voorkomen, zorg ervoor dat alle relevante weergaven als belangrijk voor toegankelijkheid zijn gemarkeerd. Hierdoor kan Talkback de informatie van de weergave verkrijgen, die onze tool vervolgens kan detecteren.
Kleurcontrastregel werkt niet als 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 waar de tekst in een weergave dezelfde kleur heeft als de achtergrond, kan ons machine learning-algoritme niet bepalen of er tekst aanwezig is, waardoor de kleurcontrastregel niet op deze weergave wordt uitgevoerd.
EditTextName op Android 7 (SDK 24-25)
Apps geschreven met XML die de hint-tekstfunctie gebruiken, kunnen vals-positieven zien met de EditTextName regel. Hint-tekst werd pas geïntroduceerd met Android 8 (SDK 26). Door dit element in uw XML-app te gebruiken, wordt de hint-tekst toegewezen aan de waarde van het tekstinvoerveld. Recentere versies van Android zijn beter uitgerust om deze ervaring toegankelijk te maken.
Om dit probleem op te lossen, is onze eerste aanbeveling om uw tests op nieuwere versies van Android uit te voeren. Als het echter belangrijk is dat de app toegankelijk is op eerdere Android-versies, kunt u overwegen om het gebruik van de hintText functie te vermijden, aangezien deze niet officieel wordt ondersteund.
Verstopte Android-weergaven geven resultaten terug
U kunt resultaten zien voor weergaven die verborgen zijn achter andere weergaven op het scherm. Deze verborgen weergaven zijn niet beschikbaar 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 vereisen geen oplossing om toegankelijkheid te garanderen.
Fout bij het uitvoeren van ML Kit-tekstdetectie
ML Kit-tekstdetectie is vereist in veel van de Axe DevTools Mobile-regels om de nauwkeurigheid van de resultaten te waarborgen. De ML Kit-bibliotheek zou automatisch moeten worden geïmporteerd wanneer naar Axe DevTools Mobile wordt verwezen in uw geautomatiseerde Espresso- of UIAutomator-tests. In sommige gevallen gebeurt de automatische import echter niet en ziet u 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 aan uw project toevoegen. Voeg in het bestand van uw applicatie het volgende toe onder dependencies: build.gradle
debugImplementation 'com.google.mlkit:text-recognition:16.0.1'U kunt een volledig werkend voorbeeld vinden van de ML Kit-bibliotheek die wordt geïmporteerd in de Android Mobile SDK-keuzehulp voor beginners, onder Implementatie
Touch Target-afstand en Jetpack Compose
De Touch Target-afstandsregel wordt momenteel niet uitgevoerd op schuifcomponenten die in Jetpack Compose zijn geschreven. Er kan op dit moment geen actie worden ondernomen. Er komt echter snel een oplossing!
Fout bij het lokaal opslaan van resultaten op API 30
Op Android API 30 heeft een van de locaties waarvoor we resultaten lokaal proberen op te slaan, een toestemmingsfout. Het resultaat wordt nog steeds als een JSON-bestand opgeslagen, ondanks dat deze fout wordt weergegeven. 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
// }
}Houd er rekening mee dat deze code alleen voor API 30 moet worden uitgeschakeld, omdat dit problemen zal veroorzaken bij het lokaal opslaan voor andere API-niveaus.
Scroll-detectie op hybride apps en cross-platform apps
In sommige hybride en cross-platform-apps kunnen we onverwachte resultaten teruggeven wanneer items in een scrollweergave gedeeltelijk buiten het scherm zijn. Om een element te testen op toegankelijkheid, zorg ervoor dat het volledig zichtbaar is voordat u de scan uitvoert.
Analyzer-app: zwevende actiekop verdwijnt
Geïntroduceerd met API 31 (Android 12) is de mogelijkheid om niet-systeem overlays te verbergen. Om de Axe Analyzer-app te gebruiken, zorg ervoor dat deze instelling niet is ingeschakeld. Als u ervoor heeft gekozen om deze functie te gebruiken vanwege de verbeterde beveiliging, raden we aan deze uitgeschakeld te laten voor interne testbuilds waar u veilig testgegevens kunt gebruiken om veiligheidsproblemen zo te 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, update alle oproepen naar de methode setHideOverlayWindows(true) naar setHideOverlayWindows(false) op de getroffen activiteitsvensters.
Schermafbeelding ontbreekt (zwart blok) in het dashboard
Om alle functionaliteiten van Axe DevTools voor mobiel te ontgrendelen, zorg er dan voor dat schermafbeeldingen zijn ingeschakeld. We raden aan om schermafbeeldingen in te schakelen op een debug- of testversie van uw app die mock-gegevens gebruikt om veiligheidsproblemen te voorkomen. Bekijk onze gids voor schermafbeeldingen inschakelen in Android-apps.
Crash wanneer minifiedEnabled is ingesteld op true
Als u uw build minifyt, ziet u een crash met een foutlogboek waarin staat dat er geen adapter gevonden kon worden bij het inloggen op de Axe DevTools-bibliotheek. Schakel minify uit voor uw debug-builds met geïmplementeerde Axe DevTools. (#729)
Builds met ingeschakelde r8 geven een fout
Een build met ingeschakelde r8 kan proberen de axeDevTools-bibliotheek te minimaliseren wat resulteert in een foutmelding 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)
Om deze fout op te lossen, voeg de volgende regel toe aan uw ProGuard-bestand om axeDevTools-klassen te behouden:
keep class com.deque.** { *; }Foutmeldingen bij het gebruik van Compose APIs
De Compose APIs zijn verouderd, gebruik alstublieft de layout onafhankelijke APIs om updates te blijven ontvangen. Als u de Compose APIs blijft gebruiken en een fout tegenkomt zoals `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)` of `No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?`, raadpleeg dan de Compose setTestTag API.
MAUI: Bewerk Tekstnaamregel
Door beperkingen van de MAUI-apparchitectuurweergave in het Android-ecosysteem, zal de Bewerk Tekstnaamregel worden weergegeven als "Moet worden gecontroleerd" in het dashboard wanneer een mislukking wordt vermoed voor SDK-versie 5.5.0 en hoger. Bevestig in dit geval handmatig correct gedrag.
Native Android: Aangepaste Dialogen / Modals
Wanneer u aangepaste dialogen of modals implementeert die niet de native controles uitbreiden, kunt u resultaten krijgen voor weergaven achter de modal. In dit geval raden we aan onze tool niet te gebruiken bij deze aangepaste modals of dialogen en in plaats daarvan ze handmatig te controleren om ervoor te zorgen dat ze naar wens samenwerken met hulpmiddelen voor toegankelijkheid.
Web Dashboard
Ontbrekende Screenshot
Als de screenshot ontbreekt op de scan-gegevenspagina, kan het zijn dat uw app het maken van screenshots verhindert. Vaak is dit om veiligheidsredenen in uw productieapplicatie. Overweeg deze vereiste te verwijderen voor uw testbuild om volledige functionaliteit in het Axe DevTools Mobile Dashboard toe te staan.
Sommige Android-scan namen zijn onopgemaakt
Sommige Android-scan namen die standaard op de schermtitel zijn ingesteld, zullen verschijnen als de volledige klassennaam inclusief de bundel identifier. In een toekomstige release zal dit worden opgelost zodat de schermtitel wordt geformatteerd tot een leesbaardere naam. Als tijdelijke oplossing kunt u de scan naam instellen vanuit het dashboard of frameworks. (#1643)
