Een Deel van het Scherm Scannen
Als je een specifiek onderdeel of functie op toegankelijkheid wilt testen, kun je een gerichte scan uitvoeren voor dat element of die weergave in plaats van het hele scherm te scannen.
De run(onElement: ) methode gebruiken
Een enkel element of een weergave kan worden gescand met behulp van de run(onElement: ) methode. Deze methode accepteert elk XCUIElement als parameter. Het kan alles accepteren van een XCUIApplication (de hele app) tot een specifiek element zoals een knop, label, tekstveld, of een ander UI-element.
Om een specifiek element te vinden, gebruik je XCTest queries. Vind meer informatie in de documentatie van Apple:
We raden aan te valideren dat het element dat je wilt scannen bestaat en op het scherm staat voordat je de scan uitvoert, om ervoor te zorgen dat het framework het element kan vinden en de juiste resultaten kan teruggeven. Als het element niet op het scherm wordt gevonden op het moment van de scan, kan er een onvolledig resultaat worden gepost.
Voorbeeld
Hieronder staat een voorbeeldtest die zoekt naar een knop met de titel „Menu“, controleert of deze op het scherm staat, en er een scan van uitvoert. Dit is een voorbeeld van een basisquery, hoewel complexere queries met kinderen en afstammelingen mogelijk zijn.
var axe: AxeDevTools?
var app = XCUIApplication()
override func setUpWithError() throws {
// log in to AxeDevTools
axe = try? AxeDevTools.startScanSession(apiKey: "<DEQUE_APIKEY>",
projectId: "<DEVHUB_PROJECT_ID>")
// launch app and prevent tests from continuing if element is not found
app.launch()
continueAfterFailure = true
}
func testAccessibility() throws {
// finds a button with the title or accessibilityIdentifier "Menu"
// .firstMatch ensures that the test doesn't fail if multiple matching elements exist
let buttonToTest = app.buttons["Menu"].firstMatch
XCTAssert(buttonToTest.isHittable, "Button 'Menu' does not exist on the screen.")
let result = try axe.run(onElement: buttonToTest)
try axe.postResult(result)
}Welke Regels Kunnen op Gedeeltelijke Schermscans Worden Uitgevoerd?
Alle regels worden uitgevoerd op gedeeltelijke schermscans, tenzij de gebruiker ze expliciet negeert. Echter, de regels ScreenTitle en InScrollView kunnen NeedsReview teruggeven als de gedeeltelijke schermscan niet alle noodzakelijke informatie bevat om te slagen of te falen.
