Analyse von iframes
Wie Axe Watcher Inhalte innerhalb von iframes während Ihrer Testläufe analysiert.
Seiten platzieren häufig umfangreiche Inhalte in <iframe> Elementen: Zahlungsformulare, Mediaplayer, eingebettete Karten, Chat- und Hilfs-Widgets sowie Drittanbieterkomponenten. Axe Watcher analysiert die Inhalte von Same-Origin-Frames zusammen mit dem Rest der Seite, sodass gerahmte Inhalte keine Lücke in Ihrer Abdeckung darstellen und keine eigenen Tests benötigen.
Für die Frame-Analyse ist keine Einrichtung erforderlich, und die Verarbeitung von Frames durch Watcher ist unabhängig von der verwendeten Sprache oder dem Testframework: axe-core wird in die Frames der Seite geladen, und die Ergebnisse der Frames werden zusammen mit dem Seitenstatus analysiert und berichtet, das sie enthält.
Wie Frame-Ergebnisse berichtet werden
Probleme, die innerhalb eines Frames gefunden werden, werden dem Seitenstatus der Seite zugeordnet, die den Frame einbettet, nicht einem separaten Seitenstatus. Im Axe Developer Hub erscheinen sie zusammen mit den restlichen Problemen für diesen Seitenstatus.
Was ein Problem als stammend aus einem Frame kennzeichnet, ist sein Element-Selektor, der für jede Ebene der Frame-Verschachtelung einen Eintrag enthält, gefolgt von einem Selektor für das Element selbst. Ein Selektor mit zwei Einträgen weist auf ein Element innerhalb eines Frames hin: Der erste Eintrag findet den Frame im übergeordneten Dokument, der zweite findet das Element innerhalb des Dokuments dieses Frames. Das bedeutet, dass ein gemeldetes Element möglicherweise nicht im eigenen HTML der Seite existiert. Lesen Sie den Selektor von außen nach innen, um zu finden, wo das Element tatsächlich lebt.
Umfang und Einschränkungen
- Same-Origin-Frames werden analysiert. Ein Verstoß innerhalb eines Frames, der vom selben Ursprung wie die Seite geliefert wird, wird mit den Ergebnissen dieser Seite gemeldet, identifiziert durch einen Selektor, der den Frame und dann das Element darin benennt.
- Cross-Origin-Frames werden nicht analysiert, es sei denn, Sie erlauben es. Watcher läuft im Browser neben Ihrer Anwendung, weshalb die Same-Origin-Policy des Browsers gilt. Standardmäßig wird Inhalt in einem Frame, der von einem anderen Ursprung geliefert wird, nicht analysiert und es werden keine Verstöße dafür gemeldet. Ab Watcher 4.6.0 und höher können Sie pro Ursprung mit der
allowedOrigins-Option ein Opt-In durchführen, die unten beschrieben wird. - Frames werden mit der Seite analysiert, nicht separat. Frame-Inhalte werden durch jede Analyse der Seite, die sie einbettet, abgedeckt, sodass ein Frame, dessen Inhalt sich ändert, von der Analyse des resultierenden Seitenstatus erfasst wird.
- Frames folgen der Seitenkonfiguration. Optionen, die steuern, was Watcher analysiert, wie Steuerung Ihrer Scans und URLs ausschließen, gelten für die Seite als Ganzes, einschließlich ihrer Frames. Es gibt keine separate Einstellung für Frames.
Analyse von Cross-Origin-Frames
Watcher 4.6.0 fügte die allowedOrigins-Option hinzu, die das Analysieren von Inhalten von Frames, die von benannten Ursprüngen geliefert werden, ermöglicht. Setzen Sie allowedOrigins in AxeConfiguration (JavaScript/TypeScript-Integrationen) oder rufen Sie setAllowedOrigins() auf AxeWatcherOptions (Java-Integrationen) auf. Ihr eigener Ursprung ist immer erlaubt, listen Sie daher nur die eingebetteten Ursprünge auf, die Sie abdecken möchten:
axe: {
allowedOrigins: [ 'https://pay.example.com' ]
}Wichtige Punkte, die Sie wissen sollten, bevor Sie es aktivieren:
- Platzhalter werden nicht unterstützt. Jeder Ursprung muss explizit genannt werden, und ein Eintrag, den Watcher nicht verwenden kann, wird als Fehler gemeldet, anstatt ignoriert zu werden.
- Jeder aufgeführte Ursprung kann das einbettende Seitenmarkup beeinflussen und lesen. Nennen Sie nur Ursprünge, denen Sie den Inhalt der zu testenden Seite anvertrauen.
- Jeder erlaubte Ursprung fügt den Inhalt dieses Frames zu jeder Analyse hinzu, wodurch die Analyse langsamer wird. Die Standard-
analyzeundflush-Timeouts werden erhöht, wenn die Option gesetzt ist. - Die automatische Analyse kann keine Änderungen erkennen, die innerhalb eines Frames vorgenommen werden, sodass ein erlaubter Frame ab der letzten Änderung an der obersten Seite analysiert wird. Rufen Sie
analyze()auf, nachdem Sie mit Inhalten innerhalb eines Frames interagiert haben.
Siehe die allowedOrigins Referenz für das vollständige Eingabeformat und die Validierungsregeln.
Aktivieren Sie Bewährte Praktiken, wenn Sie auf Frame-Abdeckung angewiesen sind. Die axe-core frame-tested-Regel unterscheidet zwischen „keine Probleme in diesem Frame“ und „dieser Frame wurde nie analysiert“: ein Frame, den Watcher nicht erreichen konnte, wird als überarbeitungsbedürftig gemeldet, und einer, den er erreichte, besteht die Regel. Da es sich um eine Best-Practice-Regel handelt, wird sie in einem Regelset, das auf WCAG-Regeln beschränkt ist, vollständig ausgespart, und ein nicht erlaubter Cross-Origin-Frame erzeugt dann kein Signal jeglicher Art.
