Übersicht über Axe DevTools C#
Übersicht über Axe DevTools für Web für C#, einschließlich Voraussetzungen und bekannter Einschränkungen
Axe DevTools C# umfasst:
- axe-core Version 4
- Unterstützung für Microsoft Visual Studio 2019 IDE
- Unterstützung für Microsoft .NET Core 2.2.0 CLI
Standardmäßig werden Scans gegen WCAG 2.1 Level AA ausgeführt, wobei Best-Practice- und experimentelle Regeln deaktiviert sind. Siehe Regeln anpassen, um das Regelwerk zu ändern oder Best Practices zu aktivieren.
Voraussetzungen
Axe DevTools erfordert eine Selenium WebDriver-Bindung für einen Browser Ihrer Wahl. Um Axe DevTools zu verwenden, müssen Sie zuerst Selenium WebDriver installieren und konfigurieren.
Annahmen und bekannte Einschränkungen
-
Die Verwendung dieser Integration setzt voraus:
- Sie haben den gewünschten Zustand der Seite festgelegt, bevor Sie die Tests durchführen.
- Sie haben das Selenium-Objekt nicht verändert, außer um Axe auszuführen und Ihre Konfiguration anzuwenden.
- Sie schließen die getestete Webseite nach Abschluss des Tests.
-
Beste Praxis: Führen Sie keine zusätzlichen Tests durch, ohne die Seite zu aktualisieren. Das Ändern des Zustands einer Webseite während eines Selenium-Testlaufs und das Durchführen der Tests, ohne den ursprünglichen erwarteten Seitenzustand wiederherzustellen, führt zu unvorhersehbaren Testergebnissen. Axe DevTools C# kann während des Testens Inhalte in eine Webseite injizieren. Versuche, Axe DevTools wiederholt auf einer bereits getesteten Seite auszuführen, führen zu unvorhersehbaren Testergebnissen.
Benutzerdefinierte Elemente und ElementInternals
Ab Axe DevTools C# 4.13.0 lesen die Scans die ARIA-Semantiken, die Web-Komponenten in JavaScript über ElementInternals deklarieren, und nicht nur die im Markup vorhandenen role- und aria-*-Attribute. Eine Konfiguration ist nicht erforderlich. Semantiken im DOM haben nach wie vor Vorrang: Ein explizites role- oder aria-*-Attribut am Element überschreibt den Wert von ElementInternals.
Ihre Komponenten müssen ihre Interna veröffentlichen, damit dies wirksam wird, und eine Komponente, die sie in einem privaten Klassenfeld speichert, kann nicht gelesen werden. Siehe Testen benutzerdefinierter Elemente, die ElementInternals verwenden.
