heading-order
Überschriftenebenen dürfen keine Ebene überspringen
Prüft, dass Überschriftenebenen in Dokumentreihenfolge jeweils um höchstens eins zunehmen.
Anwendbarkeit. Gilt immer dann, wenn die Seite zwei oder mehr Überschriftenelemente enthält (native <h1>-<h6> oder explizites role="heading" mit aria-level; laut ARIA-Spezifikation Standardebene 2, wenn aria-level fehlt oder ungültig ist). Ein natives <hx> mit gültigem aria-level (einer positiven Ganzzahl) übernimmt diese Ebene, wie Browser sie bereitstellen; andernfalls die Ebene seines Tags. Ein natives <hx> mit role="none" oder "presentation" ist weiterhin eine Überschrift, wenn es den Fokus erhalten kann oder ein globales ARIA-Attribut trägt, da Browser diese Rolle dann nach der Konfliktauflösung für präsentationale Rollen in WAI-ARIA ignorieren. Ein Custom Element, dem seine ElementInternals die Rolle heading geben (this.attachInternals().role), zählt wie role="heading", auf der Ebene, die sein aria-level-Attribut oder das ariaLevel seiner Internals angibt.
Erwartung. In der Reihenfolge, in der assistive Technologien die Seite lesen, ist die Ebene jeder Überschrift höchstens um eins größer als die Ebene der vorherigen Überschrift, die assistiven Technologien bereitgestellt wird. Ein Sprung um mehr als eine Ebene in die Tiefe (z. B. ein <h1>, direkt gefolgt von einem <h3>, unter Auslassung von <h2>) bricht die Dokumentgliederung, auf die sich Personen, die assistive Technologien nutzen, bei der Navigation über Überschriften verlassen. Die Rückkehr zu einer übergeordneten Ebene ist jederzeit in Ordnung.
Was ein Befund meldet.
fromLevel: die Ebene der vorherigen bereitgestellten Überschrift (3 bei einem <h3>).toLevel: die Ebene dieser Überschrift, mehr als eine Ebene tiefer alsfromLevel.
Diese Felder in data.details helfen, einen Befund zu lesen und zu reproduzieren. Außer reasonCode und den wenigen Feldern, die Ausgabeschema als stabil nennt, sind sie kein stabiler Vertrag: Ein Feld kann in einer Minor-Version umbenannt werden oder wegfallen, bauen Sie also nicht darauf auf.
Beispiele
<h1>Title</h1><h2>Section</h2><h3>Subsection</h3>
Jede Überschriftenebene nimmt jeweils um höchstens eins zu.
<h1>Title</h1><h3>Subsection</h3>
Die Überschriftenebene springt von 1 auf 3 und lässt Ebene 2 aus.
So prüfen Sie es
Wenn diese Regel nicht entscheiden kann, meldet sie cantTell und überlässt die Frage einer Person. Jede Frage, die sie stellen kann, steht hier unter ihrem Reason-Code, mit den Schritten, um sie zu beantworten. Ein Befund enthält dieselben Schritte in howToCheck, in der Sprache des Scans. Siehe Ausgabeschema.
HEADING_ORDER_SKIPPED_LEVEL
- Suchen Sie die im Bericht genannte Überschrift und notieren Sie ihre Ebene und die Ebene der vorherigen Überschrift (aus dem Bericht oder dem Bereich „Barrierefreiheit“).
- Listen Sie die Überschriften der Seite der Reihe nach auf, mit der Überschriftenliste eines Screenreaders oder durch Untersuchen, und betrachten Sie den Abschnitt um den Sprung herum.
- Entscheiden Sie, ob die Überschrift eine Ebene unter die vorherige Überschrift gehört oder ob eine Ebene fehlt.
Bestanden. Jede Überschrift liegt höchstens eine Ebene tiefer als die vorherige, sodass die Gliederung keine Lücke hat.
Nicht bestanden. Die Überschrift springt mehr als eine Ebene tiefer als die vorherige (ein h2 gefolgt von einem h4) und hinterlässt eine Lücke in der Gliederung; ein Verstoß gegen die Best Practice (G141).