iframe-focusable-content
Frames mit tabindex="-1" dürfen keine fokussierbaren Inhalte enthalten
Prüft, dass <iframe>/<frame>-Elemente desselben Ursprungs mit tabindex="-1" keine fokussierbaren Inhalte enthalten, die Tastaturnutzende nicht erreichen können: Der negative tabindex nimmt den gesamten Inhalt des Frames aus der Tab-Reihenfolge.
Anwendbarkeit. Gilt für <iframe>/<frame>-Elemente mit einem expliziten negativen tabindex, deren eingebettetes Dokument denselben Ursprung hat und über contentDocument erreichbar ist. In einen Cross-Origin- oder anderweitig nicht erreichbaren Frame lässt sich nicht hineinsehen, daher wird über ihn nichts festgestellt.
Erwartung. Das eingebettete Dokument des Frames enthält kein Element in seiner sequenziellen Fokusnavigationsreihenfolge. Ein negativer tabindex auf dem <iframe> nimmt dessen gesamten Browsing-Kontext aus der Tab-Reihenfolge: Tab überspringt alles darin, sodass ein Link oder Steuerelement dort per Tastatur nicht erreichbar ist (ACT akn7bn; in Chromium springt Tab vom Element vor dem Frame zu dem danach). Ob ein Element zur Reihenfolge gehört, bestimmen die Regeln von HTML, angewendet im eigenen Dokument des Frames: nicht, wenn es deaktiviert (:disabled, was ein deaktiviertes <fieldset> einschließt, nicht aber dessen erstes <legend>) oder inert ist; ein tabindex, der sich als Ganzzahl parsen lässt, entscheidet, ein ungültiger ("", "abc") wird ignoriert; ansonsten gehören Links mit href, Formularfelder außer versteckten Inputs, Frames, Medien mit controls, ein <area> einer Image-Map, die ein gerendertes <img> verwendet (usemap exakt abgeglichen), das erste <summary> eines <details> und Editing Hosts (contenteditable "", "true" oder "plaintext-only") dazu. Ausnahme: Ein iframe, dessen HTML-Attribute width und height beide 2px oder weniger betragen (ein verbreitetes „Tracking-Pixel“-Muster), kann keine wahrnehmbaren Inhalte darstellen; fokussierbare Inhalte darin erfüllen daher nie die „visible“-Anforderung von ACT akn7bn und zählen nicht.
Beispiele
<iframe tabindex="-1" width="300" height="150" srcdoc="<p>No focusable content</p>"></iframe>
tabindex="-1" nimmt den Frame aus der Tab-Reihenfolge, und auch darin ist nichts fokussierbar.
<iframe tabindex="-1" width="300" height="150" srcdoc="<a href='/x'>Link inside</a>"></iframe>
Der Host-Frame wird durch tabindex="-1" übersprungen, aber der Link darin ist per Tab weiterhin erreichbar – der Browser gibt den negativen tabindex nicht an das eingebettete Dokument weiter.
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.
IFRAME_TABINDEX_NEGATIVE_CONTENT_RUNTIME_REDIRECT
- Klicken Sie auf die Seite direkt vor dem im Bericht genannten Frame und drücken Sie dann Tab, um sich darauf zuzubewegen.
- Drücken Sie weiter Tab und beobachten Sie, ob der Fokus jemals im Frame landet und wohin er geht, wenn er dort ankommen würde.
- Untersuchen Sie das fokussierbare Element im Frame im Bereich „Elemente“: Notieren Sie, ob es ein leerer Fokuswächter oder ein echter Link bzw. ein echtes Bedienelement mit Inhalt ist.
- Ist es ein echter Link oder ein echtes Bedienelement, probieren Sie jeden anderen Tastaturweg dorthin (Umschalttaste+Tab, die eigenen Bedienelemente des Frames), um zu sehen, ob es erreicht und bedient werden kann.
Bestanden. Das einzige fokussierbare Element im Frame ist ein leerer Fokuswächter, der den Fokus weitergibt, und nichts, was Nutzende im Frame brauchen, bleibt für die Tastatur unerreichbar.
Nicht bestanden. Ein echter Link oder ein echtes Bedienelement im Frame lässt sich mit der Tastatur nicht erreichen oder bedienen, weil der Fokus es überspringt oder davon abprallt; das verstößt gegen WCAG 2.1.1.