Panoramica delle API di Python
Panoramica di Axe DevTools per il Web per Python, inclusi i pacchetti disponibili e le integrazioni con i framework di test
Axe DevTools Python include:
- versione 4 di axe-core
- Supporto Python 3 (non supporta Python 2)
- configurazioni di test basate su unittest, robot framework, behave, oltre a qualsiasi altro framework che utilizza
asserts
Le scansioni vengono eseguite per impostazione predefinita secondo il WCAG 2.1 Livello AA, con le regole delle migliori pratiche ed esperimentali disattivate. Vedi Personalizzazione delle regole per modificare il set di regole o abilitare le migliori pratiche.
Prerequisiti
Axe DevTools richiede un binding Selenium WebDriver per un browser a tua scelta. Per utilizzare Axe DevTools, devi prima installare e configurare Selenium WebDriver.
Descrizione
Axe DevTools è composto da più parti. Il pacchetto principale è axe-devtools-api, che fornisce la logica per configurare e eseguire axe. axe-devtools-selenium viene utilizzato per consentire a axe-devtools-api di comunicare effettivamente con i browser.
Ci sono tre integrazioni con i framework di test.
axe-devtools-unittest è una libreria di asserzioni leggera per unittest che si basa su axe-devtools-api. Quando usi questa integrazione devi dichiarare axe-devtools-api come dipendenza e usarlo direttamente.
axe-devtools-robot integra Axe DevTools con il Robot Framework. axe-devtools-api e axe-devtools-selenium vengono importati automaticamente come dipendenze. Tuttavia, non interagirai con nessuno dei due. Invece, l'integrazione utilizzerà il tuo file .robot per operare axe.
axe-devtools-behave integra Axe DevTools con behave, un framework di test simile a cucumber. axe-devtools-api e axe-devtools-selenium vengono importati automaticamente come dipendenze. Tuttavia, non interagirai con nessuno dei due. Invece, l'integrazione utilizzerà il tuo file .feature per operare axe.
Elementi personalizzati e ElementInternals
A partire da Axe DevTools Python 4.13.0, le scansioni leggono le semantiche ARIA che i componenti web dichiarano in JavaScript tramite ElementInternals, piuttosto che solo gli attributi role e aria-* presenti nel markup. Non è necessaria alcuna configurazione. Le semantiche nel DOM hanno comunque la precedenza: un attributo role o aria-* esplicito sull'elemento sovrascrive il valore da ElementInternals.
I tuoi componenti devono pubblicare i loro internals affinché tutto ciò abbia effetto, e un componente che li memorizza in un campo di classe privato non può essere letto. Vedi Testare elementi personalizzati che utilizzano ElementInternals.
