Escanear parte de una pantalla
Si desea evaluar un componente o función específica en cuanto a accesibilidad, puede realizar un escaneo dirigido para ese elemento o vista en lugar de escanear toda la pantalla.
Utilice el método run(onElement: )
Se puede escanear un solo elemento o vista utilizando el método run(onElement: ). Este método admite cualquier XCUIElement como parámetro. Admite cualquier elemento, desde una XCUIApplication (la aplicación completa) hasta un elemento específico, como un botón, una etiqueta, un campo de texto o cualquier otro elemento de la interfaz de usuario.
Para encontrar un elemento específico, utilice consultas de XCTest. Consulte la documentación de Apple para obtener más información:
Recomendamos verificar que el elemento que usted está escaneando exista y sea visible en pantalla antes de ejecutar un escaneo, para asegurarse de que el framework pueda encontrar el elemento y devolver los resultados esperados. Si el elemento no está presente en pantalla en el momento de la exploración, podría generarse un resultado incompleto.
Ejemplo
A continuación se muestra una prueba de ejemplo que busca un botón con el título "Menu", comprueba su existencia en pantalla y realiza un escaneo sobre él. Este es un ejemplo de una consulta básica, aunque también pueden realizarse consultas más complejas que involucren hijos y descendientes.
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)
}¿Qué reglas pueden ejecutarse en escaneos de pantalla parciales?
Todas las reglas se ejecutarán en escaneos de pantalla parciales a menos que el usuario las ignore explícitamente. Sin embargo, las reglas ScreenTitle y InScrollView pueden devolver NeedsReview si el escaneo parcial de pantalla no incluye toda la información necesaria para pasar o fallar.
