Berechnung eines Scores
axe DevTools Mobile stellt im Ergebnisobjekt Daten bereit, mit denen Sie Ihren Fortschritt in Bezug auf die Barrierefreiheit im Laufe der Zeit verfolgen können. Im Folgenden zeigen wir, wie man aus einem Scan in iOS und Android einen Barrierefreiheitswert berechnet. Dieser Wert gibt Aufschluss über den Stand der Barrierefreiheit Ihrer Anwendung. Oder verwenden Sie diese Datenpunkte, um eine Gesundheitsmetrik zu entwickeln, die für Ihr Team funktioniert!
Der Algorithmus
Im Kern empfehlen wir die Verwendung desselben Algorithmus, den Sie möglicherweise in einigen unserer anderen Produkte gesehen haben, jedoch mit einem mobilen Ansatz (wir verwenden nicht den Begriff Seiten). Wir empfehlen Ihrem Team, den folgenden Algorithmus so zu ändern, dass er für Sie funktioniert!
(0,4 * s2 + 0,8 * s1 + s0) / TS
s2 = Anzahl der schwerwiegenden Scans
s1 = Anzahl der moderaten Scans
s0 = Anzahl der Scans mit geringfügigen oder keinen Problemen
TS = Gesamtzahl der Scans
Wie Sie sehen, werden die Scanergebnisse nach Auswirkung gefiltert: Kritisch, Schwerwiegend, Mittel oder Geringfügig. Wir definieren diese Begriffe folgendermaßen:
- Geringfügige Scans = mindestens ein geringfügiges Problem und _keine _ mittelschweren, schwerwiegenden oder kritischen Probleme
- Moderate Scans = mindestens ein mittelschweres Problem und keine schweren oder kritischen Probleme
- Schwerwiegende Scans = mindestens ein schwerwiegendes Problem und keine kritischen Probleme
- Kritische Scans = mindestens ein kritisches Problem
Hinweis: Beim Arbeiten mit Legacy-Daten sehen Sie möglicherweise auch die Auswirkungen des veralteten 'Blocker'.
Bewertung eines einzelnen Scans
Um zu veranschaulichen, wie dieser Algorithmus funktioniert, würde ein einzelner Scan eine der folgenden Bewertungen erhalten:
0% - Mindestens ein kritisch Problem
40% - Mindestens ein schwerwiegend Problem, und keine kritisch Probleme
80% - Mindestens ein mittelschwer Problem, und keine schwerwiegend oder kritisch Probleme
100% - Nur gering oder keine Probleme
Bewertung einer Gruppe von Scans
Für eine Gruppe von Scans ist der Gruppenzugänglichkeitswert der Durchschnitt der Werte für jeden Scan in dieser Gruppe. Als Beispiel betrachten wir eine Gruppe von neun Bildschirmen mit der folgenden Aufteilung:
- Zwei Scans mit kritischen Problemen (2)
- Ein Scan mit einem schwerwiegenden Problem (1)
- Zwei Scans mit mittelschweren Problemen (2)
- Ein Scan mit einem kleinen Problem (1)
- Drei Scans ohne Probleme (3)
Setzen Sie die Anzahl der Scans mit ihren jeweiligen Ergebnissen in unseren Algorithmus ein:
0.4 * 1 + 0.8 * 2 + 4 / 9
iOS
Hier ist ein Beispielcode zum Extrahieren der Zählungen für die einzelnen Auswirkungsstufen aus dem Ergebnisobjekt:
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
Hier ist ein Beispielcode zum Extrahieren der Zählungen für die einzelnen Auswirkungsstufen aus dem Ergebnisobjekt:
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 -> {}
}
}