Calcolare un punteggio
Axe DevTools Mobile fornisce dati nell'oggetto di risultato che possono aiutare a monitorare il progresso dell'accessibilità nel tempo. Di seguito evidenzieremo come calcolare un punteggio di accessibilità a partire da una scansione su iOS e Android. Questo punteggio fornirà una metrica su come sta andando l'accessibilità nella tua applicazione. Oppure, utilizza questi dati per sviluppare una metrica di salute che funzioni per il tuo team!
L'algoritmo
Alla base, raccomandiamo di utilizzare lo stesso algoritmo che potresti aver visto in alcuni dei nostri altri prodotti, ma con un tocco mobile (non usiamo il termine pagine). Incoraggiamo il tuo team a modificare il seguente algoritmo in modo che funzioni per voi!
(0.4 * s2 + 0.8 * s1 + s0) / TS
s2 = numero di scansioni Gravi s1 = numero di scansioni Moderate s0 = numero di scansioni con Problemi minori o senza problemi TS = Totale scansioni
Come puoi vedere, i risultati delle scansioni sono filtrati per impatto: Critico, Grave, Moderato, o Minore. Definiamo questi termini nel seguente modo:
- Scansioni minori = almeno un problema Minore e niente problemi Moderati, Gravi, o Critici
- Scansioni moderate = almeno un problema Moderato e nessun problemi Gravi o Critici
- Scansioni gravi = almeno un problema Grave e nessun problemi Critici
- Scansioni critiche = almeno un problema Critico
Nota: se lavori con dati legacy, potresti anche vedere l'impatto deprecato 'Bloccante'.
Valutare una singola scansione
Per illustrare come funziona questo algoritmo, una singola scansione riceverebbe uno dei seguenti punteggi:
0% - Almeno un critico problema
40% - Almeno un grave problema e nessun critico problema
80% - Almeno un moderato problema e nessun grave o critico problema
100% - Solo minori o nessun problema
Valutare un gruppo di scansioni
Per un gruppo di scansioni, il punteggio di accessibilità del gruppo è la media dei punteggi di ciascuna scansione in quel gruppo. Come esempio, diamo un'occhiata a un gruppo di nove schermate con la seguente suddivisione:
- Due scansioni con problemi critici (2)
- Una scansione con un problema grave (1)
- Due scansioni con problemi moderati (2)
- Una scansione con un problema minore (1)
- Tre scansioni senza problemi (3)
Inserisci il numero di scansioni con i rispettivi punteggi in il nostro algoritmo:
0.4 * 1 + 0.8 * 2 + 4 / 9
iOS
Dall'oggetto risultato, ecco un esempio di codice per estrarre i conteggi di ciascun livello di impatto:
let critical = result.failures.filter { $0.impact == .CRITICAL }.count
let serious = result.failures.filter { $0.impact == .SERIOUS }.count
let moderate = result.failures.filter { $0.impact == .MODERATE }.count
let minor = result.failures.filter { $0.impact == .MINOR }.countAndroid
Dall'oggetto risultato, ecco un esempio di codice per estrarre i conteggi di ciascun livello di impatto:
val minorImpactCount = AtomicInteger(0)
val blockerCount = AtomicInteger(0)
val criticalCount = AtomicInteger(0)
val moderateCount = AtomicInteger(0)
val serious = AtomicInteger(0)
result?.axeResult?.axeRuleResults?.forEach {
when (it.impact) {
AxeImpact.MINOR.value -> minorImpactCount.incrementAndGet()
AxeImpact.BLOCKER.value -> blockerCount.incrementAndGet()
AxeImpact.CRITICAL.value -> criticalCount.incrementAndGet()
AxeImpact.MODERATE.value -> moderateCount.incrementAndGet()
AxeImpact.SERIOUS.value -> serious.incrementAndGet()
else -> {}
}
}