INP (Interaction to Next Paint)

Jeremy Wagner
Jeremy Wagner

Navigateurs pris en charge

  • 96
  • 96
  • x
  • x

Source

Les données d'utilisation de Chrome montrent que 90% du temps d'un utilisateur sur une page est passé après son chargement. Il est donc important de mesurer minutieusement la réactivité tout au long du cycle de vie de la page. C'est ce que la métrique INP évalue.

Une bonne réactivité signifie qu'une page réagit rapidement aux interactions. Lorsqu'une page répond à une interaction, le navigateur affiche un retour visuel dans le cadre suivant. Les commentaires visuels vous indiquent, par exemple, si un article que vous ajoutez à un panier en ligne est effectivement ajouté, si un menu de navigation mobile s'est ouvert, si le contenu d'un formulaire de connexion est authentifié par le serveur, etc.

Certaines interactions prennent naturellement plus de temps que d'autres, mais pour les interactions particulièrement complexes, il est important de présenter rapidement un retour visuel initial pour indiquer à l'utilisateur que quelque chose se passe. Le cadre suivant affiché par le navigateur est la première occasion de le faire.

Par conséquent, l'objectif d'INP n'est pas de mesurer tous les effets éventuels d'une interaction (tels que les extractions réseau et les mises à jour de l'interface utilisateur à partir d'autres opérations asynchrones), mais le temps pendant lequel le pain next est bloqué. En retardant le retour visuel, les utilisateurs peuvent avoir l'impression que la page ne répond pas assez rapidement. INP a été développé pour aider les développeurs à mesurer cette partie de l'expérience utilisateur.

Dans la vidéo suivante, l'exemple de droite montre immédiatement qu'un accordéon s'ouvre. Une réactivité médiocre est illustrée dans l'exemple à gauche, et explique en quoi elle peut nuire à l'expérience utilisateur.

Exemple de réactivité faible ou bonne. Sur la gauche, les longues tâches empêchent l'accordéon de s'ouvrir. Cela amène l'utilisateur à cliquer plusieurs fois, pensant que l'expérience est défectueuse. Lorsque le thread principal rattrape le retard, il traite les entrées différées, ce qui entraîne l'ouverture et la fermeture inattendue de l'accordéon. Sur la droite, une page plus réactive ouvre l'accordéon rapidement et sans incident.

Ce guide explique comment fonctionne INP, comment le mesurer et indique des ressources pour l'améliorer.

Qu'est-ce que l'INP ?

L'INP est une métrique qui évalue la réactivité globale d'une page aux interactions des utilisateurs en observant la latence de toutes les interactions liées aux clics, aux appuis et au clavier qui se produisent tout au long de la visite d'un utilisateur sur une page. La valeur INP finale correspond à l'interaction la plus longue observée, ignorant les anomalies.

Détails sur le calcul de l'INP

L'INP est calculé en observant toutes les interactions effectuées avec une page. Pour la plupart des sites, l'interaction présentant la pire latence est signalée par l'INP.

Cependant, pour les pages avec un grand nombre d'interactions, des petits accidents dus à la latence peuvent entraîner une interaction inhabituellement élevée sur une page qui est par ailleurs responsive. Plus il y a d'interactions sur une page donnée, plus il y a de chances que cela se produise.

Afin de mieux mesurer la réactivité réelle des pages enregistrant un nombre élevé d'interactions, nous ignorons l'interaction la plus élevée toutes les 50 interactions. La grande majorité des expériences sur la page ne comptent pas plus de 50 interactions. Par conséquent, la pire interaction est le plus souvent signalé. Le 75e centile de toutes les pages vues est ensuite enregistré comme d'habitude, ce qui élimine les anomalies afin d'attribuer une valeur satisfaisante à la grande majorité des utilisateurs.

Une interaction est un groupe de gestionnaires d'événements qui se déclenchent lors d'un même geste logique de l'utilisateur. Par exemple, "appuyer" les interactions sur un appareil à écran tactile incluent plusieurs événements, tels que pointerup, pointerdown et click. Une interaction peut être déterminée par du code JavaScript, CSS, des commandes intégrées au navigateur (comme des éléments de formulaire) ou une combinaison de ces éléments.

La latence d'une interaction correspond à la durée la plus longue d'un groupe de gestionnaires d'événements qui pilotent l'interaction, entre le moment où l'utilisateur commence l'interaction et le moment où le navigateur affiche le frame suivant.

Qu'est-ce qu'un bon score INP ?

Épingler des libellés tels que "Satisfaisant" ou "médiocre" sur une métrique de réactivité est difficile. D'une part, vous souhaitez encourager les pratiques de développement qui donnent la priorité à une bonne réactivité. D'autre part, vous devez tenir compte du fait que les capacités des appareils utilisés par les utilisateurs pour définir des attentes de développement réalistes varient considérablement.

Pour vous assurer de proposer des expériences utilisateur avec une bonne réactivité, le 75e centile de chargements de pages enregistrés sur le terrain, segmenté en fonction des appareils mobiles et de bureau, constitue un bon seuil à mesurer:

  • Un INP inférieur ou égal à 200 millisecondes signifie qu'une page a une bonne réactivité.
  • Un INP supérieur à 200 millisecondes et inférieur à 500 millisecondes signifie que la réactivité d'une page doit être améliorée.
  • Un INP supérieur à 500 millisecondes signifie qu'une page a une mauvaise réactivité.
Les bonnes valeurs INP sont inférieures ou égales à 200 millisecondes, les valeurs médiocres supérieures à 500 millisecondes et tous les éléments intermédiaires doivent être améliorés.
Les bonnes valeurs INP sont de 200 millisecondes ou moins. Les valeurs faibles durent plus de 500 millisecondes.

Qu'est-ce qu'une interaction ?

Schéma représentant une interaction sur le thread principal. L'utilisateur effectue une entrée tout en bloquant l'exécution des tâches. L'entrée est retardée jusqu'à ce que ces tâches soient terminées, après quoi les gestionnaires d'événements de survol, de survol et de clic s'exécutent, puis le rendu et le dessin sont lancés jusqu'à ce que l'image suivante soit présentée.
Cycle de vie d'une interaction. Un délai d'entrée se produit jusqu'au démarrage des gestionnaires d'événements, peut-être en raison de facteurs tels que les longues tâches sur le thread principal. Les rappels du gestionnaire d'événements de l'interaction s'exécutent ensuite, et un délai est nécessaire avant que le frame suivant ne soit présenté.

Le principal moteur d'interactivité est souvent JavaScript, même si les navigateurs offrent de l'interactivité par le biais de commandes qui ne sont pas basées sur JavaScript, comme les cases à cocher, les cases d'option et les commandes basées sur CSS.

Dans le cadre d'INP, seuls les types d'interactions suivants sont observés :

  • Clic avec la souris
  • Appuyer sur un appareil doté d'un écran tactile
  • Appuyer sur une touche d'un clavier physique ou d'un clavier à l'écran

Les interactions se produisent dans le document principal ou dans les iFrames intégrés au document (par exemple, un clic sur une vidéo intégrée). Les utilisateurs finaux ne sauront pas ce qui se trouve ou non dans un iFrame. Par conséquent, l'INP dans les iFrames est nécessaire pour mesurer l'expérience utilisateur sur la page de premier niveau. Étant donné que les API Web JavaScript n'ont pas accès au contenu des iFrames, cela peut constituer une différence entre les formats CrUX et RUM.

Les interactions peuvent comporter plusieurs événements. Par exemple, une frappe inclut les événements keydown, keypress et keyup. Les interactions avec les gestes contiennent des événements pointerup et pointerdown. L'événement dont la durée est la plus longue au sein de l'interaction est ce qui contribue à la latence totale de l'interaction.

Représentation d'interactions plus complexes contenant deux interactions. Le premier est un événement "mousedown", qui génère un frame avant que le bouton de la souris ne soit relâché, ce qui déclenche davantage de travail jusqu'à ce qu'un autre frame soit présenté comme résultat.
Représentation d'une interaction avec plusieurs gestionnaires d'événements. La première partie de l'interaction reçoit une entrée lorsque l'utilisateur clique sur le bouton de la souris. Toutefois, avant qu'ils ne relâchent le bouton de la souris, une image s'affiche. Lorsque l'utilisateur relâche le bouton de la souris, une autre série de gestionnaires d'événements doit s'exécuter avant que l'image suivante ne soit présentée.

L'INP de la page est calculé lorsque l'utilisateur quitte la page. Le résultat est une valeur unique représentative de la réactivité globale de la page tout au long de son cycle de vie. Un INP faible signifie que la page a répondu de manière fiable aux entrées utilisateur.

En quoi INP est-il différent du First Input Delay (FID) ?

INP est le successeur de la métrique First Input Delay (FID). Bien que ces deux métriques soient des métriques de réactivité, FID n'a mesuré que le délai d'entrée de la première interaction sur une page. INP améliore le FID en observant toutes les interactions sur une page, à partir du délai d'entrée jusqu'au temps nécessaire pour exécuter les gestionnaires d'événements, et enfin jusqu'à ce que le navigateur affiche le cadre suivant.

Ces différences signifient que l'INP et le FID sont des types de métriques de réactivité différents. Le FID était une métrique de réactivité au chargement conçue pour évaluer la première impression de la page sur l'utilisateur. L'INP est un indicateur plus fiable de la réactivité globale, quel que soit le moment où une interaction se produit au cours de la page.

Que se passe-t-il si aucune valeur INP n'est rapportée ?

Il est possible qu'une page ne renvoie aucune valeur INP. Plusieurs raisons peuvent expliquer cette situation. Par exemple:

  • La page a été chargée, mais l'utilisateur n'a jamais cliqué, appuyé ou appuyé sur une touche de son clavier.
  • La page s'est chargée, mais l'utilisateur a interagi avec elle à l'aide de gestes non mesurés, tels que le défilement ou le passage de la souris sur des éléments.
  • Un robot (un robot d'exploration ou un navigateur headless, par exemple) accède à la page, qui n'a pas reçu de script permettant d'interagir avec la page.

Comment mesurer l'INP

L'INP peut être mesuré à la fois sur le terrain et dans l'atelier, dans la mesure où vous pouvez simuler des interactions utilisateur réalistes.

Sur le terrain

Idéalement, votre parcours d'optimisation de l'INP commencera avec les données de terrain. Dans le meilleur des cas, les données de champ de Real User Monitoring (RUM) vous fourniront non seulement la valeur INP d'une page, mais aussi des données contextuelles qui mettent en évidence l'interaction spécifique à l'origine de la valeur INP elle-même, si l'interaction s'est produite pendant ou après le chargement de la page, le type d'interaction (clic, pression de touche ou appui) et d'autres informations temporelles utiles qui peuvent vous aider à identifier quelle partie de l'interaction a affecté la réactivité.

Si votre site Web remplit les conditions requises pour figurer dans le rapport sur l'expérience utilisateur Chrome, vous pouvez obtenir rapidement des données de terrain pour INP via l'expérience utilisateur CrUX dans PageSpeed Insights (et d'autres Core Web Vitals). Vous pouvez au minimum obtenir une photo de l'INP de votre site Web au niveau de l'origine, mais dans certains cas, vous pouvez également obtenir des données au niveau de l'URL.

Cependant, si l'expérience utilisateur CrUX peut vous indiquer s'il existe un problème, elle ne peut pas vous indiquer la cause du problème. Une solution RUM peut vous aider à obtenir plus de détails sur les pages, les utilisateurs ou les interactions des utilisateurs qui rencontrent des problèmes de réactivité. Pouvoir attribuer l'INP à des interactions individuelles évite les suppositions et les efforts inutiles.

Au laboratoire

Dans l'idéal, commencez les tests dans l'atelier une fois que vous disposez de données réelles suggérant que les interactions d'une page sont lentes. Grâce aux données de terrain, il sera beaucoup plus simple de reproduire les interactions problématiques dans l'atelier.

Toutefois, il est tout à fait possible que vous n'ayez pas de données de champ. Bien que l'INP peut être mesuré avec certains outils d'atelier, la valeur INP obtenue pour une page lors des tests en laboratoire dépendra des interactions effectuées au cours de la période de mesure. Les comportements des utilisateurs peuvent être imprévisibles et très variables, ce qui signifie que vos tests en laboratoire ne révéleront peut-être pas les interactions problématiques de la même manière que les données de terrain. De plus, certains outils de l'atelier ne signalent pas l'INP d'une page, car ils n'observent que le chargement de cette page sans aucune interaction. Dans de tels cas, le Temps de blocage total (TBT) peut être une métrique de proxy raisonnable pour INP, mais il ne le remplace pas en soi.

Même si les outils de l'atelier présentent des limites pour évaluer l'INP d'une page, il existe des stratégies pour reproduire des interactions lentes dans l'atelier. Les stratégies incluent le suivi des flux utilisateur courants et le test des interactions en cours de route, ainsi que l'interaction avec la page lors de son chargement (lorsque le thread principal est souvent le plus actif) afin d'identifier les interactions lentes au cours de cette partie cruciale de l'expérience utilisateur.

Comment améliorer INP

Un ensemble de guides sur l'optimisation de l'INP est disponible pour vous aider à identifier les interactions lentes sur le terrain et à utiliser des données de laboratoire pour vous aider à identifier les causes et à les optimiser.

Journal des modifications

Il arrive que des bugs soient découverts dans les API utilisées pour mesurer les métriques, et parfois dans les définitions des métriques elles-mêmes. Par conséquent, des modifications doivent parfois être apportées et elles peuvent apparaître sous forme d'améliorations ou de régressions dans vos rapports et tableaux de bord internes.

Pour vous aider, toutes les modifications apportées à l'implémentation ou à la définition de ces métriques seront affichées dans ce journal des modifications.

Si vous avez des commentaires concernant ces métriques, envoyez-les dans le groupe Google "web-vitals-feedback".

Tester vos connaissances

Quel est l'objectif principal de la métrique INP ?

Pour mesurer le temps nécessaire à l'affichage du premier contenu d'une page.
Mauvaise réponse. Cette description correspond à First Contentful Paint.
Quantifier la stabilité visuelle d'une page et minimiser les décalages inattendus de mise en page.
Mauvaise réponse. Il s'agit de la description de Cumulative Layout Shift.
Pour évaluer le temps nécessaire pour qu'une page devienne entièrement interactive.
Mauvaise réponse. C'est lié au délai avant interactivité, mais INP se concentre spécifiquement sur la réactivité à l'entrée utilisateur.
Pour réduire le délai entre le moment où un utilisateur commence une interaction et l'affichage du cadre suivant, pour toutes les interactions ou la plupart d'entre elles.
Bonne réponse !

Parmi les types d'interactions suivants, lesquels sont observés pour calculer l'INP ? (Plusieurs réponses possibles)

Clic avec la souris
Bonne réponse !
Défilement de la page avec la molette de la souris ou le pavé tactile.
Mauvaise réponse. INP ne tient pas compte du défilement.
Appuyer sur un écran tactile
Bonne réponse !
Pointer le curseur de la souris sur des éléments
Mauvaise installation : INP ne tient pas compte du survol
Appuyer sur une touche d'un clavier
Bonne réponse !
Faire un zoom avant ou arrière sur la page
Mauvaise réponse. INP ne tient pas compte d'un zoom

Qu'est-ce que la "latence" d'une interaction définie pour INP ?

Temps nécessaire au navigateur pour traiter les gestionnaires d'événements d'une interaction.
Mauvaise réponse. Seules la durée du traitement est prise en compte, et non le délai d'entrée ni le temps nécessaire pour afficher l'image suivante.
Temps moyen nécessaire pour que toutes les interactions sur une page produisent une réponse visuelle.
Mauvaise réponse. L'INP se concentre sur l'interaction la plus longue, pas sur la moyenne.
Temps nécessaire au navigateur pour commencer à traiter les gestionnaires d'événements associés à une interaction.
Mauvaise installation : ne tient compte que du délai d'entrée, et non du temps de traitement et d'affichage.
Délai entre le début de l'interaction et le moment où l'image suivante est entièrement présentée.
Bonne réponse !

Quelle est la différence entre INP et FID ?

L'INP mesure le temps nécessaire pour que le premier contenu d'une page s'affiche, tandis que le FID mesure la réactivité aux entrées utilisateur.
Mauvaise réponse. Il s'agit d'une description de First Contentful Paint, et non de l'INP.
L'INP prend en compte la durée totale de toutes les interactions, tandis que le FID ne mesure que le délai d'entrée de la première interaction.
Bonne réponse !
L'INP et le FID mesurent différents codes temporels au moment où une page devient interactive.
Mauvaise réponse. L'INP et le FID mesurent la rapidité avec laquelle la page répond aux interactions, indépendamment du moment où celles-ci se produisent.
Il n'y a pas de différence. INP et FID sont deux noms différents pour la même métrique.
Mauvaise réponse. Leurs définitions sont différentes.

Dans quelles circonstances les données INP peuvent-elles être indisponibles pour une page dans des outils tels que PageSpeed Insights ?

La page utilise une bibliothèque de mesure des performances personnalisée qui ne génère pas de données INP.
Mauvaise réponse. L'INP est mesurée automatiquement à l'aide des API de la plate-forme Web et ne s'appuie pas sur les pages qui déclarent elles-mêmes leurs performances via des bibliothèques personnalisées.
Les données d'interaction des utilisateurs de Chrome sont insuffisantes pour calculer une valeur INP significative dans l'ensemble de données CrUX.
Bonne réponse !
Les utilisateurs n'ont interagi avec la page qu'en faisant défiler et en passant la souris dessus, ce qui n'est pas pris en compte pour INP.
Bonne réponse !
La page est créée à l'aide d'un framework qui s'optimise automatiquement pour INP. Il n'est donc pas nécessaire de la signaler.
Mauvaise réponse. Les frameworks peuvent aider à l'INP, mais la métrique reste pertinente et rapportée si des données sont disponibles

Quelle est la stratégie la plus efficace pour reproduire des interactions lentes dans un environnement de laboratoire ?

Simuler un appareil haut de gamme avec une connexion réseau lente et peu fiable pour créer des conditions difficiles.
Mauvaise réponse. Bien que le réseau puisse jouer un rôle, les capacités de l'appareil sont plus susceptibles d'exposer des interactions lentes.
Tester les interactions uniquement lorsque la page est entièrement chargée et inactive.
Mauvaise réponse. Des interactions lentes lors du chargement peuvent passer à côté.
Interagir avec la page pendant le chargement et suivre les flux utilisateur courants pour identifier d'éventuels goulots d'étranglement
Bonne réponse !
Se concentrer sur les interactions complexes et extrêmes qui sont peu susceptibles d'être rencontrées par la plupart des utilisateurs.
Mauvaise réponse. Les flux utilisateur courants sont plus pertinents pour identifier les problèmes INP typiques

Ce quiz a été généré par Gemini 1.5 et révisé par des réviseurs humains. Donnez-nous votre avis