Référence de l'API axe-devtools-unittest

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

Référence de l'API pour le package axe-devtools-unittest fournissant des assertions d'accessibilité pour unittest

Not for use with personal data

Ce package fournit des assertions d'aide qui étendent unittest pour s'intégrer avec Axe DevTools.

axe_devtools_unittest.AxeAssertions

Une classe mixin qui ajoute des assertions d'accessibilité à unittest.TestCase. La classe de test doit étendre à la fois unittest.TestCase et AxeAssertions.

class MyTests(unittest.TestCase, AxeAssertions):
    ...

assertIsAxeClean(results)

Vérifiez qu'aucune violation n'a été trouvée par axe-core.

results : L'objet de résultats retourné par Axe.analyze().

Lève AssertionError s'il y a des violations. Le message d'erreur inclut un rapport des violations.

assertNoIncomplete(results)

Assurez-vous qu'axe-core a terminé toutes les vérifications qu'il a tentées.

Les vérifications incomplètes sont celles qui n'ont ni réussi ni échoué de manière définitive et nécessitent un examen manuel.

results : L'objet de résultats retourné par Axe.analyze().

Lève AssertionError si des vérifications sont incomplètes.

assertInapplicable(results, *rules)

Assurez-vous que les règles spécifiées ont produit des résultats inapplicables.

results : L'objet de résultats retourné par Axe.analyze().

rules : Un ou plusieurs ID de règles à vérifier pour le statut non applicable.

Lève AssertionError si l'une des règles spécifiées ne figure pas dans les résultats non applicables.

Exemple

L'exemple suivant peut être exécuté directement avec Python, à condition que axe-devtools-api, axe-devtools-selenium et axe-devtools-unittest soient installés.

import unittest
from os import path
from axe_devtools_api import Axe
from axe_devtools_selenium import AxeDriver
from axe_devtools_unittest import AxeAssertions
from selenium import webdriver

class TestAxe(unittest.TestCase, AxeAssertions):
    def setUp(self):
        self.page = webdriver.Chrome()
        self.page.get("http://localhost:8000/example-page.html")
        self.axe = Axe(AxeDriver(self.page))

    def test_run_axe(self):
        res = self.axe.analyze()
        assert res.is_axe_clean(), res.violations_report()

    def test_with_rules(self):
        res = self.axe \
            .with_rules("document-title", "label") \
            .with_rules("region") \
            .analyze()
        self.assertNoIncomplete(res)
        self.assertIsAxeClean(res)

    def test_including_within_frame(self):
        res = self.axe \
            .including("#my-frame", "body") \
            .analyze()
        self.assertNoIncomplete(res)
        self.assertIsAxeClean(res)

if __name__ == '__main__':
    unittest.main()