Schreiben von Tests für axe DevTools for Web in C#
So schreiben Sie effektive Tests für die Barrierefreiheit mit axe DevTools for Web für C#
Dieses Handbuch enthält Beispieltests für NUnit und MSTest. Alle Tests verwenden die AxeReporting
Klasse, um erste Berichtsergebnisse zu erstellen. Weitere Informationen zu den Testklassen von axe DevTools finden Sie in der C# API-Referenz.
Ein grundlegender Standardtest
Der folgende Test ruft axe.Analyze()
auf, um die Seite zu analysieren, vergleicht die Ergebnisse mit der Assert-Anweisung und erstellt unter Verwendung der AxeReporting
Klasse eine erste Berichtsausgabe.
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 -flüssen
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 Zusicherung und erstellt eine erste Berichtsausgabe:
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 nur mit bestimmten Regeln
Dieser Test ruft axe.Analyze()
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 bestimmten deaktivierten Regeln
Dieser Test ruft axe.Analyze()
die zum Scannen mit deaktivierten spezifischen Regeln auf:
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 Regelsatz
Dieser Test ruft axe.Analyze()
die Seite mit einem angegebenen Regelsatz zu scannen auf, 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);
}
Testing a specific portion of the page (scoped test)
Die folgenden Testaufrufe schließen den Inhalt aus, der mit der axe.Analyze();
ID verknüpft ist, vom Test aus und stellen sicher, dass der Inhalt mit der #header
ID getestet wird: #homecontent
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);
}
Herunterladbare Beispiele
Laden Sie die C# NUnit- und MSTest-Beispiele von axe DevTools herunter und führen Sie sie aus:
In den README.md
Dateien in den heruntergeladenen attestCSharpNUnit/attestCSharpExample
und attestCSharpMSTest/attestMSTestExample
Paketordnern finden Sie Voraussetzungen, Integrationsinformationen, enthaltene Testfälle und die Einrichtung der Berichterstellung in jedem Beispielpaket.