Page Shadow - Guide la syntaxe des filtres

Cette documentation n'est applicable qu'à la version 2.10.1 et 2.10.2 de Page Shadow

Les règles de filtre permettent de corriger l'affichage des sites web lorsque les fonctions Augmenter le contraste et/ou Inverser les couleurs sont activées. Les corrections peuvent porter sur la désactivation de la modification du style d'un élément (couleur d'arrière-plan, couleur des textes ou des liens, inversion de la couleur) ou le fait de forcer un style sur un élément. Ces règles permettent par exemple de corriger l'affichage de certains éléments qui n'apparaissent pas. Il vous est possible d'écrire vos propres règles de filtre. Si vous avez des connaissances en HTML/CSS, c'est assez simple. Dans un fichier de filtre, une seule règle par ligne est possible.

Vous pouvez utiliser l'éditeur interne à l'extension (Filtres > Éditer mon filtre) qui dispose de la coloration syntaxique adaptée et qui auto-complète automatiquement les règles que vous écrivez.

Syntaxe

La syntaxe d'un filtre est de la forme suivante : siteOuPageWeb[1]|regle[2]|selecteurCss[3]

Chaque partie du filtre est divisée par un caractère | (barre verticale).

[1] siteOuPageWeb

La première partie de la règle (siteOuPageWeb) indique le site web/la page web sur laquelle le filtre doit être appliqué. Cette partie peut être de la forme suivante :

  • Un domaine : par exemple eliastiksofts.com ou www.eliastiksofts.com (ces deux domaines sont traités séparément)
  • Une page web : par exemple https://www.eliastiksofts.com/fr/page-shadow/filters/guide/index.php
  • Une règle avec jokers (peut matcher un domaine ou une page web) : par exemple *eliastiksofts.com/en/* matche toutes les pages du site Eliastik's Softs en version anglaise
  • Une expression régulière (peut matcher un domaine ou une page web) : par exemple /(.*)google.(.*)recaptcha(.*)/ matche les Google ReCaptcha

[2] regle

Cette partie du filtre correspond à la règle en elle-même. Il existe plusieurs règles différentes qui sont reconnues par l'extension :

Règles standard
  • disableContrastFor : désactive complètement la fonction Augmenter le contraste pour un ou plusieurs éléments
  • forceTransparentBackground : force un arrière-plan transparent pour un ou plusieurs éléments
  • disableBackgroundStylingFor : désactive la coloration de l'arrière-plan par la fonction Augmenter le contraste pour un ou plusieurs éléments
  • disableTextColorStylingFor : désactive la coloration des textes par la fonction Augmenter le contraste pour un ou plusieurs éléments
  • disableInputBorderStylingFor : désactive la coloration de la bordure des champs de formulaire par la fonction Augmenter le contraste pour un ou plusieurs éléments
  • disableLinkStylingFor : désactive la coloration des liens par la fonction Augmenter le contraste pour un ou plusieurs éléments
  • disableFontFamilyStylingFor : désactive la modification de la police de caractères (thèmes personnalisés) par la fonction Augmenter le contraste pour un ou plusieurs éléments
  • disableElementInvertFor : désactive l'inversion des couleurs par la fonction Inverser les couleurs pour un ou plusieurs éléments
  • hasBackgroundImg : indique à Page Shadow qu'un ou plusieurs éléments ont une image d'arrière-plan
  • forceCustomLinkColorFor : force la modification de la couleur des liens par la fonction Augmenter le contraste pour un ou plusieurs éléments
  • forceCustomBackgroundColorFor : force la modification de la couleur d'arrière-plan par la fonction Augmenter le contraste pour un ou plusieurs éléments
  • forceCustomTextColorFor : force la modification de la couleur des textes par la fonction Augmenter le contraste pour un ou plusieurs éléments
  • disableShadowRootsCustomStyle : force la désactivation des styles des Shadow Roots par la fonction Augmenter le contraste pour un ou plusieurs éléments
  • forceCustomVisitedLinkColor : force la modification de la couleur des liens visités pour un ou plusieurs éléments
  • disableCustomVisitedLinkColor : désactive la modification de la couleur des liens visités pour un ou plusieurs éléments
  • forceFontFamilyStylingFor : force la police de caractère personnalisée pour les thèmes personnalisés pour un ou plusieurs éléments
  • forceInputBorderStylingFor : force l'affichage d'une bordure pour un ou plusieurs champs de formulaire
  • forceCustomLinkColorAsBackground : met la couleur d'arrière-plan d'un ou plusieurs éléments à celle des liens du thème
  • forceCustomTextColorAsBackground : met la couleur d'arrière-plan d'un ou plusieurs éléments à celle des textes du thème
  • forceCustomLinkVisitedColorAsBackground : met la couleur d'arrière-plan d'un ou plusieurs éléments à celle des liens visités du thème
  • forceDisableDefaultBackgroundColor : force la désactivation de la couleur d'arrière-plan par défaut d'un ou plusieurs éléments, à utiliser en dernier recours
  • forceDisableDefaultBackground : force la désactivation de l'arrière-plan par défaut d'un ou plusieurs éléments, à utiliser en dernier recours
  • forceDisableDefaultFontColor : force la désactivation de la police de caractères par défaut d'un ou plusieurs éléments, à utiliser en dernier recours
  • enablePseudoElementsStyling : active la modification du style des pseudo-éléments CSS :after et :before par l'extension pour un ou plusieurs éléments, désactivé par défaut
  • overrideShadowRootsCustomStyle : même règle que disableShadowRootsCustomStyle
  • invertElementAsImage : active l'inversion des couleurs d'un ou plusieurs éléments en tant qu'image
  • invertElementAsVideo : active l'inversion des couleurs d'un ou plusieurs éléments en tant que vidéo
  • invertElementAsBackground : active l'inversion des couleurs d'un ou plusieurs éléments en tant qu'image d'arrière-plan
  • enableSelectiveInvert : active l'inversion sélective pour un ou plusieurs éléments
  • enablePseudoElementSelectiveInvert : active l'inversion sélective pour un ou plusieurs pseudo-éléments
  • invertPseudoElement : active l'inversion des couleurs pour un ou plusieurs pseudo-éléments
Règles spéciales

Ces règles modifient la façon dont Page Shadow fonctionne de manière interne. Elles permettent d'activer ou désactiver certaines fonctionnalités.

  • enablePerformanceMode : active le mode performance pour le site ou la page web. Cette règle ne nécessite pas de sélecteur CSS. Cela revient à désactiver la détection des images d'arrière-plan et à activer les règles disableTransparentBackgroundAutoDetect, disableMutationObserversForSubChilds, disableMutationObserverAttributes, disableMutationObserverClass, disableMutationObserverStyle et disableShadowRootStyleOverride. Cela peut donc causer des problèmes d'affichage sur certains sites avec la fonction Augmenter le contraste (qui peuvent être compensés avec les règles standard sur les éléments mal affichés).
  • disablePerformanceMode : désactive le mode performance pour le site ou la page web. Règle destinée à être combinée avec la règle enablePerformanceMode pour activer par exemple le mode performance pour le site web globalement et pour le désactiver pour quelques pages.
  • disableTransparentBackgroundAutoDetect : désactive la détection automatique des arrières-plan transparents, n'améliore pas les performances lorsque désactivé seul
  • enableTransparentBackgroundAutoDetect : active la détection automatique des arrières-plan transparents (cette fonctionnalité est activée de base par défaut)
  • opacityDetectedAsTransparentThreshold : paramètre la limite pour laquelle la fonction de détection automatique des arrières-plan transparents traite une opacité comme étant un arrière-plan transparent (par défaut toute opacité inférieure ou égale à 0.1 est traitée comme un fond transparent)
  • enableMutationObserversForSubChilds : lorsque activé, l'extension parcourera tous les sous-éléments d'un élément ajouté à la page (activé par défaut)
  • disableMutationObserversForSubChilds : désactive le parcours de tous les sous-éléments d'un élément ajouté à la page, peut améliorer les performances mais peut causer des problèmes d'affichage
  • enableMutationObserverAttributes : active la détection des mutations d'attributs (style ou class en HTML), activé par défaut
  • disableMutationObserverAttributes : désactive la détection des mutations d'attributs, peut améliorer les performances
  • enableMutationObserverClass : active la détection des mutations de l'attribut HTML class (désactivé par défaut)
  • disableMutationObserverClass : désative la détection des mutations de l'attribut HTML class, peut améliorer les performances
  • enableMutationObserverStyle : active la détection des mutations de l'attribut HTML style (activé par défaut)
  • disableMutationObserverStyle : désactive la détection des mutations de l'attribut HTML style, peut améliorer les performances
  • enableShadowRootStyleOverride : active l'écrasement des styles par défaut des éléments Shadow Roots (activé par défaut)
  • disableShadowRootStyleOverride : désactive l'écrasement des styles par défaut des éléments Shadow Roots, peut améliorer les performances sur les sites qui utilisent cette fonctionnalité
  • shadowRootStyleOverrideDelay : paramètre le délai (par défaut 100 ms) nécessaire avant d'analyser un élement qui contient un Shadow Root pour améliorer leur détection, indiquer un délai inférieur ou égal à 0 désactive cette fonctionnalité
  • enableThrottleMutationObserverBackgrounds : active le ralentissement du traitement des Mutation Observers, améliore considérablement les performances. Désactivé par défaut
  • disableThrottleMutationObserverBackgrounds : désactive le ralentissement du traitement des Mutation Observers
  • delayMutationObserverBackgrounds : délai en ms appliqué au traitement des Mutation Observers lorsque la règle enableThrottleMutationObserverBackgrounds est activée. Par défaut 0, ce qui signifie que les mutations sont traitées dès que possible
  • enableAutoThrottleMutationObserverBackgrounds : active automatiquement le ralentissement du traitement des Mutation Observers lorsque cela est nécessaire : c'est-à-dire lorsqu'un grand nombre de mutations sont traitées (paramétrable grâce à la règle de filtre autoThrottleMutationObserverBackgroundsTreshold), et désactive à nouveau lorsque cela n'est plus nécessaire. Activé par défaut.
  • disableAutoThrottleMutationObserverBackgrounds : désactive l'option de ralentissement automatique des Mutation Observers
  • autoThrottleMutationObserverBackgroundsTreshold : seuil du nombre de Mutation Observers traitées avant que le ralentissement automatique soit activé, par défaut 75
  • throttledMutationObserverTreatedByCall : nombre de mutations à traiter à chaque appel, par défaut 50. Un nombre élevé réduit les performances.
  • delayApplyMutationObserversSafeTimer : délai avant de réappliquer les paramètres de Page Shadow après une détection par Mutation Observers
  • enableObserveBodyChange/disableObserveBodyChange : observe le changement d'état de l'élément body (suppression puis création d'un nouvel élément body). Corrige des problèmes avec certains sites web (comme Github) ou applications SPA. Désactiver cette option peut améliorer les performances
  • observeBodyChangeTimerInterval : l'observation du changement d'état de l'élément body s'appuie sur un timer qui s'exécute à un intervalle donné (au lieu d'utiliser les Mutation Observer). L'intervalle est en ms
  • enableBrightColorDetection/disableBrightColorDetection : détecte les éléments avec des couleurs vives et, si l'option est activée par l'utilisateur, désactive la fonction Augmenter le contraste pour ces éléments. La désactivation de cette option peut améliorer les performances
  • brightColorLightnessTresholdMin : si un élément a une valeur de luminosité supérieure à ce seuil et inférieure à la valeur maximum, l'élément sera détecté comme élément de couleur vive
  • brightColorLightnessTresholdMax : si un élément a une valeur de luminosité inférieure à ce seuil et supérieure à la valeur minimum, l'élément sera détecté comme élément de couleur vive
  • enableThrottleBackgroundDetection/disableThrottleBackgroundDetection : applique un délai à la détection des arrière-plans au chargement des pages, ce qui permet d'améliorer les performances sur les grandes pages
  • throttleBackgroundDetectionElementsTreatedByCall : défini le nombre d'éléments traités par chaque appel de boucle lorsque la détection des arrière-plans est ralentie. Une valeur élevée peut impacter les performances
  • backgroundDetectionStartDelay : applique un délai avant d'appliquer le traitement de l'arrière-plan des éléments. Par défaut 1 ms.
  • useBackgroundDetectionAlreadyProcessedNodes : utilise une liste d'éléments déjà traités pour le traitement des arrière-plans pour éviter de traiter à nouveau les mêmes éléments. Peut améliorer les performances, mais peut augmenter l'utilisation de la mémoire.

Il est possible d'indiquer plusieurs règles du même type en les séparant par une virugle. Le nom des règles est sensible à la casse.

[3] selecteurCss

Cette partie du filtre contient le sélecteur CSS correspondant aux éléments sur lesquels appliquer le filtre. Il est possible de spécifier plusieurs sélecteurs en les séparant par une virgule. Si le sélecteur n'est pas valide, la règle sera ignorée. Le sélecteur CSS est traité par la fonction document.querySelectorAll au sein du code de l'extension. Pour la liste complète des sélecteurs CSS disponibles, rendez-vous sur la documentation MDN.

Cette partie du filtre n'est pas nécessaire pour les règles spéciales (sauf certains règles comme opacityDetectedAsTransparentThreshold, shadowRootStyleOverrideDelay, delayMutationObserverBackgrounds, autoThrottleMutationObserverBackgroundsTreshold, throttledMutationObserverTreatedByCall, delayApplyMutationObserversSafeTimer, observeBodyChangeTimerInterval, brightColorLightnessTresholdMin, brightColorLightnessTresholdMax et throttleBackgroundDetectionElementsTreatedByCall). La règle spéciale shadowRootStyleOverrideDelay nécessite aussi un paramètre supplémentaire (le délai en ms).

Exemple de règle

Ce filtre est utilisé pour corriger l'affichage des Google ReCaptcha lorsque la fonction Augmenter le contraste est activé. Elle désactive la fonction pour certains éléments qui étaient cachés.

/(.*)google.(.*)recaptcha(.*)/|disableContrastFor|.rc-imageselect-checkbox,.rc-imageselect-checkbox *,.rc-button-default,.rc-button-default *,.rc-imageselect-candidates,.rc-imageselect-candidates *,.rc-imageselect-desc,.rc-imageselect-desc *

Créer un fichier complet de règles de filtre

Il est possible de créer un fichier complet de filtre. Pour cela, il est nécessaire que le fichier commence avec le code suivant qui contient les méta-données du fichier de filtre :

#! Page Shadow Filter 1.0
#! Name: Titre du filtre
#! Homepage: https://www.pagedaccueildufiltre.com
#! Sourcename: Nom de la source du site (nom du site web ou autre)
#! Version: Version du filtre
#! License: Licence
#! Expires: Nombre de jours correspondant à l'expiration du cache du filtre du côté de l'utilisateur, suivi d'une mise à jour automatique
#! Description: Description du filtre

Il faut ensuite écrire une règle de filtre par ligne.