Les technologies Web modernes offrent des expériences en ligne de plus en plus riches, mais certaines fonctionnalités peuvent se comporter de façon inattendue en raison de la convivialité, de la sécurité et de la confidentialité. Cet article met en évidence plusieurs de ces cas.
:visited
et limitations de getComputedStyle
Le style des liens visités (<visited></visited>
) a longtemps été limité pour empêcher les fuites d'histoire. Les tentatives d'utilisation getComputedStyle
sur un lien visité rendront plutôt le style non visité. Des solutions de contournement utilisant des effets secondaires ou des sélecteurs de frères et sœurs sont inefficaces. Cette limitation souligne les complexités de l'exploitation des caractéristiques du navigateur et la nécessité pour les développeurs d'être conscients de ces nuances.
Auparavant, les CDN ont activé la mise en cache du navigateur d'actifs comme les polices Google sur plusieurs sites. Cependant, cela a créé des vulnérabilités de confidentialité importantes, permettant aux attaques de synchronisation de révéler l'historique de la navigation des utilisateurs. Pour y remédier, les navigateurs n'autorisent plus la mise en cache des actifs inter-sites.
performance.now()
Les exploits comme Spectre ont mis à profit la haute précision des performance.now()
pour accéder aux données CPU sensibles. Pour atténuer cela, les navigateurs ont intentionnellement réduit la précision des performance.now()
, l'introduction du bruit (20 μs à 1 ms) qui varie en fonction de facteurs tels que les en-têtes HTTP et les paramètres du navigateur.
Bien que l'attribut loading="lazy"
simplifie le chargement paresseux pour les images et les iframes (dans certains navigateurs), il est crucial de comprendre qu'il nécessite que JavaScript fonctionne. La désactivation du JavaScript empêche le chargement paresseux en tant que mesure anti-retrait. Les allégations de chargement paresseux "sans javascript" sont trompeuses.
Les utilisateurs peuvent restreindre considérablement la fonctionnalité du navigateur pour une sécurité et une confidentialité améliorées, comme on le voit dans les navigateurs comme Firefox et Tor avec les paramètres de "Resist Finger-Empreinte". Cela a un impact sur des fonctionnalités telles que la précision variable, l'accès à l'API et la correspondance des requêtes multimédias. L'amélioration progressive et la dégradation gracieuse sont essentielles pour atténuer cela.
Le HTML sémantique améliore l'accessibilité, mais les lecteurs d'écran ne peuvent pas toujours interpréter la sémantique comme prévu. La suppression des marqueurs de liste peut supprimer la signification sémantique dans certains navigateurs, et l'accent transmis par des éléments comme<strong></strong>
,<em></em>
, et<mark></mark>
peut être incohérent ou omis en raison du bruit potentiel. Les tests avec les utilisateurs et la prise en compte du style visuel sont essentiels.
Les fournisseurs de navigateurs peuvent mettre en œuvre des politiques d'expiration pour le stockage Web afin d'améliorer la confidentialité, limitant la persistance des données. Safari, par exemple, limite le stockage de scénario à sept jours.
De nombreuses fonctionnalités Web ne se comportent pas exactement comme intuitivement attendu. Les développeurs doivent évaluer de manière critique les besoins des utilisateurs et hiérarchiser l'amélioration progressive et la dégradation gracieuse pour garantir des fonctionnalités cohérentes entre les navigateurs et les préférences des utilisateurs, reconnaissant que la parité croisée parfaite est souvent inaccessible. Comprendre ces limites est la clé pour créer des sites Web robustes et accessibles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!