recherche
Maisoninterface Webtutoriel CSSPlus sur la visibilité du contenu

Attributs content-visibility du CSS: Modifications des performances et défis de l'accessibilité

En août 2020, l'attribut content-visibility de CSS a commencé à être utilisé dans les navigateurs de Chrome, et Una Kravets et Vladimir Levin ont écrit un article à ce sujet. Pour utiliser pleinement ses avantages de performance, il doit être utilisé en conjonction avec contain-intrinsic-size , qui nécessite une estimation de la hauteur de gros morceaux de contenu dans la page. La partie la plus étrange est que vous devez faire une supposition approximative de la hauteur de ces gros morceaux.

J'ai déjà posé une question: devinez la hauteur? Que se passe-t-il si la supposition est mauvaise? Cela affectera-t-il les performances? S'il y a une grande différence entre un grand écran et un petit écran, cette valeur (ou devrait-elle) être modifiée dans une fenêtre différente?

Jake Archibald et Das Surma ont récemment réalisé une vidéo pour clarifier ces problèmes. À environ 7 minutes et 30 secondes de la vidéo, vous pouvez voir à quel point cela est confus. Jake a utilisé une grande page de spécification HTML comme démonstration et a ajouté un wrapper pour de gros morceaux de contenu HTML, et a appliqué le code suivant:

 section {
  Contenu-visibilité: Auto; / * Dessin de retard * /
  Contient la taille de la taille de l'effort: 1px 5000px; / * devinez la taille du contenu, la largeur n'a pas d'importance * /
}

De toute évidence, 5000px n'est pas la hauteur de l'élément, mais la taille du contenu de cet élément. Ceci est important car il augmente la hauteur de l'élément parent à cette valeur, sauf si l'élément parent le remplace avec son propre attribut de hauteur. La magie de ceci est que le navigateur ne tirera que la première section (la hauteur de la fenêtre est susceptible d'être inférieure à 5000px) et le dessin de retard du reste. C'est un peu comme un chargement paresseux, mais cela fonctionne sur tout, pas seulement sur les médias. Il suppose que la section suivante a une hauteur de 5000px, mais une fois que son haut est visible, il est réellement dessiné et la hauteur correcte est déterminée. Donc, si votre page n'est que de grands blocs de contenu empilés, l'utilisation d'un très grand nombre devrait bien fonctionner. Si votre site Web est plus compliqué que cela, soyez heureux.

Ceci est une excellente vidéo que vous devriez consulter: lien vidéo

Ceci est un autre exemple de ce qui vous oblige à fournir aux informations du site Web à votre navigateur afin qu'il puisse améliorer les performances. Le navigateur lui-même peut trouver ces informations, mais cela ne peut être fait qu'après avoir effectué des opérations avec des coûts de performance. Vous devez donc le dire à l'avance, évitant ainsi certains types de travail supplémentaire. Pour les images réactives, si nous utilisons l'attribut srcset pour fournir des images et dire au navigateur à l'avance leur taille, y compris un attribut sizes contenant des informations sur le comportement CSS, il peut être calculé à l'avance et seules les meilleures images sont téléchargées. De même, pour will-change dans CSS, nous pouvons dire au navigateur à l'avance que nous ferons le déménagement afin qu'il puisse être pré-optimisé, sinon il ne peut pas le faire. C'est compréhensible, mais un peu ennuyeux. C'est comme si nous avions besoin d'un fichier stuff-you-need-to-know.manifest à lui être fourni avant que le navigateur ne fasse autre chose - mais ce serait une demande supplémentaire!

Les problèmes d'accessibilité sont également importants. Steve Faulkner a testé en appliquant content-visibility: auto aux images et paragraphes:

Le contenu est visuellement caché, mais dans Jaws et NVDA, des images cachées sont annoncées, mais le contenu de l'élément n'est pas annoncé. Ceci est lié à la façon dont le contenu des éléments d'image et de paragraphe est représenté dans l'arborescence d'accessibilité du navigateur: l'image s'affiche dans l'arborescence d'accessibilité avec le texte ALT comme nom d'accessibilité. Le contenu des éléments de paragraphe n'est pas dans l'arbre d'accessibilité.

Il a noté que par les spécifications, le contenu caché de cette manière ne devrait pas être fourni pour filtrer les lecteurs. Je peux comprendre les deux cas, comme cacher tout comme display: none , ce qui signifie que rien n'est dans l'arborescence d'accessibilité. Ou, gardez tout dans l'arbre d'accessibilité. Maintenant, il est dans un état intermédiaire, vous pourriez voir un tas d'images isolées dans l'arborescence d'accessibilité sans autre contexte à l'exception de leur texte alt. Ceci est un exemple intéressant de la nouvelle technologie introduite peut être plus rugueuse que vous ne voudriez voir.

En parlant de textes ALT, nous savons tous qu'ils ne devraient pas être vides lorsqu'ils représentent des choses importantes qui doivent être décrites aux personnes qui ne peuvent pas les voir. Dave dit qu'ils devraient être comme des paragraphes :

J'ai finalement établi la connexion la plus simple: le texte alt est comme un paragraphe. Images de texte. Je sais que c'est basique, mais cela m'aide à comprendre comment écrire un bon texte alt et l'ordre source de mon code.

Je ne veux pas être trop négatif ici! Les gains de performances pour mettre en place de longues pages de défilement avec des attributs content-visibility sont énormes, ce qui est génial. Il est bon de pouvoir utiliser deux lignes de code pour dire au navigateur ce qui ne peut pas être dessiné.

  1. Je continue de dire "dessiner" mais je ne sais pas si c'est vraiment le bon terme ou si cela signifie plus spécifique. La spécification mentionne des choses comme "Permettre aux agents des utilisateurs d'omettre potentiellement beaucoup de travail et de travail avant qu'ils n'en aient besoin" (mettant l'accent sur le mien).

Plus sur la visibilité du contenu

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Qu'est-ce que CSS Grid?Qu'est-ce que CSS Grid?Apr 30, 2025 pm 03:21 PM

CSS Grid est un outil puissant pour créer des dispositions Web complexes et réactives. Il simplifie la conception, améliore l'accessibilité et offre plus de contrôle que les méthodes plus anciennes.

Qu'est-ce que CSS Flexbox?Qu'est-ce que CSS Flexbox?Apr 30, 2025 pm 03:20 PM

L'article traite de CSS Flexbox, une méthode de mise en page pour l'alignement et la distribution efficaces de l'espace dans les conceptions réactives. Il explique l'utilisation de Flexbox, la compare à la grille CSS et détaille la prise en charge du navigateur.

Comment pouvons-nous rendre notre site Web réactif à l'aide de CSS?Comment pouvons-nous rendre notre site Web réactif à l'aide de CSS?Apr 30, 2025 pm 03:19 PM

L'article traite des techniques de création de sites Web réactifs à l'aide de CSS, y compris des balises de méta de la fenêtre, des grilles flexibles, des médias fluides, des requêtes multimédias et des unités relatives. Il couvre également l'utilisation de la grille CSS et de Flexbox ensemble et recommande le cadre CSS

Que fait la propriété CSS Box-Sizizing?Que fait la propriété CSS Box-Sizizing?Apr 30, 2025 pm 03:18 PM

L'article traite de la propriété CSS-Box-Sizing, qui contrôle comment les dimensions des éléments sont calculées. Il explique des valeurs telles que la boîte de contenu, la boîte de bordure et la boîte de padding, et leur impact sur la conception de la disposition et l'alignement de la forme.

Comment pouvons-nous animer à l'aide de CSS?Comment pouvons-nous animer à l'aide de CSS?Apr 30, 2025 pm 03:17 PM

L'article discute de la création d'animations à l'aide de CSS, de propriétés clés et de combinaison avec JavaScript. Le principal problème est la compatibilité du navigateur.

Pouvons-nous ajouter des transformations 3D à notre projet en utilisant CSS?Pouvons-nous ajouter des transformations 3D à notre projet en utilisant CSS?Apr 30, 2025 pm 03:16 PM

L'article discute de l'utilisation de CSS pour les transformations 3D, les propriétés clés, la compatibilité du navigateur et les considérations de performances pour les projets Web. (Compte de caractère: 159)

Comment pouvons-nous ajouter des gradients dans CSS?Comment pouvons-nous ajouter des gradients dans CSS?Apr 30, 2025 pm 03:15 PM

L'article discute de l'utilisation des gradients CSS (linéaire, radial, répétant) pour améliorer les visuels du site Web, l'ajout de profondeur, de concentration et d'esthétique moderne.

Que sont les pseudo-éléments dans CSS?Que sont les pseudo-éléments dans CSS?Apr 30, 2025 pm 03:14 PM

L'article traite des pseudo-éléments dans CSS, de leur utilisation dans l'amélioration du style HTML et des différences par rapport aux pseudo-classes. Fournit des exemples pratiques.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.