Einen Score berechnen
Axe DevTools Mobile bietet Daten im Ergebnisobjekt, die helfen können, Ihren Fortschritt bei der Barrierefreiheit im Laufe der Zeit zu verfolgen. Im Folgenden zeigen wir, wie Sie einen Barrierefreiheits-Score aus einem Scan auf iOS und Android berechnen können. Dieser Score bietet ein Maß dafür, wie es um die Barrierefreiheit Ihrer Anwendung steht. Alternativ können Sie diese Datenpunkte nutzen, um eine Kennzahl zur Gesundheitsbewertung zu entwickeln, die für Ihr Team geeignet ist!
Der Algorithmus
Im Kern empfehlen wir, den gleichen Algorithmus zu verwenden, den Sie möglicherweise in einigen unserer anderen Produkte gesehen haben, jedoch mit einer mobilen Anpassung (wir verwenden den Begriff Seiten nicht). Wir empfehlen Ihrem Team, den folgenden Algorithmus zu modifizieren, damit er für Sie funktioniert.
(0,4 * s2 + 0,8 * s1 + s0) / TS
s2 = Anzahl der ernsten Scans s1 = Anzahl der moderaten Scans s0 = Anzahl der Scans mit geringfügigen oder keinen Problemen TS = Gesamte Scans
Wie Sie sehen können, werden die Scan-Ergebnisse nach Auswirkung gefiltert: Kritisch, Ernst, Moderat oder Geringfügig. Wir definieren diese Begriffe wie folgt:
- Geringfügige Scans = mindestens ein geringfügiges Problem und keine moderate, ernste oder kritische Probleme
- Moderate Scans = mindestens ein moderates Problem und keine ernste oder kritische Probleme
- Ernste Scans = mindestens ein ernstes Problem und keine kritische Probleme
- Kritische Scans = mindestens ein kritisches Problem
Hinweis: Bei der Arbeit mit Legacy-Daten können Sie möglicherweise auch den veralteten ‚Blocker‘-Einfluss sehen.
Bewertung eines einzelnen Scans
Um zu veranschaulichen, wie dieser Algorithmus funktioniert, würde ein einzelner Scan eine der folgenden Bewertungen erhalten:
0% - Mindestens ein kritisches Problem
40% - Mindestens ein ernstes Problem und keine kritischen Probleme
80% - Mindestens ein moderates Problem und keine ernsten oder kritischen Probleme
100% - Nur geringfügige oder keine Probleme
Bewertung einer Gruppe von Scans
Für eine Gruppe von Scans ist der Gruppen-Score der Durchschnitt der Bewertungen für jeden Scan in dieser Gruppe. Als Beispiel betrachten wir eine Gruppe von neun Bildschirmen mit folgender Aufschlüsselung:
- Zwei Scans mit kritischen Problemen (2)
- Ein Scan mit einem ernsten Problem (1)
- Zwei Scans mit moderaten Problemen (2)
- Ein Scan mit einem kleinen Problem (1)
- Drei Scans ohne Probleme (3)
Geben Sie die Anzahl der Scans mit ihren jeweiligen Bewertungen in unserem Algorithmus ein:
0,4 * 1 + 0,8 * 2 + 4 / 9
iOS
Aus dem Ergebnisobjekt, hier ist ein Beispielcode, um die Anzahl der einzelnen Auswirkungen zu extrahieren:
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
Aus dem Ergebnisobjekt, hier ist ein Beispielcode, um die Anzahl der einzelnen Auswirkungen zu extrahieren:
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 -> {}
}
}