Calcular una puntuación
axe DevTools Mobile proporciona datos en el objeto de resultado que pueden ayudar a rastrear su progreso de accesibilidad a lo largo del tiempo. A continuación, destacaremos cómo calcular una puntuación de accesibilidad a partir de un escaneo en iOS y Android. Esta puntuación proporcionará una métrica de cómo va la accesibilidad en su aplicación. ¡O utilice estos puntos de datos para desarrollar una métrica de salud que funcione para su equipo!
El algoritmo
En esencia, recomendamos utilizar el mismo algoritmo que quizás haya visto en algunos de nuestros otros productos, pero con un enfoque móvil (no utilizamos el término páginas). ¡Alentamos a su equipo a modificar el siguiente algoritmo para que funcione para usted!
(0.4 * s2 + 0.8 * s1 + s0) / TS
s2 = número de escaneos Serios
s1 = número de exploraciones Moderadas
s0 = número de escaneos con problemas menores o sin problemas
TS = Total de escaneos
Como puede ver, los resultados del escaneo se filtran por impacto: crítico, grave, moderado o leve. Definimos estos términos de la siguiente manera:
- Análisis menores = al menos un problema menor y ningún problema moderado, grave o crítico __
- Análisis moderados = al menos un problema moderado y ningún problema grave o crítico __
- Análisis graves = al menos un problema grave y ningún problema crítico __
- Análisis críticos = al menos un problema crítico
Nota: si trabaja con datos heredados, es posible que también vea el impacto del 'Bloqueador' obsoleto.
Puntuación de un solo escaneo
Para ilustrar cómo funciona este algoritmo, un solo escaneo recibiría una de las siguientes puntuaciones:
0% - Al menos uno crítico Problema
40% - Al menos uno grave Problema, y no crítico asuntos
80% - Al menos uno moderado Problema, y no grave o crítico asuntos
100% - Solo menor o no hay problemas
Puntuación de un grupo de exploraciones
Para un grupo de escaneos, la puntuación de accesibilidad del grupo es el promedio de las puntuaciones de cada escaneo en ese grupo. A modo de ejemplo, veamos un grupo de nueve pantallas con el siguiente desglose:
- Dos escaneos con problemas críticos (2)
- Un escaneo con un problema grave (1)
- Dos escaneos con problemas moderados (2)
- Un escaneo con un problema menor (1)
- Tres escaneos sin problemas (3)
Introduzca el número de escaneos con sus respectivas puntuaciones en nuestro algoritmo:
0.4 * 1 + 0.8 * 2 + 4 / 9
iOS
A partir del objeto de resultado, aquí hay un código de muestra para extraer los recuentos de cada nivel de impacto:
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 }.count
Android
A partir del objeto de resultado, aquí hay un código de muestra para extraer los recuentos de cada nivel de impacto:
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 -> {}
}
}