JavaScript personnalisé
Le personnalisé est une vérification que vous créez vous‑même. Vous écrivez un extrait de code JavaScript, Silktide l’exécute dans le navigateur sur chaque page qu’il teste, et tout ce que votre extrait signale devient des constats sur ces pages.
Cela permet de tester tout ce qui importe à votre organisation que Silktide ne teste pas par défaut : une règle de style interne, un extrait de suivi requis, un composant obsolète qui ne devrait plus apparaître, etc.
Comment le corriger
Les constats issus de cette vérification signifient ce que votre extrait décide qu’ils signifient, donc la correction est définie par vous. Rédigez le message de chaque constat de façon qu’un collègue qui n’a jamais vu l’extrait sache quoi modifier.
Comment Silktide le teste
- Votre extrait s’exécute dans le navigateur sur chaque page testée par Silktide, après le chargement de la page, comme le corps d’une fonction JavaScript
async— vous pouvez donc utiliserawaitetreturndirectement. - Tout ce que votre extrait retourne est transformé en constats :
- Retournez un tableau d’objets pour signaler plusieurs constats, chacun mettant en évidence un élément de la page :
\/\/ Signaler comme constat chaque image de plus de 500\u00a0px de large
const wide = [...document.querySelectorAll('img')].filter(img => img.width > 500);
return wide.map(img => ({
selector: 'img[src=\"' + img.getAttribute('src') + '\"]',
text: img.getAttribute('src'),
severity: 'medium',
message: 'L’image dépasse 500\u00a0px de largeur',
}));
- Chaque objet peut inclure un
selector(un sélecteur CSS de l’élément à mettre en évidence),text(ce qui s’affiche pour le constat),severity(low,mediumouhigh), et unmessageexpliquant le problème. - Retournez une simple chaîne pour signaler un seul constat de faible gravité pour la page.
- Retournez un tableau vide, ou rien, pour signaler que la page est correcte.
- Si l’extrait génère une erreur ou retourne quelque chose de non pris en charge, la vérification signale l’erreur sur la page afin que vous puissiez déboguer l’extrait.
Comme l’extrait s’exécute dans le navigateur lorsque la page est téléchargée, toute modification de l’extrait prend effet la prochaine fois que les pages seront retestées, pas instantanément.
Dépannage
Mon extrait fonctionne dans la console du navigateur, mais pas ici
L’extrait constitue le corps d’une fonction, donc des instructions comme return sont attendues au niveau supérieur. Assurez‑vous que l’extrait retourne ses constats plutôt que de les consigner avec console.log, qui n’est pas collecté.
Les constats ne mettent pas en évidence le bon élément
Le selector que vous retournez doit correspondre de façon unique à l’élément dans la page au moment où la page a été testée. Privilégiez les attributs stables (id, data-*) par rapport aux sélecteurs positionnels comme :nth-child, qui se brisent lorsque le contenu se déplace.