-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Images - Amélioration de la fonctionnalité Highlight #8
Comments
Merci beaucoup pour le retour très complet! Effectivement avec la méthode qu'on a utilisé il y a quelques nodes texte qui peuvent passer au travers. On a également une feature qui devrait arriver prochainement permettant de trouver un élément spécifique dans la page :) On va creuser les idées suggérées en tout cas en attendant |
La version avec un grand masque SVG par dessus la page et d'autres transparents (1 par image, pile par dessus) est ce que j'avais préparé initialement (ou 1 seul masque avec 1 gris foncé et plein de blancs par dessus les images, le résultat est le même). Inconvénient de cette méthode : ça fait chauffer le CPU dans de longues pages, ce que ne fait pas la version Pour revenir au Highlight actuel, il y a aussi des images qui sont masquées (faux négatifs), cf. capture d'écran ci-dessus, ce qui est plus embêtant que quelques faux positifs. |
Description du problème
La fonctionnalité highlight tente de distinguer les éléments audités par un critère du reste du contenu en ajoutant une opacité de 0.2 au reste du contenu mais pas aux éléments audités (ex: "les images" ou "les tableaux").
Pour les images, certains nœuds texte ne sont pas correctement estompés : les nœuds texte ayant un parent commun avec une image ne deviennent pas translucides et il n'est pas possible de leur ajouter une opacité à moins de les encapsuler dans un span (pas une bonne idée quand on ne connait rien de la page) ou d'également rendre translucide l'image en l'ajoutant sur le parent.
Sur https://www.alsacreations.fr, les 4 images HTML5, etc sont estompées mais pas les p ou li ayant un span avec du texte.
Pistes...
Après avoir passé une journée à développer une solution JS, SVG et
mask-image
, je viens d'en (re)trouver une autre en pur CSS ou presque...On peut en effet :
color: rgba(0, 0, 0, 0.2)
👻 (et supprimer fonds, bordures, etc)overflow: hidden
)@layer
et!important
🌋Pour la spécificité, j'avais remonté chez ffoodd ce que permettait
@layer
(snippet d'exemple et lien vers l'article de référence de bram.us) avec 1 seule limitation bien rare.1Solution proposée (CSS et JS) ⬇️
Placer le at-layer le plus tôt possible (JS)
Placer notre
@layer
nommé le plus tôt possible dans la page. Pas essentiel à moins de devoir écraser d'autres styles eux aussi dans un@layer
et avec!important
, ça fait beaucoup de conditions...Highlight les images d'une page (CSS)
Tests
URLs de test :
::before
et::after
pour des images de fond (à gauche de titres sur 3 colonnes) et couleur de fond (footer)text-shadow
, carte avec multiples images. Rien de simple à faire pour le bouton de retour en haut car couleur de fond portée par un parentfilter
spécialVu ailleurs
Du côté de la concurrence 🕵️♂️ :
En JS, il cible chaque élément qui n'est pas une image et applique
el.style.color="transparent";
, etc Le texte est réduit à une taille de 1px aussi, pour ne garder que les images.Sur les images, pour les distinguer, un outline de 10px (offset de -10px) noir est ajouté.
Footnotes
Cela écrase bien aussi les styles inline mais je viens de me rendre compte (ou bien j'avais oublié depuis) qu'un style inline avec
!important
aura toujours plus de spécificité que n'importe quel@layer
. Mmh si j'en ai rencontré une fois, c'était il y a 10 ans dans du GG Maps embedded ou du temps d'IE6 et ça a disparu il y a bien longtemps. Bref c'est plus que rare et ça se détecte en CSS. ↩The text was updated successfully, but these errors were encountered: