Regeln

Die 37 zusammengesetzten Regeln pro WCAG-Erfolgskriterium sind hier nicht aufgeführt — sie sind keine einzeln konfigurierbaren Regeln und gehören stattdessen zu Konformität. Unter Wie die Regeln aufgebaut sind geht es um automatische und manuelle Regeln, den Aufbau der Regel-IDs und WCAG-Facetten. Die Spalte „Fragen“ zählt die Fragen, die eine Regel einer Person überlassen kann (cantTell); zu jeder nennt die Seite der Regel die Schritte, um sie zu beantworten.

Automatisch (86), kann fail ergeben

86 automatische Regeln
Regel-IDTitelWCAG-EKStufeFragenKonfidenzSchweregrad
area-alt-present<area> muss einen zugänglichen Namen haben1.1.1A—highserious
aria-allowed-attraria-*-Attribute müssen für die Rolle des Elements zulässig sein4.1.2A1mediummoderate
aria-allowed-roleExplizite Rolle muss für ihr Host-Element zulässig sein——1highmoderate
aria-braille-equivalentaria-braillelabel/aria-brailleroledescription müssen eine Entsprechung außerhalb von Braille haben4.1.2A1highmoderate
aria-conditional-attraria-errormessage setzt aria-invalid mit einem Wert ungleich false voraus4.1.2A1highmoderate
aria-deprecated-rolerole-Attribut sollte keine veraltete oder für Autoren nicht empfohlene ARIA-Rolle verwenden4.1.2A2highmoderate
aria-hidden-bodyDas <body> des Dokuments darf nicht aria-hidden sein1.3.1, 4.1.2A—highcritical
aria-hidden-focusMit ARIA ausgeblendete Elemente dürfen nicht fokussierbar sein4.1.2A2highserious
aria-owns-validaria-owns muss jedem Element einen einzigen Besitzer geben und darf nie einen Vorfahren des Besitzers nennen1.3.1, 4.1.2A—highserious
aria-prohibited-attrARIA-Benennungsattribute dürfen nicht auf Rollen verwendet werden, die sie verbieten4.1.2A1highmoderate
aria-prohibited-childrenContainer-Rollen dürfen kein Kind mit unzulässiger Rolle besitzen1.3.1A—mediummoderate
aria-required-attrRollen müssen ihre erforderlichen ARIA-Zustände und -Eigenschaften tragen4.1.2A2highserious
aria-required-childrenContainer-Rollen müssen mindestens eine erforderliche Kind-Rolle besitzen1.3.1A1mediummoderate
aria-required-parentRollen, die eine bestimmte Kontextrolle erfordern, müssen in diesem Kontext stehen1.3.1A—mediummoderate
aria-role-name-presentARIA-Rollen, die einen zugänglichen Namen erfordern, haben einen4.1.2A1highserious
aria-roles-validrole-Attribut muss eine gültige, nicht abstrakte ARIA-Rolle sein1.3.1, 4.1.2A2highserious
aria-valid-attraria-*-Attribute müssen echte, definierte ARIA-Attribute sein4.1.2A1highserious
aria-valid-attr-valueWerte von aria-*-Attributen müssen ihrem deklarierten Typ entsprechen4.1.2A3highserious
autocomplete-validautocomplete-Attribut muss einen gültigen Autofill-Wert haben1.3.5AA—highmoderate
avoid-inline-spacingInline-Stile dürfen keine Textabstände unterhalb des WCAG-Werts erzwingen1.4.12AA3highmoderate
binary-control-name-presentBinäre Steuerelemente haben einen zugänglichen Namen4.1.2A1highserious
button-name-presentButtons haben einen zugänglichen Namen4.1.2A3highserious
canvas-text-alternative-present<canvas> muss eine Textalternative bereitstellen1.1.1A—highserious
click-handler-keyboard-operableClick-Handler auf Elementen, die keine nativen Steuerelemente sind, müssen per Tastatur funktionieren2.1.1, 2.1.3AAA5mediumserious
combobox-name-presentComboboxen haben einen zugänglichen Namen4.1.2A1highserious
contrast-computableFarbkontrast ist für gerenderten Text berechenbar1.4.3, 1.4.6AAA18highserious
contrast-enhancedText erfüllt den erhöhten Farbkontrast (AAA)1.4.6AAA4highserious
contrast-minimumText erfüllt den minimalen Farbkontrast (AA)1.4.3AA9highserious
css-orientation-lockCSS darf die Seite nicht auf eine einzige Ausrichtung festlegen1.3.4AA3highserious
definition-list-children-validBeschreibungslisten müssen korrekt strukturiert sein1.3.1A—highserious
deprecated-elements-not-usedLaufender <marquee>-Inhalt muss angehalten, gestoppt oder ausgeblendet werden können2.2.2A1highserious
dialog-name-presentDialoge haben einen zugänglichen Namen4.1.2A1highserious
dlitem-parent-validEinträge einer Beschreibungsliste müssen in einer Beschreibungsliste stehen1.3.1A—highserious
duplicate-idIDs müssen eindeutig sein4.1.1A2highmoderate
duplicate-id-ariaVon ARIA referenzierte IDs müssen eindeutig sein4.1.2A1highserious
embed-text-alternative-present<embed> muss eine Textalternative bereitstellen1.1.1A—highserious
empty-headingÜberschriften dürfen nicht leer sein——3highminor
focus-not-removed-by-scriptEin Skript darf den Fokus nicht von einem Element entfernen, sobald es ihn erhält2.1.1, 2.4.7AA3mediumserious
form-control-programmatic-label-presentFormularsteuerelemente müssen eine programmatische Beschriftung haben1.3.1, 3.3.2, 4.1.2A—mediumserious
form-control-single-labelFormularsteuerelemente sollten nicht mehrere Beschriftungen haben3.3.2A2highmoderate
html-lang-attr-presentDie Sprache der Seite ist deklariert3.1.1A—highserious
html-xml-lang-mismatchlang und xml:lang dürfen sich nicht widersprechen3.1.1A—highserious
identical-iframes-same-purposeFrames mit demselben Namen betten dieselbe Ressource ein4.1.2A2mediummoderate
iframe-focusable-contentFrames mit tabindex="-1" dürfen keine fokussierbaren Inhalte enthalten2.1.1A1highmoderate
iframe-name-presentFrames haben einen zugänglichen Namen4.1.2A—highserious
iframe-title-uniqueEindeutigkeit von Frame-Titeln (veraltet) veraltet4.1.2A—highmoderate
img-alt-present<img> muss ein alt-Attribut haben1.1.1A—highserious
input-image-alt-present<input type="image"> muss ein alt-Attribut haben1.1.1, 4.1.2A1highserious
invalid-field-error-messageAls ungültig markierte Felder sollten eine angezeigte Fehlermeldung haben3.3.1A6highserious
label-in-nameBeschriftung im Namen: Der zugängliche Name enthält den sichtbaren Text2.5.3A4highserious
landmark-role-name-presentRollen region und form müssen einen zugänglichen Namen haben——1highminor
link-in-text-blockLinks in Textblöcken müssen sich vom umgebenden Text unterscheiden, ohne sich allein auf Farbe zu stützen1.4.1A16highserious
link-name-presentLinks haben einen zugänglichen Namen2.4.4, 2.4.9, 4.1.2AAA3highserious
list-children-validListen dürfen direkt nur Listeneinträge enthalten1.3.1A—highserious
listbox-name-presentListboxen haben einen zugänglichen Namen4.1.2A1highserious
listitem-parent-validListeneinträge müssen in einem Listencontainer stehen1.3.1A—highserious
menuitem-name-presentMenüeinträge haben einen zugänglichen Namen4.1.2A3highserious
meta-refresh-no-exceptionsSeite darf kein zeitgesteuertes Meta-Refresh verwenden (AAA)2.2.4, 3.2.5AAA—highmoderate
meta-refresh-timing-absentSeite darf kein zeitgesteuertes Meta-Refresh verwenden2.2.1, 2.2.4, 3.2.5AAA—highserious
meta-viewport-zoom-enabledViewport-Meta-Tag darf Zoomen nicht deaktivieren1.4.4AA1highserious
meter-name-presentMeter haben einen zugänglichen Namen1.1.1A1highserious
nested-interactive-controls-absentInteraktive Bedienelemente dürfen nicht verschachtelt sein4.1.2A—highserious
object-text-alternative-present<object> muss eine Textalternative bereitstellen1.1.1A—highserious
option-name-presentOptionen haben einen zugänglichen Namen4.1.2A3highserious
page-title-presentSeite hat einen nicht leeren Titel2.4.2A—highserious
presentational-children-focusable-absentRollen mit präsentationalen Kindern dürfen keine fokussierbaren Inhalte enthalten4.1.2A—highserious
progressbar-name-presentFortschrittsbalken haben einen zugänglichen Namen1.1.1A1highserious
role-img-text-alternative-present[role="img"/"graphics-symbol"/"graphics-document"] muss eine zugängliche Textalternative haben1.1.1A1highserious
searchbox-name-presentSuchfelder haben einen zugänglichen Namen4.1.2A1highserious
server-side-image-map-absentServerseitige Image-Maps müssen eine per Tastatur bedienbare Alternative haben2.1.1A1highserious
slider-name-presentSchieberegler haben einen zugänglichen Namen4.1.2A1highserious
spinbutton-name-presentDrehfelder haben einen zugänglichen Namen4.1.2A1highserious
summary-name-presentSummary-Elemente haben einen zugänglichen Namen4.1.2A2highserious
svg-image-text-alternative-presentSVG-<image> muss eine Textalternative haben1.1.1A—mediumserious
svg-text-alternative-present<svg> muss eine Textalternative bereitstellen1.1.1A—highserious
tab-name-presentTabs haben einen zugänglichen Namen4.1.2A3highserious
table-headers-attr-validDas „headers“-Attribut von Tabellenzellen muss auf gültige Kopfzellen verweisen1.3.1A—highserious
table-th-has-data-cells<th>-Elemente müssen mindestens eine Datenzelle beschreiben1.3.1A1highmoderate
target-size-minimumZeigerziele müssen mindestens 24x24px groß sein oder ausreichend Abstand zu anderen Zielen haben2.5.8AA—mediumserious
td-has-headerDatenzellen in großen Tabellen müssen eine zugeordnete Kopfzelle haben1.3.1A1highserious
text-spacing-content-lossText bleibt lesbar, wenn Nutzende die Textabstände vergrößern1.4.12AA8mediumserious
textbox-name-presentTextfelder haben einen zugänglichen Namen4.1.2A1highserious
tooltip-name-presentTooltips haben einen zugänglichen Namen4.1.2A3highserious
treeitem-name-presentBaumeinträge haben einen zugänglichen Namen4.1.2A3highserious
valid-langlang-Attribut eines Elements muss syntaktisch gültig sein3.1.2AA—highmoderate
video-poster-text-alternative-presentPoster von <video> muss eine Textalternative haben1.1.1A1mediumserious

Manuell (59), nie fail

59 manuelle Regeln
Regel-IDTitelWCAG-EKStufeFragenKonfidenzSchweregrad
accesskeysaccesskey-Werte müssen eindeutig sein——1mediumminor
area-alt-qualityDie Textalternative von <area> muss angemessen sein (manuelle Prüfung)1.1.1A1mediumminor
aria-checked-state-mismatcharia-checked einer nativen Checkbox/eines nativen Radiobuttons sollte dem tatsächlichen Zustand entsprechen4.1.2A1mediummoderate
aria-expanded-state-mismatcharia-expanded sollte dazu passen, ob der gesteuerte Inhalt angezeigt wird4.1.2A2mediummoderate
aria-textElemente mit role="text" sollten keine fokussierbaren Nachfahren haben——1mediumminor
bypass-blocks-presentDie Seite muss eine Möglichkeit bieten, wiederholte Blöcke zu überspringen2.4.1A1mediummoderate
canvas-text-alternative-qualityTextalternative von <canvas> muss angemessen sein (manuelle Prüfung)1.1.1A1mediumminor
control-name-title-onlyEin Button oder Link sollte seinen Namen nicht nur aus seinem title beziehen——1mediumminor
css-focus-indicator-suppressedFokusindikator darf nicht ohne Ersatz entfernt werden2.4.7AA1mediumserious
css-hidden-focusFokussierbare Elemente dürfen nicht visuell ausgeblendet sein2.4.7AA2lowserious
embed-text-alternative-qualityTextalternative von <embed> muss angemessen sein (manuelle Prüfung)1.1.1A1mediumminor
empty-table-headerTabellenkopfzellen dürfen nicht leer sein——2mediumminor
focus-order-semanticsIn die Tab-Reihenfolge aufgenommene Elemente sollten interaktive Semantik haben——1mediumminor
form-control-label-qualityBeschriftungen von Formularfeldern sollten aussagekräftig und unterscheidbar sein2.4.6AA3mediumminor
form-control-programmatic-label-qualityFormularsteuerelemente sollten eine auf dem Bildschirm angezeigte Beschriftung haben3.3.2A4mediummoderate
heading-orderÜberschriftenebenen dürfen keine Ebene überspringen——1mediumminor
heading-qualityÜberschriftentext sollte aussagekräftig sein, kein Platzhalter2.4.6AA3mediumminor
identical-links-same-purposeLinks mit demselben zugänglichen Namen sollten zum selben Ziel führen2.4.9AAA1lowminor
image-of-textText sollte echter Text sein, kein Bild von Text1.4.5AA2lowmoderate
image-redundant-altAlternativtext eines Bildes darf benachbarten sichtbaren Text nicht wiederholen——1mediumminor
img-alt-decorativeAusgeschlossene <img>/<canvas>/<svg> müssen dekorativ sein (manuelle Prüfung)1.1.1A2mediumminor
img-alt-qualityAlternativtext von <img> muss angemessen sein (manuelle Prüfung)1.1.1A2mediumminor
input-image-alt-decorative<input type="image"> mit alt="" muss angemessen sein (manuelle Prüfung)1.1.1A1mediumminor
input-image-alt-qualityDie Textalternative von <input type="image"> muss angemessen sein (manuelle Prüfung)1.1.1A1mediumminor
label-for-validDas for-Attribut eines Labels sollte ein Steuerelement nennen, das es beschriften kann——2mediumminor
label-title-onlyFormularbeschriftungen nur über title (veraltet) veraltet———mediumminor
landmark-banner-is-top-levelBanner-Landmark muss auf oberster Ebene liegen——1mediumminor
landmark-complementary-is-top-levelComplementary-Landmark muss auf oberster Ebene liegen——1mediumminor
landmark-contentinfo-is-top-levelContentinfo-Landmark muss auf oberster Ebene liegen——1mediumminor
landmark-main-is-top-levelMain-Landmark muss auf oberster Ebene liegen——1mediumminor
landmark-no-duplicate-bannerSeite darf nicht mehr als eine Banner-Landmark haben——1mediumminor
landmark-no-duplicate-contentinfoSeite darf nicht mehr als eine Contentinfo-Landmark haben——1mediumminor
landmark-no-duplicate-mainSeite darf nicht mehr als eine Main-Landmark haben——1mediumminor
landmark-one-mainSeite sollte eine Main-Landmark haben——1mediumminor
landmark-uniqueLandmarks mit derselben Rolle müssen eindeutige Namen haben——1mediumminor
link-name-qualityLinktext sollte aussagekräftig sein, nicht generisch2.4.4, 2.4.9AAA2mediumminor
live-region-announcementsLive-Regionen sollten Statusmeldungen ansagen können4.1.3AA4mediummoderate
manual-reviewManuelle Prüfung: Tastaturnavigation und Fokusreihenfolge2.1.1, 2.4.3, 2.4.7AA1mediummoderate
media-alternative-transcript-evidenceZeitbasierte Medien: Hinweise auf Transkript oder Textalternative1.2.1A2lowmoderate
meta-viewport-largeViewport-Meta-Tag sollte Zoomen bis 500 % erlauben——1mediumminor
mouse-only-event-handlersEvent-Handler nur für Zeigergeräte sollten ein per Tastatur erreichbares Gegenstück haben2.1.1, 2.1.3AAA2lowmoderate
moving-content-pausableInhalte, die sich von selbst bewegen, sollten sich pausieren, stoppen oder ausblenden lassen2.2.2A2lowmoderate
no-autoplay-audioAutomatisch abgespieltes Audio sollte eine Möglichkeit zum Anhalten/Stoppen oder zur Lautstärkeregelung bieten1.4.2A3lowmoderate
object-text-alternative-qualityTextalternative von <object> muss angemessen sein (manuelle Prüfung)1.1.1A1mediumminor
p-as-headingText, der wie eine Überschrift gestaltet ist, sollte wahrscheinlich eine echte Überschrift sein1.3.1A4lowminor
page-has-heading-oneSeite sollte eine Überschrift der ersten Ebene haben——1mediumminor
page-title-patternsMuster im Seitentitel, die auf zu wenig Aussagekraft hindeuten können2.4.2A6mediumminor
password-paste-enabledAuthentifizierungsfelder dürfen das Einfügen nicht blockieren3.3.8AA2mediumserious
presentation-role-conflictPräsentationsrolle darf nicht mit einem globalen ARIA-Attribut oder Fokussierbarkeit kollidieren——1mediumminor
regionSeiteninhalte sollten in einer Landmark-Region liegen——1mediumminor
scope-attr-validscope-Attribut muss einen gültigen Wert haben——1mediumminor
scrollable-region-focusableScrollbare Bereiche ohne fokussierbaren Inhalt sollten per Tastatur fokussierbar sein2.1.1, 2.1.3AAA1lowmoderate
skip-linkSkip-Link muss ein auflösbares, nutzbares Ziel haben——2mediumminor
svg-text-alternative-qualityTextalternative von <svg> muss angemessen sein (manuelle Prüfung)1.1.1A2mediumminor
tabindextabindex sollte nicht größer als 0 sein——1mediumminor
table-duplicate-nameTabellenbeschriftung darf das summary-Attribut nicht wiederholen——1mediumminor
table-fake-captionDie erste Zeile einer Tabelle sollte kein echtes <caption> ersetzen1.3.1A1lowminor
video-captionAufgezeichnete Videos sollten vollständige Untertitel bereitstellen1.2.2A3lowmoderate
widget-keyboard-focusableWidgets sollten per Tastatur erreichbar sein2.1.1A4mediumserious