Black Friday Spécial Anniversaire: -30% sur la formation et -10% sur les services Demandez un devis


Le piège des onglets: pourquoi forcer l'ouverture de nouveaux onglets est une mauvaise pratique en UX

· Silas Joisten · Temps de lecture: 2 minutes
Open in new tab

Nous l'avons tous fait — ajouter target="_blank" à un lien pour « aider les utilisateurs » à rester sur notre site. Mais ce qui semble être une commodité inoffensive crée souvent de la confusion, diminue l'accessibilité et introduit des risques de sécurité cachés.

1. L'UX & l'accessibilité : Respecter les attentes des utilisateurs

Les utilisateurs attendent du contrôle — pas de surprises

Quand ils naviguent sur un site web ou une application, les utilisateurs s'attendent à un comportement cohérent. Lorsqu'ils cliquent sur un lien, il devrait s'ouvrir dans le même onglet — sauf s'ils décident autrement. Forcer un nouvel onglet rompt ce modèle mental et diminue l'autonomie de l'utilisateur.

Comme le notent les directives d'accessibilité du W3C (WCAG 2.2, §3.2.5), les changements de contexte inattendus (comme un nouvel onglet ou une nouvelle fenêtre) peuvent désorienter les utilisateurs, en particulier ceux qui utilisent des technologies d'assistance à l'accessibilité numérique.

Lorsque target="_blank" est appliqué sans avertissement, les lecteurs d'écran ou les utilisateurs de clavier peuvent même ne pas réaliser qu'ils ont changé de contexte — une expérience frustrante et déroutante.

Le bouton « Précédent » cassé

Ouvrir un nouvel onglet signifie que le bouton Précédent du navigateur ne fonctionne plus dans le parcours de l'utilisateur. Les utilisateurs ne peuvent pas simplement « revenir en arrière » — ils doivent rechercher l'onglet précédent. Cette petite rupture de flux ajoute une charge cognitive et perturbe la navigation.

Une discussion sur UX Stack Exchange le résume le mieux :

target="_blank" brise le comportement normalement attendu du navigateur.

L'expérience mobile en souffre aussi

Sur les appareils mobiles, la gestion des onglets est fastidieuse. Les utilisateurs ne réalisent pas nécessairement qu'un nouvel onglet s'est ouvert, les amenant à fermer le navigateur ou à abandonner la session.

2. Les pièges techniques et de sécurité

La vulnérabilité window.opener

Chaque fois que vous ouvrez un lien avec target="_blank", le nouvel onglet reçoit une référence à la page d'origine via window.opener. Par conséquent, la page liée — si elle est malveillante — peut modifier ou rediriger la page source :

window.opener.location = 'https://phishing.example.com';

Il s'agit d'une vulnérabilité bien documentée (Perishable Press, OWASP).

Pour l'atténuer, associez target="_blank" à rel="noopener" ou rel="noreferrer" :

<a href="https://example.com" target="_blank" rel="noopener">Lien externe</a>

La performance et la maintenance

Chaque nouvel onglet consomme de la mémoire. Sur les appareils bas de gamme, plusieurs onglets ouverts peuvent ralentir la performance. Et si vous ajoutez target="_blank" de manière sélective, il est facile d'oublier les attributs de sécurité.

3. Des considérations SEO et analytiques

Le SEO est aussi concerné. Lighthouse de Google signale les liens externes utilisant target="_blank" sans rel="noopener" comme un risque de sécurité.

Cela n'affecte pas directement le classement, mais une mauvaise UX et des utilisateurs désorientés augmentent les taux de rebond, nuisant indirectement au SEO.

4. Quand target="_blank" peut avoir du sens

Parfois, utiliser target="_blank" peut s'avérer la bonne solution. Voici les exceptions :

  • Les ressources de référence : par exemple, ouvrir de la documentation à côté d'un formulaire.

  • Des téléchargements ou des PDF : les utilisateurs s'attendent à ce qu'ils s'ouvrent dans un nouvel onglet.

  • Des tâches longues : pour éviter de perdre la progression.

Suivez bien les bonnes pratiques :

  1. Ajoutez toujours rel="noopener".

  2. Avertissez les utilisateurs visuellement (icône ou info-bulle).

  3. Maintenez un comportement cohérent.

  4. Testez l'accessibilité avec des lecteurs d'écran.

5. Les meilleures alternatives à target="_blank"

  • Utilisez une navigation claire et des fils d'Ariane à la place.

  • Laissez les utilisateurs décider comment ouvrir les liens (Ctrl+Clic, Cmd+Clic).

La clé, c'est de respecter le choix de l'utilisateur pour créer une meilleure UX.

Conclusion

target="_blank" peut nuire à l'UX, à l'accessibilité et à la sécurité. Utilisé avec parcimonie et avec les protections appropriées, elle est une solution acceptable — mais qui ne doit jamais être utilisée par défaut.

Chez SensioLabs, nous croyons que la confiance commence par le respect du contrôle de l'utilisateur. Pour cette raison, nous recommandons activement de mettre en œuvre des solutions qui empêchent l'ouverture de nouveaux onglets dans vos développements.

Références

Améliorez votre UX — clic après clic

Une excellente expérience utilisateur commence par des choix simples. Découvrez comment créer des interfaces web accessibles et intuitives avec Symfony et les bonnes pratiques de SensioLabs.

Cela pourrait aussi vous intéresser

Chart going up
Silas Joisten

Les bonnes raisons de tester votre application, expliqué à votre manager

Découvrez pourquoi les tests représentent un investissement stratégique et non un coût. Cet article explique à votre manager la valeur métier des tests, pourquoi ils sont essentiels pour le ROI, comment ils réduisent vos risques et améliorent votre agilité. Des explications claires, chiffres et cas concrets à l'appui.

En savoir plus
Code happy in lights
Imen Ezzine

La Revue de Code : Types, Organisation et Bonnes Pratiques

La Revue de Code (ou code review) est une étape essentielle du cycle de développement logiciel, permettant d’améliorer la qualité du code, de réduire les bugs et d’encourager le partage des connaissances au sein de l’équipe. GitLab et GitHub, deux des plateformes de gestion de code les plus populaires, offrent des fonctionnalités avancées pour faciliter ce processus. Cet article aborde les différents types de revues de code, comment s’organiser, et comment tirer partie des templates et check-lists pour améliorer l’efficacité des PR (Pull Requests).

En savoir plus
Many Lego figurines on a white table with hands playing with them
Alexandre Nesson

Scrum Guide Expansion Pack (2025) Ce qu'il faut savoir

Une nouvelle brique est venue enrichir le Scrum Guide ! Alors, poudre aux yeux ou réelle plus value ? Découvrons le ensemble dans cet article rédigé par l’un de nos experts.

En savoir plus
PHP 8.5 URI extension
Oskar Stark

La nouvelle extension URI de PHP 8.5 : Une révolution pour l'analyse des URL

PHP 8.5 introduit une nouvelle extension URI puissante qui modernise la gestion des URL. Grâce au support des standards RFC 3986 et WHATWG, la nouvelle classe Uri fournit des objets immuables, des interfaces fluides et une validation appropriée, résolvant ainsi toutes les limites de la fonction historique parse_url(). Cet articl présente des exemples pratiques avant/après et explique quand utiliser chaque standard.

En savoir plus
3 dog heads
Mathieu Santostefano

Venez avec votre propre client HTTP

Libérez-vous des dépendances rigides de vos SDK PHP. Dans cet article, apprenez à utiliser les normes PSR-7, PSR-17 et PSR-18, ainsi que la bibliothèque php-http/discovery, pour permettre à vos utilisateurs d'utiliser le client HTTP de leur choix, qu'il s'agisse de Guzzle, de Symfony HttpClient ou d'un autre. Un incontournable pour les développeurs PHP et Symfony.

En savoir plus
Blue sign on a building with several Now What? letters
Thibaut Chieux

Comment prioriser les messages lors du développement d'applications asynchrones avec Symfony Messenger

Le traitement asynchrone offre des avantages tels que la découplage des processus et des temps de réponse plus rapides, mais la gestion des priorités des messages peut s'avérer complexe. Pour traiter des tâches allant de la réinitialisation de mot de passe à des exports complexes, il est essentiel de garantir la livraison rapide des messages critiques. Cet article examine les problèmes fréquents liés au traitement asynchrone et propose des solutions avec Symfony Messenger pour optimiser votre application sans refonte majeure.

En savoir plus
Two images: on the left many cars stuck in a traffic jam with the sign "All directions" above, on the right a blue car moving forward alone on the highway with the sign "Service Subscriber" and a Symfony logo above
Steven Renaux

Les Lazy Services de Symfony : Boostez votre DX en utilisant les Service Subscribers

Optimisez la performance de votre application Symfony et l'expérience développeur ! Apprenez à utiliser les Service Subscribers et les attributs de chargement différé des services afin de réduire l'instanciation rapide, de simplifier les dépendances et de créer un code modulaire et maintenable.

En savoir plus
Domain Driven Design practical approach
Silas Joisten

Appliquer le Domain-Driven Design à PHP et Symfony : Un Guide Pratique

Le Domain-Driven Design (DDD) s'applique à Symfony grâce à des Value Objects, des dépôts et des contextes bornés. Dans cet article, découvrez les étapes concrètes pour construire des applications PHP évolutives.

En savoir plus
Photo speaker meetup AI Symfony
Jules Daunay

Symfony et l’IA : la vidéo de l’événement est disponible

Et si on parlait de Symfony et l’intelligence artificielle (IA) ? C’était le thème de l’événement exclusif organisé le 3 octobre dernier par SensioLabs en partenariat avec Codéin. Avec en prime un retour d’expérience d’un projet de développement combinant Symfony et l’IA. Si vous avez manqué l’événement, retrouvez la vidéo, aujourd’hui disponible en accès libre sur notre chaîne Youtube.

En savoir plus
Blue ElePHPant on a computer
Imen Ezzine

Optimisez Votre Code PHP : 8 Fonctions à Connaître pour Manipuler les Tableaux avec Efficacité

Devenir un excellent développeur PHP nécessite une maîtrise parfaite de la manipulation des tableaux. Ces structures sont incontournables en PHP, que ce soit pour stocker temporairement des données, les organiser ou les traiter avant leur enregistrement dans une base de données. En maîtrisant leur fonctionnement, vous serez en mesure de gérer et de manipuler vos informations de manière plus efficace et optimisée.

En savoir plus
Grey Cargo Plane with a Blue Sky
Rémi Brière

L'Agilité en entreprise - 1. Le Culte du Cargo

L'agilité ne se résume pas à des rituels et à des outils. Dans ce premier article de notre série Scrum, nous explorons le phénomène du culte du cargo et la manière dont l'imitation aveugle peut entraver la véritable transformation Agile.

En savoir plus
SemVer vs. CalVer
Silas Joisten

SemVer vs. CalVer : Quelle stratégie de versioning choisir ?

SemVer garantit la stabilité des bibliothèques, tandis que CalVer synchronise les projets avec les cycles de publication. Découvrez les principales différences et les meilleurs cas d’utilisation pour optimiser votre stratégie de versioning.

En savoir plus
DDD
Silas Joisten

Comprendre le Domain-Driven Design : Une approche pratique pour une architecture logicielle moderne

Découvrez les principes et les modèles du Domain-Driven Design (DDD) tels que le langage ubiquitaire, les agrégats et les contextes délimités. Apprenez comment le DDD s’intègre parfaitement aux projets PHP et Symfony, vous aidant à aligner les logiciels avec les besoins métier.

En savoir plus
White And Purple Modern Professional Partnership Agreement Presentation (5)
Jules Daunay

SensioLabs accueille Inetum dans son réseau de partenaires

SensioLabs et Inetum, leader européen des services et solutions digitales, ont annoncé la signature d’un nouveau partenariat. Ce partenariat permettra à Inetum d’offrir à ses clients un accompagnement renforcé sur leurs développements PHP et Symfony tout au long du cycle de vie de leurs projets.

En savoir plus
Smile Welcomes Synotis
Elise Hamimi

Synotis, spécialiste du Data Management, rejoint le groupe Smile

SensioLabs, créateur de Symfony et membre du groupe Smile, se réjouit d’annoncer une nouvelle arrivée dans le groupe. Synotis est une société de services basée en Suisse spécialisée dans le conseil et la gestion des données. Cette opération renforce la présence du groupe Smile en Suisse et en Europe au service d’un numérique ouvert.

En savoir plus
Image