Tests für Axe DevTools for Web in C# schreiben
Wie man effektive Tests für Barrierefreiheit mit Axe DevTools for Web für C# schreibt
Dieser Leitfaden bietet Beispieltests für sowohl NUnit als auch MSTest. Alle Tests verwenden die AxeReporting-Klasse, um anfängliche Berichterstattungsergebnisse zu erstellen. Für weitere Informationen über die Axe DevTools-Testklassen besuchen Sie die C# API-Referenz.
Ein grundlegender Standardtest
Der folgende Test ruft axe.Analyze() auf, um die Seite zu analysieren, vergleicht die Ergebnisse mit der Assertion und erstellt anfängliche Berichtsausgaben unter Verwendung der AxeReporting-Klasse.
NUnit-Syntax
[Test]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}MSTest-Syntax
[TestMethod]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}Testen von Seitenzuständen und Abläufen
Dieser Testfall ruft axe.Analyze() auf, um die Seite in verschiedenen Zuständen oder verschiedenen Abläufen der Seite zu scannen, vergleicht die Ergebnisse mit der Assertion und erstellt anfängliche Berichtsausgaben:
NUnit-Syntax
[Test]
public void AccessibilityAnalyzeWithPageFlow()
{
var homeResults = axe.Analyze();
AxeReporting.CreateResultsOutput(homeResults, "home-page");
driver.FindElementByName("q").SendKeys("csun 2019 accepting new papers for presentations");
driver.FindElementById("go").Click();
var searchResults = axe.Analyze();
AxeReporting.CreateResultsOutput(searchResults,"search-results-page");
Assert.That(searchResults.Findings.Violations.Count, Is.EqualTo(0));
}MSTest-Syntax
[TestMethod]
public void AccessibilityAnalyzeWithPageFlow()
{
var homeResults = axe.Analyze();
AxeReporting.CreateResultsOutput(homeResults, "home-page");
driver.FindElementByName("q").SendKeys("csun 2019 accepting new papers for presentations");
driver.FindElementById("go").Click();
var searchResults = axe.Analyze();
AxeReporting.CreateResultsOutput(searchResults, "search-results-page");
Assert.IsTrue(searchResults.Findings.Violations.Count == 0);
}Testen mit nur bestimmten Regeln
Dieser Test ruft axe.Analyze() auf, um die Seite mit angegebenen Regeln zu scannen:
NUnit-Syntax
[Test]
public void AccessibilityAnalyzeWithSpecificRules()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specifc rules")).WithRules("heading-order", "link-name");
var results = axe.Analyze();
System.Console.WriteLine(results);
AxeReporting.CreateResultsOutput(results, "specific-rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}Testen mit deaktivierten bestimmten Regeln
Dieser Test ruft axe.Analyze() auf, um die mit deaktivierten spezifischen Regeln zu scannen:
NUnit-Syntax
[Test]
public void AccessibilityAnalyzeWithDisabledRules()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("disabled rules")).DisablingRules("heading-order", "link-name");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "disabled-rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}MSTest-Syntax
[TestMethod]
public void AccessibilityAnalyzeWithDisabledRules()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("disabled rules")).DisablingRules("heading-order", "link-name");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "disabled-rules");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}Testen mit einem bestimmten Regelset
Dieser Test ruft axe.Analyze() auf, um die Seite mit einem angegebenen Regelset zu scannen, in diesem Fall 508:
NUnit-Syntax
[Test]
public void AccessibilityAnalyzeWith508Ruleset()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specific ruleset")).WithRuleset("508");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "508-rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}MSTest-Syntax
[TestMethod]
public void AccessibilityAnalyzeWith508Ruleset()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specific ruleset")).WithRuleset("508");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "508-rules");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}Testen eines bestimmten Abschnitts der Seite (begrenzter Test)
Der folgende Test ruft axe.Analyze(); auf, um den mit der #header ID verbundenen Inhalt vom Test auszuschließen und stellt sicher, dass der Inhalt mit der #homecontent ID getestet wird:
NUnit-Syntax
[Test]
public void IncludingAndExcludingElements()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("excluding and including ruleset")).Excluding("#header").Including("#homecontent");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "Including-Excluding rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}MSTest-Syntax
[TestMethod]
public void IncludingAndExcludingElements()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("excluding and including ruleset")).Excluding("#header").Including("#homecontent");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "Including-Excluding rules");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}