Een Deel van het Scherm Scannen

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

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.

Gebruik de run(onElement: ) methode

Een enkel element of weergave kan gescand worden met de run(onElement: ) methode. Deze methode accepteert elke 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.startSession(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 zullen op gedeeltelijke schermscans worden uitgevoerd, tenzij expliciet genegeerd door de gebruiker. Echter, de ScreenTitle en InScrollView regels kunnen NeedsReview als de gedeeltelijke schermscan niet alle nodige informatie bevat om te slagen of te falen.