Calcular uma Pontuação
O axe DevTools Mobile fornece dados no objeto de resultados que podem ajudar a acompanhar seu progresso de acessibilidade ao longo do tempo. Abaixo, destacaremos como calcular uma pontuação de acessibilidade a partir de uma análise em iOS e Android. Essa pontuação fornecerá uma métrica de como a acessibilidade está progredindo em sua aplicação. Ou, use esses pontos de 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ê pode ter visto em alguns de nossos outros produtos, mas com um toque móvel (não usamos o termo páginas). Incentivamos sua equipe a modificar o algoritmo a seguir para funcionar para você!
(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:
- Análises Menores = pelo menos um problema Menor e nenhum problema Moderado, Grave ou Crítico
- Análises Moderadas = pelo menos um problema Moderado e nenhum problema Grave ou Crítico
- Análises Graves = pelo menos um problema Grave e nenhum problema Crítico
- 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)
Insira o número de verificações 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 -> {}
}
}