Calcular uma Pontuação
O Axe DevTools Mobile fornece dados no objeto de resultado que podem ajudar a acompanhar o seu progresso em acessibilidade ao longo do tempo. A seguir, vamos destacar como calcular uma pontuação de acessibilidade a partir de uma varredura em iOS e Android. Essa pontuação fornecerá uma métrica de como a acessibilidade está sendo implementada em seu aplicativo. Ou, use esses dados para desenvolver uma métrica de saúde que funcione para sua equipe!
O Algoritmo
No essencial, recomendamos usar o mesmo algoritmo que você deve ter visto em alguns dos nossos outros produtos, mas com uma abordagem móvel (não usamos o termo páginas). Incentivamos sua equipe a modificar o algoritmo a seguir para que funcione para vocês!
(0.4 * s2 + 0.8 * s1 + s0) / TS
s2 = número de análises Graves s1 = número de análises Moderadas s0 = número de análises com Problemas Menores ou sem problemas TS = Total de análises
Como você pode ver, os resultados das análises são filtrados por impacto: Crítico, Grave, Moderado ou Menor. Definimos esses termos da seguinte maneira:
- Varreduras menores = pelo menos um problema menor e nenhum problemas moderados, sérios ou críticos
- Varreduras moderadas = pelo menos um problema moderado e nenhum problemas sérios ou críticos
- Varreduras sérias = pelo menos um problema sério e nenhum problemas críticos
- Análises Críticas = pelo menos um problema Crítico
Nota: ao trabalhar com dados legados, você também pode ver o impacto obsoleto 'Bloqueador'.
Pontuação de uma única análise
Para ilustrar como este algoritmo funciona, uma única análise receberia uma das seguintes pontuações:
0% - Pelo menos um problema crítico
40% - Pelo menos um problema grave , e nenhum problema crítico
80% - Pelo menos um problema moderado , e nenhum problema grave ou crítico
100% - Apenas problemas menores ou sem problemas
Pontuação de um grupo de verificações
Para um grupo de verificações, a pontuação de acessibilidade do grupo é a média das pontuações de cada verificação nesse grupo. Como exemplo, vamos analisar um grupo de nove telas com a seguinte distribuição:
- Duas verificações com problemas críticos (2)
- Uma verificação com um problema sério (1)
- Duas verificações com problemas moderados (2)
- Uma verificação com um problema menor (1)
- Três verificações sem problemas (3)
Conecte o número de varreduras com suas respectivas pontuações em nosso algoritmo:
0.4 * 1 + 0.8 * 2 + 4 / 9
iOS
Do objeto de resultado, aqui está um exemplo de código para extrair a contagem de cada nível 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 }.countAndroid
Do objeto de resultado, aqui está um exemplo de código para extrair a contagem de cada nível 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 -> {}
}
}