Axe DevTools Mobile Release-opmerkingen 30 juni 2026
30 juni 2026
Componentversies
iOS
- iOS SDK (axeDevToolsXCUI v4.0.1)
Hoe te updaten: iOS SDK
Android
- Android SDK (axe-devtools-android v9.0.0)
- Android Gradle Plugin (axe-devtools-android-plugin v1.1.0)
- Android Analyzer (axe Accessibility Analyzer v3.0.0)
Hoe te updaten: Android Gradle Plugin, Android Analyzer
Wat is nieuw?
iOS Nieuwe Regel: Afgesneden Tekst
Deque heeft een blijvende toewijding om regels te bieden en te optimaliseren die echte toegankelijkheidsproblemen nauwkeurig detecteren. Onze nieuwste regel voor iOS helpt ervoor te zorgen dat inhoud zichtbaar blijft voor gebruikers, ongeacht hun voorkeur voor tekstgrootte. Meer informatie over deze regel: Afgesneden Tekst.
Nieuwe API's
Je kunt de volgende API's gebruiken bij het uitvoeren van gerichte tests op zowel iOS als Android.
- Door te bellen
generateHtmlReportAndSummaryper testuitvoering wordt er een zelfstandige HTML-rapportage geproduceerd en lokaal op je apparaat opgeslagen. startScanSessionstart een testsessie en maakt verbinding met Axe Developer Hub, waar de resultaten worden gepost. Let op datstartSessionis verouderd ten gunste vanstartScanSession.
Configureerbaar Uitvoerpaden voor Resultaten
Je kunt nu de axeHtmlReportPath aangeven voor zowel Auto Scan als Gerichte Testen op Android. Standaard worden resultaten opgeslagen in build/reports/AxeDevToolsMobileResults. Bij gebruik van Auto Scan worden resultaten automatisch naar deze locatie gestuurd. Bij het uitvoeren van Gerichte Testen worden de resultaten opgeslagen op deze locatie wanneer het generateHtmlReportAndSummary API wordt gebruikt om handmatig een rapport te bouwen.
Evenzo ondersteunt iOS Auto Scan nu een door de gebruiker configureerbare uitvoermap voor het HTML-rapport en de samenvatting .txt. Voorheen was de uitvoerlocatie gecodeerd naar ~/AxeDevToolsMobileResults.
Oplossingen
iOS
- Een probleem met landscape-screenshots op fysieke apparaten opgelost
- In SwiftUI worden full-screen scans niet langer onterecht als gedeeltelijk gemarkeerd
- Verbeterde prestaties van Auto Scan
- Verbeteringen in de nauwkeurigheid van Kleurcontrast en In ScrollView-regels
Updates
iOS
- Auto Scan JSON-uitvoer is nu geconsolideerd onder
AxeDevToolsMobileResults/axe-test-data axeProjectIdis nu vereist inaxe_config.jsonvoor Auto Scan
Verouderingen & Verwijderingen
iOS
- De verouderde
login(withUsername:andPassword:toServer:)authenticatiestroom is verwijderd - De
startSession(apiKey: String, projectId: String, serverUrl: String)methode voor het posten van resultaten naar Developer Hub met gerichte tests is afgeschaft, enstartScanSession(apiKey: String, projectId: String, axeAccountUrl: String)is opgezet om deze te vervangen - De
axeServerUrlconfiguratie-eigenschap voor Auto Scan is afgeschaft, enaxeAccountUrlis opgezet om deze te vervangen
Android
- De afgeschafte
loginWithUsername(username: String, password: String, serverConfig: String)authenticatiestroom is verwijderd - De
startSession(apiKey: String, projectId: String, serverUrl: String)methode voor het posten van resultaten naar Developer Hub met gerichte tests is afgeschaft, enstartScanSession(apiKey: String, projectId: String, axeAccountUrl: String)is opgezet om deze te vervangen - De
axeServerUrlconfiguratie-eigenschap voor Auto Scan is afgeschaft, enaxeAccountUrlis opgezet om deze te vervangen
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 als er geen is vermeld.
- Axe DevTools Mobile geautomatiseerd testen draait op native iOS, native Android, en React Native applicaties. Neem contact op met je Deque-vertegenwoordiger voor toegankelijkheidstestoplossingen op je technische stack.
- Hoewel je enkele resultaten kunt krijgen van webviews of weergegeven PDF's, raden we sterk aan om te testen met axe DevTools voor Web of axe Monitor voor de meest uitgebreide toegankelijkheidstests voor het web.
iOS
Kleurcontrast kan draaien op alleen-icoon elementen vanwege OCR
De Kleurcontrastregel gebruikt Apple's Vision-framework (Optical Character Recognition, of OCR) om tekst binnen de grenzen van een element te lezen. OCR kan soms kleine icoonachtige glyphs - zoals pijlterug-chevron (<), opsommingstekens, decoratieve symbolen - ten onrechte als tekst identificeren. Wanneer dat gebeurt, voert de Kleurcontrastregel een controle uit op een element dat geen leesbare tekst bevat, wat kan resulteren in een resultaat voor een knop met alleen icoon. Omdat de OCR-uitvoer niet deterministisch is over scans heen, kan hetzelfde element in de Kleurcontrastresultaten verschijnen in de ene scan en als "NIET VAN TOEPASSING" worden gerapporteerd in de volgende. Dit is een bekend kenmerk van OCR, en geen fout in de regel.
Om dit probleem te omzeilen, kun je de ignore API's gebruiken om Kleurcontrastresultaten voor de getroffen elementen te onderdrukken.
// Ignore Color Contrast for a specific element by accessibility identifier
axeDevTools?.configuration.ignore(rulesFor: [
"backButton": [AxeRuleId.ColorContrast.toString()]
])// Of negeer Kleurcontrast wereldwijd axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())
Meer informatie over het negeren van regels.
Schermtitel false positive in Flutter-apps
Flutter map niet AppBar.title naar de native screen title-eigenschap - UIViewController.title, waardoor de Schermtitelregel op alle Flutter-schermen faalt, ongeacht of er een beschrijvende titel aanwezig is.
Dit is een bekende Flutter-platformbeperking die wordt gevolgd in flutter/flutter#185894.
False positives voor Kleurcontrastregel met gradiëntachtergronden op kleine schermen
Wanneer toegankelijkheidscontroles worden uitgevoerd op kleinere schermgroottes of met kleinere lettergroottes, kan de Kleurcontrastregel valse positieven rapporteren voor gradiëntachtergronden. In dergelijke gevallen is het mogelijk dat de voorgrondkleur niet kan worden bepaald en in plaats daarvan achtergrondkleuren met elkaar worden vergeleken, wat resulteert in een mislukking.
Om dit probleem te omzeilen, probeer toegankelijkheidscontroles uitvoeren op grotere apparaten. Als alternatief kun je ervoor kiezen om de regel in je tests te negeren en de Kleurcontrast handmatig voor deze weergaven te controleren.
Onnauwkeurige isVisible eigenschap van XCTest
Apple's toegankelijkheidstools kunnen webinhoud binnen WKWebView ten onrechte rapporteren als "isVisible", zelfs wanneer het 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 onbelemmerd is en waarneembaar voor de gebruiker.
iOS 26 toegankelijkheidsbug met steppers
iOS 26 bevat een toegankelijkheidsbug waarbij standaard stapknoppen niet "gedimd" aankondigen via Assistentietechnologie om aan te geven dat ze niet ingeschakeld zijn. Als gevolg hiervan 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 op uitgeschakelde stapknoppen rapporteren: AssociatedText, InaccessibleAction, en ColorContrast.
Totdat Apple deze bug oplost, is de oplossing om [de regels te negeren](ios-ignore-rule). De standaard stappenknoppen hebben de identificaties „Decrement“ en „Increment“ en kunnen indien nodig op basis van de identificatie worden genegeerd.
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.
Vals Positief: LabelInName en LabelAtFront in SwiftUI & Cross Platform Apps
Sommige schermen kunnen valse positieven rapporteren met LabelInName en LabelAtFront vanwege een onjuist associatedText-eigenschap die wordt gevonden (#1622)
Ondersteuning Dynamische Type-regel werkt niet met de iOS 15 Pro-simulator
Er is een probleem dat de iPhone 15 Pro-simulator treft waardoor de ondersteuning Dynamische Type-regel niet kan worden uitgevoerd. Als u zich heeft aangemeld voor de ondersteuning Dynamische Type-regel, kunt u deze niet testen met een iPhone 15 Pro-simulator. Er is een bug ingediend bij Apple.
Regels tegen geneste controles
Tijdens het zoeken naar een verbetering voor onze regels, hebben we ontdekt dat in XCTest geneste controles niet worden geretourneerd in de toegankelijkheidsstructuur. Er is een bug ingediend bij Apple. (#1110)
ImageView Naamregel heeft herzieningsresultaten nodig voor UIKit Apps
In UIKit-apps is een afbeelding zonder een `accessibilityLabel` standaard niet focusbaar met ondersteunende technologie.
De eigenschappen die we gebruiken om fokuseerbaarheid van Apple te controleren, kunnen onnauwkeurig zijn wanneer een `accessibilityIdentifier` is ingesteld op de afbeelding. Vanwege dit onverwachte gedrag zullen resultaten voor ImageView Naamproblemen in UIKit-apps als Herziening Nodig worden gerapporteerd. Er is een bugrapport ingediend bij Apple. (#1633)
Vals Positief: In Scroll View, Label In Name, Label aan de Voorzijde, en v2.11.0 Afbeeldingweergavenaam & ActiveControlName
We werken actief aan oplossingen voor de volgende valse positieven en zullen deze lijst bijwerken naarmate er oplossingen worden uitgebracht.
In Scroll View
Tekst binnen elementen die als banners fungeren, kan worden gemarkeerd met een „Herziening Nodig“-melding. 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 bevat focusbare controles erin genesteld, kan ActiveControlName een vals positief resultaat melden 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 controle tussen nabijgelegen elementen om de status van de regel te helpen bepalen. In sommige weergavehiërarchieën kan onjuiste nabijgelegen tekst worden gedetecteerd, waardoor deze regels mislukken. (#1622)
Android
Mogelijke toegankelijkheidsproblemen voor focusbare tekst
Wanneer decoratieve tekst in weergaven zoals „Contacticoontjes“ wordt gebruikt, is het mogelijk om een toegankelijkheidsprobleem te introduceren. Als je een tekstweergave gebruikt om letters weer te geven in plaats van afbeeldingen met de gewenste letters als vectoren te genereren, en je vervolgens verklaart dat die tekstweergave niet belangrijk is voor toegankelijkheid, kunnen we niet betrouwbaar vaststellen of je een toegankelijkheidsschending hebt geïntroduceerd.
Als u bewerkbare focusbare tekst bewerkt om twee of minder tekens te negeren, kunt u per ongeluk veel eenwoordknoppen in verschillende talen negeren (bijv. „OK“, „Nee“, „Sí“). Om deze problemen te vermijden, moet u de gewenste letters uit het woord halen dat u wilt weergeven in het pictogram en deze letters genereren als onderdeel van de afbeelding in plaats van als afzonderlijke tekstweergaven. `FocusableText` zal dan niet draaien op die weergaven.
Schermtitel vals positief in Flutter-apps
Flutter map niet AppBar.title naar de native schermtitel-eigenschap - Activity.setTitle, waardoor de Schermtitelregel faalt op alle Flutter-schermen, ongeacht of er een beschrijvende titel aanwezig is.
Dit is een bekende Flutter platformbeperking die wordt bijgehouden in flutter/flutter#185894.
Aangekondigde tekstdetectie vals positief
In sommige gevallen is assistieve technologie afhankelijk van AccessibilityEvent beschrijvingen van het Android-systeem om informatie aan de gebruiker aan te kondigen wanneer er geen andere aankondiging beschikbaar is. Aangezien AccessibilityEvents worden geactiveerd door gebruikersacties, kunnen we niet op de juiste beschrijving toegang krijgen als deze informatie niet wordt verstrekt.
Om dit probleem te voorkomen, zorg ervoor dat alle relevante weergaven als belangrijk voor toegankelijkheid worden gemarkeerd. Dit zal Talkback in staat stellen de informatie uit de weergave te halen, die ons hulpmiddel vervolgens kan detecteren.
Kleurcontrastregel werkt niet 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 waar de tekst in een weergave dezelfde kleur heeft als de achtergrond, is ons machine learning-algoritme niet in staat om te detecteren of er tekst aanwezig is, dus wordt de kleurcontrastregel niet uitgevoerd op deze weergave.
EditTextName op Android 7 (SDK 24-25)
Apps geschreven met XML die gebruikmaken van de hinttext-functie, kunnen valse positieven zien met de EditTextName regel. Hinttext werd pas bij Android 8 (SDK 26) geïntroduceerd. Het gebruik van dit element in uw XML-app zal de hinttext toewijzen aan de waarde van het tekstinvoerveld. Nieuwere 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 echter belangrijk is dat de app toegankelijk is op eerdere Android-versies, kunt u overwegen het gebruik van de hintText functie te vermijden, aangezien deze niet officieel wordt ondersteund.
Android verborgen weergaven die resultaten retourneren
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 overeenkomende problemen negeren. Ze vereisen geen oplossing om toegankelijkheid te waarborgen.
Fout bij uitvoeren van ML Kit Tekstdetectie
ML Kit-teksdetectie is vereist in veel van de axe DevTools Mobile-regels om de nauwkeurigheid van de resultaten te garanderen. De ML Kit-bibliotheek moet automatisch worden geïmporteerd bij het verwijzen naar axe DevTools Mobile in uw geautomatiseerde Espresso- of UIAutomator-tests. In sommige gevallen vindt de automatische import echter niet plaats en ziet u de volgende fout in de logcat:
Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.
Om dit probleem te overwinnen, 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:
debugImplementation 'com.google.mlkit:text-recognition:16.0.1'
Find a full working example of the ML Kit library being imported in the Android Mobile SDK Getting Started section, under Implementatie
Aanraakdoelafstand en Jetpack Compose
De regel voor aanraakdoelafstand wordt momenteel niet uitgevoerd op schuifregelaarcomponenten die zijn geschreven in Jetpack Compose. Er kan op dit moment geen actie worden ondernomen. Er komt echter binnenkort een oplossing!
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 machtigingsfout. 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 commentariëren:
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 moet worden uitgecommentarieerd voor API 30, omdat dit problemen zal veroorzaken bij 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 terugkrijgen wanneer items in een scroll-view gedeeltelijk buiten beeld zijn. Om een element te testen op toegankelijkheid, zorg ervoor dat het volledig in beeld is voordat u de scan uitvoert.
Analyzer-app: Actieknop verdwijnt
Geïntroduceerd met API 31 (Android 12) is de mogelijkheid om niet-systeemoverlays te verbergen. Om de axe Analyzer-app te gebruiken, zorg ervoor dat deze instelling niet is ingeschakeld. Als u ervoor heeft gekozen deze functie te benutten vanwege de beveiligingsverbeteringen, raden we aan deze uit te laten voor interne testversies waar u veilig testgegevens kunt gebruiken en beveiligingsproblemen op die manier kunt elimineren. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
Om gebruik te maken van de axe Accessibility Analyzer-app, update alle aanroepen naar de methode setHideOverlayWindows(true) naar setHideOverlayWindows(false) op de getroffen actieve vensters.
Schermafbeelding ontbreekt (zwart blok) in het dashboard
Om de volledige functionaliteit van axe DevTools voor mobiel te ontgrendelen, zorg ervoor dat schermafbeeldingen zijn ingeschakeld. We raden aan schermafbeeldingen in te schakelen in een debug- of testversie van uw app die gebruikmaakt van mock data om beveiligingsproblemen te voorkomen. Bekijk onze handleiding voor schermafbeeldingen inschakelen in Android-apps.
Crash wanneer minifiedEnabled is ingesteld op true
Als u uw build minimaliseert, ziet u een crash met een foutlogboek waarin wordt gemeld dat een adapter niet kan worden gevonden wanneer u probeert in te loggen op de axe DevTools-bibliotheek. Schakel het minimaliseren uit voor uw debug-builds met geïmplementeerde axe DevTools. (#729)
Builds met r8 ingeschakeld gooien een fout
Een build met r8 ingeschakeld kan proberen de axeDevTools-bibliotheek te minimaliseren, wat resulteert in een foutmelding die lijkt op:
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.** { *; }
Foutmeldingen bij gebruik van Compose API's
De Compose API's zijn verouderd, gebruik alstublieft de layout-agnostische API's om door te gaan met het ontvangen van updates. Als u doorgaat met het gebruiken van de Compose API's 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 alstublieft de Compose setTestTag API.
MAUI: Regel voor bewerking van tekstnaam
Vanwege beperkingen van de MAUI-apparchitectuur bij rendering in het Android-ecosysteem, zal de regel voor het bewerken van tekstnamen als 'Moet beoordeeld worden' in het dashboard worden weergegeven wanneer een fout wordt vermoed voor SDK-versie 5.5.0 en hoger. Bevestig in dit geval handmatig het juiste gedrag.
Native Android: Aangepaste dialogen/modals
Wanneer u aangepaste dialogen of modals implementeert die niet de native controls uitbreiden, kunt u resultaten krijgen voor weergaven achter de modal. In dit geval raden we aan onze tool niet tegen deze aangepaste modals of dialogen te gebruiken en ze in plaats daarvan handmatig te controleren om ervoor te zorgen dat ze correct werken met ondersteunende technologie.
Webdashboard
Ontbrekende schermafbeelding
Als de schermafbeelding ontbreekt op de scangegevenspagina, kan het zijn dat uw app verhindert dat er schermafbeeldingen worden gemaakt. Vaak is dit om beveiligingsredenen in uw productieapplicatie. Overweeg deze vereiste voor uw testbuild te verwijderen om volledige functionaliteit in het axe DevTools Mobile Dashboard mogelijk te maken.
Sommige Android-scannamen zijn niet opgemaakt
Sommige Android-scannamen die standaard aan de schermtitel zijn gekoppeld, zullen verschijnen als de volledige klasnaam inclusief de bundelidentifier. In een toekomstige release zal dit worden opgelost zodat de schermtitel wordt opgemaakt tot een beter leesbare naam. Als oplossing kunt u de scannaam instellen vanaf het dashboard of frameworks. (#1643)
