Wie die Regeln aufgebaut sind
Hier wird beschrieben, wie die 145 Regeln im Katalog aufgebaut sind — nützlich, um ein Ergebnis einzuordnen oder die gesuchte Regel zu finden. Es gibt wieder, was im Regelwerk bereits existiert, kein abstraktes Konzept.
Automatisch vs. manuell
Der type jeder Regel ist eine von zwei Arten, und der Unterschied betrifft, was die Regel entscheiden kann — nicht, welches Ergebnis sie gerade meldet:
- automatisch — entscheidet deterministisch, ohne Heuristiken und ohne Raten. Kann
failmelden.cantTellkommt hier trotzdem vor, in diesen Situationen: Es gibt einen echten Verstoß, der aber für sich allein nicht belegt, dass das zugeordnete WCAG-Kriterium verletzt ist (eine ARIA-Anforderung an Autoren, bei der der bereitgestellte Name, die Rolle bzw. der Wert trotzdem erhalten bleibt); die Regel entscheidet deterministisch, dass eine Best Practice verletzt ist, beansprucht kein Erfolgskriterium, und das Gefundene muss niemandem schaden, da die Rolle oder das Element assistive Technologien so erreicht, wie es ist (aria-allowed-role,landmark-role-name-present, als Best Practice getaggt); oder die Regel kann nur bestätigen, dass ein Mechanismus vorhanden ist, während die Frage, ob das Vorhandene tatsächlich gültig ist, einer Schwesterregel gehört (aria-required-children, gepaart mitaria-prohibited-children); oder die Regel kann nicht ohne Raten entscheiden und fragt deshalb, statt fehlzuschlagen: ein Name, der aus einem geschlossenen Shadow Root, ausElementInternals, die die Engine nicht lesen kann, oder aus zu tief verschachteltem Inhalt stammen kann (die*-name-present-Regeln), Text, der nach dem Erhöhen der Abstände abgeschnitten werden oder sich überlappen kann (text-spacing-content-loss), ein Orientierungs-Media-Block, der ein anderes Element als den Inhalt der Seite dreht (css-orientation-lock), ein Platzhalter unter seinem Verhältnis, bei dem sich nicht erkennen lässt, ob seine Farben die der Seite oder des Browsers sind, oder ein einzelnes Zeichen, das für den Namen seines Bedienelements steht, unter seinem Verhältnis (contrast-minimum) oder eine Farbe oder Größe, die sich nicht berechnen lässt (die Kontrastregeln,target-size-minimum). Eine Regel, die eine Ausnahme wirft, wird zur Absicherung ebenfalls alscantTellgemeldet. - manuell — zeigt an, dass ein Mensch entscheiden muss; die Regel kann nicht entscheiden, ob das Gefundene ein Problem ist. Meldet
cantTellodernotApplicable, undpassnur dann, wenn die Antwort gefunden wird, die keine Beurteilung braucht — niefail.landmark-uniquekann nicht entscheiden, ob zwei Landmarks mit demselben Namen ein Problem sind (die APG erlaubt das, wenn ihr Inhalt identisch ist), also ergibt dascantTell; „alle Namen unterscheiden sich“ ist dagegen eine Tatsache, also ergibt daspass. Eine Regel, die eine Person jedes gefundene Ziel beurteilen lässt, etwa ob die Textalternative eines Bildes zutrifft, meldet niepass. Eine manuelle Regel, die nur dort fragt, wo eine Heuristik ein Anzeichen findet, und keines findet, meldetnotApplicable, nichtpass: Sie gilt nur für das, was ihre Heuristik markiert, und dort nichts zu finden, zeigt nicht, dass alles in Ordnung ist.image-redundant-altsucht Alternativtext, der den Text neben dem Bild wiederholt; keinen zu finden, sagt nichts darüber, ob der Alternativtext stimmt.form-control-label-quality,password-paste-enabled,scrollable-region-focusableundimage-of-texttun dasselbe.
Eine als Best Practice getaggte Regel beansprucht kein Erfolgskriterium und meldet trotzdem fail, wenn das, was sie entscheidet, selbst eine Barriere ist: Eine leere Überschrift wird als Überschrift ohne Inhalt angesagt (empty-heading, wie die ACT-Regel des W3C dafür es meldet). Ihr fail sagt, dass die eigene Erwartung der Regel nicht erfüllt ist, nicht die eines Kriteriums: Keine zusammengesetzte WCAG-Regel zählt es mit. Wo der Befund niemandem schaden muss, meldet sie stattdessen cantTell, wie oben.
Ein cantTell einer manuellen Regel ist nicht dasselbe Ereignis wie ein cantTell einer automatischen Regel, auch wenn der Wert identisch ist: Die automatische Regel hat entschieden und teilt Ihnen mit, was sie gefunden hat; die manuelle Regel teilt Ihnen mit, dass sich die Frage anhand des Markups überhaupt nicht entscheiden lässt. Die vollständige Referenz zu Ergebnis, Schweregrad und Konfidenz finden Sie unter Ergebnisse und Berichte. In beiden Fällen sagt das cantTell einer Core-Regel, wie es zu beantworten ist (howToCheck), und manche sagen, wohin die Hinweise der Seite deuten (lean, siehe Ausgabeschema).
Wie Regel-IDs aufgebaut sind
Eine Regel-ID folgt in der Regel dem Muster <family>-<intent>: zuerst, auf welche Elemente bzw. welchen Mechanismus die Regel zielt, dann, welche Frage sie dazu stellt. Die Familie der Bildalternativen (WCAG 1.1.1) ist das deutlichste Beispiel:
| Regel-ID | Familie | Absicht | Typ |
|---|---|---|---|
img-alt-present | img | present | automatisch |
img-alt-quality | img | quality | manuell |
img-alt-decorative | img | decorative | manuell |
present— prüft, ob ein erforderlicher Mechanismus vorhanden ist. In der Regel automatisch.quality— prüft Angemessenheit, Korrektheit oder Aussagekraft. Immer manuell.decorative— prüft die korrekte Behandlung rein dekorativer Inhalte. Immer manuell.
Die Absicht bestimmt, ob eine Regel überhaupt automatisch sein kann: „Ist etwas vorhanden?“ lässt sich oft allein aus dem Markup entscheiden, „Ist es gut?“ fast nie. Nach derselben Logik funktionieren auch die Links unter Verwandte Regeln auf jeder Regelseite — dort werden Regeln derselben Familie (alles vor dem letzten --Segment der ID) gruppiert. Das Regelwerk umfasst neben img Dutzende weiterer Familien — aria-*, contrast-*, dialog-*, iframe-*, label-*, link-*, list-*, landmark-* und mehr —, der Katalog ist die aktuelle, generierte Liste.
Regeln mischen nie Familien: Jede fragt eine Art von Element ab, mit dafür geeigneten Helfern. Deshalb hat das Regelwerk auch 145 eng gefasste Regeln statt eines Dutzends breiter — zwei Prüfungen, die sich darin unterscheiden, was sie entscheiden, worauf sie zielen oder welche WCAG-Facette sie abdecken, bleiben getrennte Regeln, statt zusammengelegt zu werden. So muss ein Ergebnis nie nachträglich entwirrt werden, um zu sagen, was genau gefunden wurde.
WCAG-Facetten
Ein WCAG-Erfolgskriterium ist meist größer, als eine einzelne Regel deterministisch entscheiden kann. Intern wird jedes Erfolgskriterium in benannte „Facetten“ zerlegt — bei 1.1.1 Nicht-Text-Inhalt etwa, ob ein alt-Attribut vorhanden ist, ob sein Text aussagekräftig ist und ob dekorative Bilder korrekt mit leerem Alternativtext gekennzeichnet sind. Eine Regel ist einer oder mehreren Facetten zugeordnet, und oft decken mehrere Regeln verschiedene Facetten desselben Erfolgskriteriums ab — genau das macht die img-alt-Familie oben für 1.1.1.
Das ist wichtig beim Lesen des Ergebnisses einer zusammengesetzten Regel (Zusammenfassung pro WCAG-Erfolgskriterium): Eine zusammengesetzte Regel ergibt nur dann pass, wenn ihre Regeln alles prüfen, was das Kriterium verlangt, und das tut noch keine. Wo also jede automatisierte Prüfung für ein Erfolgskriterium ohne Befund bleibt, ist die zusammengesetzte Regel can't tell, teilweise geprüft: Die Facetten, die ihre Regeln abdecken, sind erfüllt, und den Rest prüft eine Person. Unter Konformität finden Sie die drei Ebenen (atomare Regeln, Facetten, zusammengesetzte Regeln) und wie das Ergebnis einer zusammengesetzten Regel tatsächlich berechnet wird.