Axe DevTools Mobile Release-opmerkingen van 20 juli 2026
20 juli 2026
Componentversies
Maestro
- Axe DevTools Mobile voor Maestro (axe-devtools-mobile-maestro v1.0.0)
- (Afgeleid van Maestro v2.6.0)
Wat is er nieuw?
Axe DevTools Mobile voor Maestro
Axe DevTools Mobile voor Maestro biedt ingebouwde toegankelijkheidsscanning voor Maestro, aangedreven door Axe DevTools voor Mobile SDK's. Wanneer u uw UI-testflows ermee uitvoert, kunt u eenvoudig geautomatiseerde toegankelijkheidscontroles direct in uw YAML activeren met twee opdrachten: axeStartScanSession en axeScan.
Bekende problemen
Als u een van de onderstaande problemen ondervindt, neem dan contact met ons op via helpdesk@deque.com of support.deque.com. We kunnen u dan op de hoogte stellen zodra het is opgelost of van een geïdentificeerde workaround als er geen wordt vermeld.
- Axe DevTools Mobile automatische tests werken op native iOS-, native Android- en React Native-applicaties. Neem contact op met uw Deque-vertegenwoordiger voor oplossingen voor toegankelijkheidstests op uw technologiepakket.
- Hoewel u mogelijk enkele resultaten krijgt van webweergaven of gerenderde 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 door 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 glyphs die op iconen lijken - zoals terug-pijl als <, bullits, decoratieve symbolen - als tekst onderscheiden. Wanneer dat gebeurt, wordt de Kleurcontrast-regel uitgevoerd op een element dat geen leesbare tekst bevat, wat een resultaat voor een knop met alleen iconen kan opleveren. Omdat OCR-uitvoer niet deterministisch is in scans, kan hetzelfde element in het ene scanresultaat in de Kleurcontrast resultaten verschijnen en in de volgende als "NIET VAN TOEPASSING" worden gerapporteerd. Dit is een bekende eigenschap van OCR, geen fout in de regel.
Om dit probleem te omzeilen, kunt u 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 regels negeren.
Valse positieve met Schermtitel in Flutter-apps
Flutter mappt niet naar 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 Flutter platformbeperking, bijgehouden in flutter/flutter#185894.
Valse positieve voor Kleurcontrast-regel met gradiëntachtergronden op kleine schermen
Bij het uitvoeren van toegankelijkheidscontroles op kleinere schermformaten of met kleinere lettergroottes kan de Kleurcontrast-regel valse positieve resultaten geven voor gradiëntachtergronden. In dergelijke gevallen kan het de voorgrondkleur mogelijk niet bepalen en in plaats daarvan achtergrondkleuren met elkaar vergelijken, wat resulteert in een fout.
Om dit probleem te omzeilen, probeer toegangstest op grotere apparaten uit te voeren. U kunt er ook voor kiezen de regel in uw tests te negeren en Kleurcontrast handmatig voor deze weergaven te controleren.
Onjuiste isVisible eigenschap van XCTest
Apple's toegankelijkheids-API's kunnen webinhoud in WKWebView ten onrechte rapporteren als "isVisible", zelfs wanneer de webweergave is bedekt met native overlays (zoals modale weergaven, 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 en waarneembaar is voor de gebruiker.
iOS 26 toegankelijkheidsbug met stappers
iOS 26 bevat een toegankelijkheidsbug waarbij standaardstapperknoppen niet "gedimd" aankondigen door Assistive Technology om aan te geven dat ze niet zijn ingeschakeld. 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 op uitgeschakelde stapperknoppen: AssociatedText, InaccessibleAction, en ColorContrast.
Totdat Apple dit probleem oplost, zal de oplossing zijn om [de regels te negeren](ios-ignore-rule). De standaardstapperknoppen hebben de identificaties "Afname" en "Toename" en kunnen indien nodig worden genegeerd op basis van identificatie.
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 positief: LabelInName en LabelAtFront in SwiftUI & Cross Platform-apps
Sommige schermen kunnen valse positieven rapporteren met LabelInName en LabelAtFront vanwege een onjuist gevonden associatedText-eigenschap (#1622)
Ondersteunt Dynamische Type-regel werkt niet met iOS 15 Pro-simulator
Er is een probleem dat de iPhone 15 Pro-simulator beïnvloedt, waardoor de regel Ondersteunt Dynamische Type niet kan worden uitgevoerd. Als u bent aangemeld voor de regel Ondersteunt Dynamische Type, kunt u deze niet testen met een iPhone 15 Pro-simulator. Een bug is ingediend bij Apple.
Regels tegen Geneste Besturingselementen
Bij het bekijken van een verbetering voor onze regels ontdekten we dat in XCTest geneste besturingselementen niet worden geretourneerd in de toegankelijkheidsboom. Er is een bugrapport ingediend bij Apple. (#1110)
ImageView Naam Regel heeft Resultatenbeoordeling voor UIKit-apps nodig
In UIKit-apps is een afbeelding zonder een `accessibilityLabel` standaard niet focusseerbaar met assistieve technologie.
De eigenschappen die we gebruiken om focusseerbaarheid van Apple te controleren, kunnen onnauwkeurig zijn wanneer er een `accessibilityIdentifier` is ingesteld op de afbeelding. Door dit onverwachte gedrag zullen resultaten voor ImageView Name-problemen in UIKit-apps worden gerapporteerd als 'Moet Beoordeeld worden'. Er is een bugrapport ingediend bij Apple. (#1633)
Valse positieven: In Scroll View, Label In Name, Label aan de Voorkant, en v2.11.0 Image View Name & ActiveControlName
We zijn actief bezig met oplossingen voor de volgende valse positieven en zullen deze lijst bijwerken zodra er oplossingen zijn uitgebracht.
In Scroll View
Tekst binnen elementen met een banner-gedrag kan worden gemarkeerd met een bericht "Moet Beoordeeld worden". Om deze elementen beschikbaar te maken voor zij 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 focusseerbaar is door VoiceOver, en het bevat focusseerbare controles binnenin, kan ActiveControlName een vals positief resultaat rapporteren voor 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 onder nabije elementen om de status van de regel te bepalen. In sommige weergavehiërarchieën kan de verkeerde nabije tekst worden gedetecteerd, waardoor deze regels kunnen falen. (#1622)
Android
Valse positieven bij Label aan de Voorkant met verborgen zichtbare tekst
De regel Label aan de Voorkant controleert of het zichtbare label van een element aan het begin van de aangekondigde tekst staat. Een regelmislukking kan optreden wanneer de zichtbare tekst van een interactief element een afkorting (bijv. "GB", "km") of een verborgen / afgekorte identifier bevat, en de toegankelijkheidsaankondiging de vertegenwoordigde woorden omvat (bijv. "gigabytes", "kilometers"), hoewel dit het aanbevolen patroon is om afgekorte of afgekapte 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 / verborgen gedeelte verschilt, kan het gemarkeerde resultaat veilig worden genegeerd. Controleer met een schermlezer of de volledige aankondiging naar wens wordt voorgelezen.
Potentiële toegankelijkheidsproblemen voor Focusseerbare Tekst
Bij het gebruik van decoratieve tekst in weergaven zoals "Contact Icons" is het mogelijk om een toegankelijkheidsprobleem te introduceren. Als je een tekstweergave gebruikt om letters weer te geven in plaats van afbeeldingen te genereren met de gewenste letters als vectoren, en je verklaart die tekstweergave vervolgens als niet belangrijk voor toegankelijkheid, kunnen we niet betrouwbaar vaststellen of je een toegankelijkheidsovertreding hebt geïntroduceerd.
Als je focusseerbare tekst aanpast om twee of minder tekens te negeren, kun je per ongeluk veel een-woordknoppen in verschillende talen negeren (bijv. "OK", "No", "Sí"). Om deze problemen te vermijden, moet je de gewenste letters uit het woord halen dat je in het pictogram wilt weergeven en de letters genereren als onderdeel van de afbeelding in plaats van als afzonderlijke tekstweergaven. `FocusableText` zal dan niet op die weergaven draaien.
Valse positieve schermtitel in Flutter-apps
Flutter komt niet overeen met AppBar.title met de native schermtitel-eigenschap - Activity.setTitle, waardoor de regel Schermtitel mislukt op alle Flutter-schermen, ongeacht of er een beschrijvende titel aanwezig is.
Dit is een bekende Flutter-plattformbeperking die wordt bijgehouden in flutter/flutter#185894.
Valse positieve detectie van aangekondigde tekst
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. Aangezien AccessibilityEvents worden geactiveerd door gebruikersacties, kunnen we niet de juiste beschrijving verkrijgen als deze informatie niet wordt verstrekt.
Om dit probleem te vermijden, zorg ervoor dat alle relevante weergaven als belangrijk voor toegankelijkheid worden gemarkeerd. Hierdoor kan Talkback de informatie van de weergave verkrijgen, die onze tool dan kan detecteren.
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 die in een weergave is opgenomen dezelfde kleur heeft als de achtergrond, kan ons Machine Learning-algoritme niet detecteren of er tekst aanwezig is, dus wordt de kleurcontrastregel niet op deze weergave uitgevoerd.
EditTextName op Android 7 (SDK 24-25)
Apps geschreven met XML die de hint-tekstfunctie gebruiken, kunnen valse positieven zien met de EditTextName regel. Hint-tekst werd pas geïntroduceerd vanaf Android 8 (SDK 26). Het gebruik van dit element in uw XML-app zal de hinttekst aan de waarde van het tekstinvoerveld toewijzen. Meer recente 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 officieel niet wordt ondersteund.
Android verborgen 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 waarborgen.
Fout bij het uitvoeren van ML Kit Tekstherkenning
ML Kit tekstherkenning is vereist in veel van de Axe DevTools Mobile-regels om de nauwkeurigheid van resultaten te waarborgen. De ML Kit-bibliotheek zou automatisch moeten worden geïmporteerd wanneer u verwijst naar Axe DevTools Mobile 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 te verhelpen, moet u de ML Kit-bibliotheek handmatig in uw project importeren. In de 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
Aanraakdoelafstanden en Jetpack Compose
De Touch Target Spacing-regel wordt momenteel niet uitgevoerd op schuifregelaarcomponenten 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 is er een machtigingsfout op een van de locaties waar we proberen resultaten lokaal op te slaan. Het resultaat wordt nog steeds opgeslagen als een JSON-bestand, 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, aangezien 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 vallen. Om een element voor toegankelijkheid te testen, zorg ervoor dat het volledig op het scherm is voordat u de scan uitvoert.
Analyzer App: Floating Action Button 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 ervoor hebt gekozen om deze functie te gebruiken vanwege de verbeterde beveiliging, raden we aan deze uit te laten voor interne testversies 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 aanroepen van de methode bij setHideOverlayWindows(true) naar setHideOverlayWindows(false) op de getroffen activiteitvensters.
Screenshot ontbreekt (zwart vak) in het dashboard
Om de volledige functionaliteit van Axe DevTools voor mobiel te ontgrendelen, zorg ervoor dat schermafbeeldingen zijn ingeschakeld. We raden aan om schermafbeeldingen in te schakelen op een debug- of testversie van je app die mockgegevens gebruikt om beveiligingsproblemen te voorkomen. Bekijk onze handleiding voor schermafbeeldingen inschakelen in Android-apps.
Crash wanneer minifiedEnabled op true is ingesteld
Als je je build minificeert, krijg je een crash met een foutenlogboek dat meldt dat een adapter niet kon worden gevonden bij het proberen in te loggen op de Axe DevTools-bibliotheek. Schakel minify 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 minificeren, wat resulteert in een fout 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 het gebruik van Compose-API's
De Compose-API's zijn verouderd, gebruik alsjeblieft de lay-out agnostische API's om updates te blijven ontvangen. Als je doorgaat met het gebruik 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 Compose setTestTag-API.
MAUI: Edit Text Name-regel
Vanwege beperkingen van de MAUI-apparchitectuur die renderen in het Android-ecosysteem, zal de Edit Text Name-regel in het dashboard als 'Moet worden beoordeeld' worden weergegeven wanneer een probleem wordt vermoed voor SDK-versie 5.5.0 en hoger. Bevestig in dit geval handmatig het correcte gedrag.
Native Android: Aangepaste dialogen/modals
Wanneer je aangepaste dialogen of modals implementeert die niet de native besturingselementen uitbreiden, kun je resultaten krijgen voor weergaven achter de modal. In dit geval raden we aan om onze tool niet uit te voeren tegen deze aangepaste modals of dialogen en in plaats daarvan ze handmatig te controleren om ervoor te zorgen dat ze zich gedragen zoals gewenst met assistive technologie.
Webdashboard
Ontbrekende schermafbeelding
Als de schermafbeelding ontbreekt op de scangegevenspagina, kan je app het maken van schermafbeeldingen verhinderen. Vaak is dit om beveiligingsredenen in je productie-applicatie. Overweeg om deze vereiste voor je 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 worden ingesteld op de schermtitel, worden weergegeven als de volledige classnaam, inclusief de bundelidentificatie. In een toekomstige release zal dit worden opgelost zodat de schermtitel wordt opgemaakt in een beter leesbare naam. Als tijdelijke oplossing kun je de scannaam instellen via het dashboard of frameworks. (#1643)
