Set di regole personalizzati

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
Not for use with personal data

Un set di regole personalizzato è un file JSON generato che viene passato a axe.configure per controllare il modo in cui axe testa la tua pagina. Può modificare il modo in cui vengono eseguite le regole esistenti, ad esempio disattivandole o modificandone l'impatto, oppure può essere utilizzato per creare regole completamente nuove.

Ecco alcune delle cose che puoi fare con i set di regole personalizzati:

  • Modifica l'impatto di una regola o di un controllo.
  • Disattiva le regole.
  • Crea nuove regole per testare la politica di accessibilità della tua organizzazione.
  • Limitare le soluzioni consentite per gli elementi. Ad esempio, non consentire all'attributo title di assegnare un nome accessibile a un elemento <img> .
  • Modificare il contrasto minimo nella regola del contrasto colore.
  • Aggiornare i ruoli e le proprietà ARIA che sono supportati.

Il comando "ruleset" ha il seguente formato:

axe ruleset [options]

Opzioni

-c, --custom <path>

Genera un set di regole personalizzato da un changes.json file nella directory corrente o dal percorso specificato.

-d, --destinazione <path>

Directory di output per il file JSON del set di regole

-t, --tag <list>

Elenco di [tag] separati da virgole(https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#axe-core-tags) che verranno utilizzati per filtrare il set di regole standard

-f, --format [formato]

Formato di output (js o json) per il file JSON del set di regole

-l, --log

Genera un elenco di tutte le regole incluse nei set di regole generati.

-x, --disabilita-altre-regole

Disabilita tutte le regole non incluse nella proprietà rules del file changes.json o nella directory rules.

-a, --axe-source <path>

Percorso verso un file sorgente di axe personalizzato

--508 [nome file]

Genera una configurazione standard per regole della Sezione 508.

--en301549 [nome file]

Genera una configurazione standard per regole EN 301 549.

--ttv5 [nome file]

Genera una configurazione standard per regole Trusted Tester v5.

--wcag2 [nome file]

Genera una configurazione standard per le linee guida WCAG 2.0.

--wcag21 [nome file]

Genera una configurazione standard per le linee guida WCAG 2.1.

--wcag22 [nome file]

Genera una configurazione standard per le linee guida WCAG 2.2.

--wcag2aaa [nome file]

Genera una configurazione standard per le linee guida WCAG 2.0 Livello AAA.

--wcag21aaa [nome file]

Genera una configurazione standard per le linee guida WCAG 2.1 Livello AAA.

--wcag22aaa [nome file]

Genera una configurazione standard per le linee guida di livello AAA WCAG(https://www.deque.com/wcag/) 2.2.

--all [nome file]

Genera una config standard per tutte le linee guida (508, WCAG 2 e WCAG 2.1).

--solo-modifiche

Genera solo le modifiche e le aggiunte al set di regole e non la config completa.

Generazione di un set di regole personalizzato

Per generare un set di regole personalizzato è necessario disporre di un file changes.json, nella directory corrente o nel percorso specificato dall'opzione --custom.

Il file changes.json ha lo stesso formato dell'oggetto passato a axe.configure. Nel file è possibile specificare le modifiche alle regole e ai controlli di axe corrente, nonché eventuali nuove regole o controlli.

Ad esempio, se si desidera modificare l'impatto della valid-lang regola in modo che sia minor invece di serious, il file changes.json avrebbe un aspetto simile al seguente:

{
    "rules": [{
        "id": "valid-lang",
        "impact": "minor"
    }]
}

Utilizzo delle directory Regole e Controlli

Se lo desideri, puoi anche separare le nuove regole e i nuovi controlli nelle rispettive directory (denominate rules e checks rispettivamente). Ogni regola o controllo dovrebbe essere un file JSON a sé stante nella rispettiva directory. Questa operazione non modifica l'output del file JSON generato, ma è semplicemente un modo comodo per organizzare più regole e controlli personalizzati anziché elencarli tutti nel changes.json file.

Ad esempio, per creare una nuova regola personalizzata denominata h1-no-duplicate che verifica se nella pagina è presente più di un <h1> elemento, è possibile avere la seguente struttura di directory:

directory
 ├ changes.json
 ├ rules
 │  └ h1-no-duplicate.json
 └ checks
    └ page-no-duplicate-h1.json

Il h1-no-duplicate.json file di metadati della regola definirà la regola personalizzata e quali controlli utilizzare:

{
    "id": "h1-no-duplicate",
    "selector": "h1:not([role]), [role=heading][aria-level=1]",
    "tags": ["cat.semantics", "best-practice"],
    "metadata": {
        "description": "Ensures the document has at most one h1 element",
        "help": "Document must not have more than one h1 element"
    },
    "all": [],
    "any": ["page-no-duplicate-h1"],
    "none": []
}

Il file di metadati di controllo page-no-duplicate-h1.json definisce il controllo personalizzato e quale metodo axe evaluate utilizzare:

{
    "id": "page-no-duplicate-h1",
    "evaluate": "page-no-duplicate-evaluate",
    "after": "page-no-duplicate-after",
    "options": {
        "selector": "h1:not([role]), [role=heading][aria-level=1]"
    },
    "metadata": {
        "impact": "moderate",
        "messages": {
            "pass": "Document does not have more than one h1 element",
            "fail": "Document has more than one h1 element"
        }
    }
}
note

Un elenco di tutti evaluate i metodi che possono essere utilizzati può essere trovato nel file metadata-function-map di axe-core. after

Infine, poiché non ci sono modifiche alle regole o ai controlli correnti, il file sarebbe un oggetto vuoto: changes.json

{}

Dopo aver eseguito il comando axe ruleset --custom , il file JSON generato apparirà come segue:

{
    "rules": [{
        "id": "h1-no-duplicate",
        "selector": "h1:not([role]), [role=heading][aria-level=1]",
        "tags": ["cat.semantics", "best-practice"],
        "metadata": {
            "description": "Ensures the document has at most one h1 element",
            "help": "Document must not have more than one h1 element"
        },
        "all": [],
        "any": ["page-no-duplicate-h1"],
        "none": []
    }],
    "checks": [{
        "id": "page-no-duplicate-h1",
        "evaluate": "page-no-duplicate-evaluate",
        "after": "page-no-duplicate-after",
        "options": {
            "selector": "h1:not([role]), [role=heading][aria-level=1]"
        },
        "metadata": {
            "impact": "moderate",
            "messages": {
                "pass": "Document does not have more than one h1 element",
                "fail": "Document has more than one h1 element"
            }
        }
    }]
}

Utilizzo di un set di regole personalizzato

Esistono tre modi per configurare regole personalizzate in axe DevTools.

  • esplicitamente: questo varia a seconda dei pacchetti, per la CLI, utilizzare l'opzione --custom .

  • variabile d'ambiente: se è presente una AXE_RULESET_PATH variabile d'ambiente impostata, axe DevTools la caricherà come set di regole predefinito.

  • file locale: se nella directory in cui viene eseguito axe è presente un axe-ruleset.json file, verrà utilizzato come set di regole predefinito.

Se non viene specificato nessuno di questi parametri o se axe DevTools non riesce a caricare il file impostato, verrà utilizzato il wcag2 set di regole predefinito.

Supporto

Per creare set di regole personalizzati è necessaria una conoscenza approfondita di axe-core. Per maggiori dettagli, consultare la documentazione API axe-core. Se desiderate supporto nella creazione e nella gestione del vostro set di regole personalizzato, contattate il vostro rappresentante Deque.