C#でAxe DevTools for Webのテストを書く方法

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Axe DevTools for Webを使用したアクセシビリティの効果的なテストの書き方

Not for use with personal data

このガイドはNUnitとMSTestの両方のテスト例を提供します。すべてのテストはAxeReportingクラスを使用して初期レポート結果を生成します。Axe DevToolsのテストクラスについての詳細は、C# APIリファレンスを訪れてください。

基本的なデフォルトテスト

以下のテストは、ページを解析するためにaxe.Analyze()を呼び出し、その結果をアサーションと比較し、AxeReportingクラスを使用して初期レポートを出力します。

NUnit構文

[Test]
public void AccessibilityAnalyzeAsync()
{
  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "basic analyze");

  Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}

MSTest構文

[TestMethod]
public void AccessibilityAnalyzeAsync()
{
  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "basic analyze");

  Assert.IsTrue(results.Findings.Violations.Count == 0);
}

ページの状態とフローのテスト

このテストケースは、ページの異なる状態またはフローをスキャンするためにaxe.Analyze()を呼び出し、その結果をアサーションと比較し、初期レポートを出力します。

NUnit構文

[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構文

[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);
}

特定のルールのみでのテスト

このテストは、指定されたルールでページをスキャンするためにaxe.Analyze()を呼び出します。

NUnit構文

[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));
}

特定のルールを無効にしたテスト

このテストは、特定のルールを無効にしてページをスキャンするためにaxe.Analyze()を呼び出します。

NUnit構文

[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構文

[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);
}

特定のルールセットでのテスト

このテストは、指定されたルールセット、つまり508でページをスキャンするためにaxe.Analyze()を呼び出します。

NUnit構文

[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構文

[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);
}

ページの特定部分のテスト(スコープされたテスト)

以下のテストは、#headerIDに関連するコンテンツをテストから除外し、#homecontentIDを持つコンテンツがテストされることを確認するためにaxe.Analyze();を呼び出します。

NUnit構文

[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構文

[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);
  }