Scanner une partie d'un écran
Si vous souhaitez tester l’accessibilité d’un composant ou d’une fonctionnalité spécifique, vous pouvez effectuer un scan ciblé de cet élément ou de cette vue plutôt que de scanner l’écran entier.
Utilisez la méthode run(onElement: )
Un seul élément ou une seule vue peut être analysé(e) à l'aide de la méthode run(onElement: ). Cette méthode accepte n'importe quel XCUIElement en paramètre. Elle peut accepter n'importe quoi, d'une « XCUIApplication » (l'application entière) à un élément spécifique tel qu'un bouton, une étiquette, un champ de texte ou tout autre élément d'interface utilisateur.
Pour trouver un élément spécifique, vous devez utiliser des requêtes XCTest. Vous trouverez plus d'informations dans la documentation d'Apple :
Nous recommandons de valider que l’élément que vous souhaitez analyser existe et est visible à l’écran avant de lancer une analyse, afin de garantir que le framework puisse trouver l’élément et fournir les résultats appropriés. Si l'élément n'est pas présent à l'écran au moment de l'analyse, un résultat incomplet pourra être renvoyé.
Exemple
Vous trouverez ci-dessous un exemple de test qui recherche un bouton intitulé « Menu », vérifie sa présence à l'écran, puis effectue une analyse sur ce bouton. Ceci est un exemple de requête simple, bien que des requêtes plus complexes impliquant des enfants et des descendants soient possibles.
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)
}Quelles règles peuvent être exécutées sur des analyses d'écran partielles ?
Toutes les règles seront appliquées lors des analyses partielles d'écran, sauf si l'utilisateur les ignore explicitement. Cependant, les règles ScreenTitle et InScrollView peuvent retourner NeedsReview si l’analyse partielle de l’écran n’inclut pas toutes les informations nécessaires pour réussir ou échouer.
