Comment supprimer le focus autour des boutons en cliquant


226

Mes boutons ont tous une surbrillance autour d'eux après avoir cliqué dessus. C'est dans Chrome.

Désélectionné Choisi

<button class="btn btn-primary btn-block">
    <span class="icon-plus"></span> Add Page
</button>

J'utilise Bootstrap avec un thème, mais je suis sûr que ce n'est pas ça: je l'avais remarqué auparavant sur un autre projet.

Cela disparaît si j'utilise une <a>balise à la place de <button>. Pourquoi? Si je voulais utiliser <button>comment le faire disparaître?


12
contour: 0; peut vous intéresser
Wiggler Jtag

Une classe est-elle ajoutée après le clic?
Kuzgun

1
aperçu: 0 ne semble pas aider, ni l'apparence du webkit
Sean Clark Hess

7
28 réponses suggérant toutes différentes méthodes pour contourner ce problème témoignent de l'état désolé du développement web frontal aujourd'hui.
deltanine

3
Les personnes qui considèrent cette fonctionnalité d'accessibilité comme un problème témoignent de l'état désolant du développement Web frontal aujourd'hui.
Quentin

Réponses:


293

J'ai trouvé ces questions et réponses sur une autre page, et remplacer le style de mise au point des boutons a fonctionné pour moi. Ce problème peut être spécifique à MacOS avec Chrome.

.btn:focus {
  outline: none;
  box-shadow: none;
}

Notez cependant que cela a des implications pour l'accessibilité et n'est pas conseillé jusqu'à ce que vous ayez un bon état de focus cohérent pour vos boutons et entrées. Selon les commentaires ci-dessous, il y a des utilisateurs qui ne peuvent pas utiliser de souris.


33
J'ai également pensé à cela, mais la suppression du contour n'a-t-elle pas des problèmes d'accessibilité?
silvenon

10
Je suppose que nous n'avons pas d'autre choix. Vous pouvez également ajouter le .btn:active:focussélecteur pour le supprimer de l'état actif également.
silvenon

45
Supprimer le contour d'un bouton est définitivement mauvais pour l'accessibilité. Certains utilisateurs ne peuvent pas contrôler une souris et doivent pouvoir parcourir une page avec le clavier. La suppression du contour rend cela très difficile. Il est probablement préférable d'empêcher le bouton de recevoir le focus au clic.
Murphy Randle du

Pour les futurs voyageurs, ce code remplace complètement tous les styles sur tous les états de bouton pour le bouton par défaut (pas tous les boutons):.btn-default, .btn-default:hover, .btn-default:active, .btn-default:active:focus, .btn-default:visited, .btn-default:focus { color: #dcdcdc; background-color: #232323; outline: none; }
Geordie

1
si vous utilisez des variables d'amorçage intégrées, vous pouvez y parvenir en définissant ces deux variables sur: $ btn-focus-width: 0; $ btn-focus-box-shadow: aucun;
bullettrain

110

Vous voulez quelque chose comme:

<button class="btn btn-primary btn-block" onclick="this.blur();">...

La méthode .blur () supprime correctement la mise en évidence du focus et ne gâche pas les styles de Bootstraps.


9
Cela affiche le contour pendant un bref instant, ce qui le ruine toujours: /
silvenon

2
Je ne vois aucun scintillement si je déclenche l'événement focus au lieu de l'événement click.
Charles

2
Cela a très bien fonctionné! Y aurait-il des problèmes potentiels si j'essayais d'attacher un autre gestionnaire d'événements click () (c'est-à-dire le code qui s'exécute lorsque vous cliquez sur ledit bouton) au même bouton?
Nils_e

4
Si quelqu'un se demande ici si cela fonctionne dans bootstrap v4, c'est le cas. Réponse toujours valable en 2018, bravo!
jreed

4
Est-ce l'accessibilité-OK, par rapport à la question la plus votée?
CharlesM

47

ma compréhension est que le focus est d'abord appliqué après l' onMouseDownévénement, donc appelere.preventDefault() à onMouseDownpeut - être une solution propre en fonction de vos besoins. Il s'agit certainement d'une solution conviviale pour l'accessibilité, mais elle ajuste évidemment le comportement des clics de souris qui peuvent ne pas être compatibles avec votre projet Web.

J'utilise actuellement cette solution (dans un react-bootstrapprojet) et je ne reçois pas de scintillement de focus ou de focus conservé de boutons après un clic, mais je suis toujours en mesure de tabuler mon focus et de visualiser visuellement le focus des mêmes boutons.


2
Oui. votre solution fonctionne. Merci pour le conseil. Voici le violon de la solution. Mais il nécessite qu'un gestionnaire javascript soit attaché à chaque bouton. Ce serait formidable si nous pouvions y parvenir grâce à une solution CSS uniquement.
Galeel Bhasha

1
Je pense que les gens s'attendent à ce que l'accent soit mis sur un élément lorsque vous cliquez dessus, et cette solution empêche cela. Je clique souvent sur un élément, puis je m'éloigne avant de relâcher la souris pour lui donner le focus afin que je puisse ensuite tabuler à partir de là.
Michael Tontchev

7
Pour toute personne recherchant un extrait, cela devrait fonctionner et se conserver sur Click:onMouseDown={e => e.preventDefault()}
Adam K Dean

1
Cela empêche la barre d'espace et la touche retour de "cliquer" sur le bouton. Peut-être une solution plus complète est d'ajouter ce retour avec: onKeyUp={(e) => {if (e.keyCode === 13 || e.keyCode === 32) handleClick()}.
jfbloom22

Vous ne devez pas appeler e.preventDefault () à l'intérieur de l' onKeyUpévénement. Il s'avère que si vous faites cela, le bouton reste concentré après avoir appuyé sur la touche espace ou la touche retour et tabulé ou cliqué n'importe où.
jfbloom22

30

Je ne peux pas croire que personne n'ait encore posté cela.

Utilisez une étiquette au lieu d'un bouton.

<label type="button" class="btn btn-primary btn-block">
<span class="icon-plus"></span> Add Page
</label>

Violon


11
Cela fonctionne bien pour la plupart des utilisateurs, mais cette méthode n'est pas conviviale pour les lecteurs d'écran ou les claviers et laissera les utilisateurs aveugles et les utilisateurs dont la motricité est compromise, incapables d'interagir avec le bouton.
Murphy Randle

8
1. Remplacez l'étiquette par la balise <a>. de sorte que son accessible via le clavier. 2. ajoutez aria-role = "button" pour améliorer l'accessibilité pour l'utilisateur du lecteur d'écran. mise à jour Fiddle
Galeel Bhasha

belle solution, m'a aidé, mais ne fonctionne pas en quelque sorte pour la directive angulaire, même avec un wrapper, par exemple<a class="btn"><my-directive/></a>
ya_dimon

2
Les étiquettes sont totalement ignorées pour les utilisateurs non souris lors de la tabulation, néfastes pour l'accessibilité
Felipe juin

1
Dans Bootstrap 4, il semble modifier l'apparence du bouton.
Jason Kim

30

Bien qu'il soit facile de simplement supprimer le contour de tous les boutons focalisés (comme dans la réponse de user1933897 ), mais cette solution est mauvaise du point de vue de l'accessibilité (par exemple, voir Arrêter de jouer avec le contour de focus par défaut du navigateur )

D'un autre côté, il est probablement impossible de convaincre votre navigateur d'arrêter de styliser votre bouton cliqué comme s'il se pense qu'il est concentré après avoir cliqué dessus (je vous regarde, Chrome sur OS X).

Alors, que pouvons-nous faire? Quelques options me viennent à l'esprit.

1) Javascript (jQuery): $('.btn').mouseup(function() { this.blur() })

Vous demandez à votre navigateur de supprimer le focus autour de n'importe quel bouton immédiatement après avoir cliqué sur le bouton. En utilisant mouseupau lieu de clicknous gardons le comportement par défaut pour les interactions basées sur le clavier ( mouseupne se déclenche pas par le clavier).

2) CSS: .btn:hover { outline: 0 !important }

Ici, vous désactivez le contour pour les boutons survolés uniquement. Évidemment, ce n'est pas idéal, mais peut suffire dans certaines situations.


4
Le chiffre 1 est un conseil utile. Il désactivera la mise au point lorsque le bouton n'est pas enfoncé, mais il le laissera affiché pendant qu'il est enfoncé. J'ai désactivé le focus sur l'élément actif cliqué avec :active:focus {outline:none;}.
certainementakey

Les fonctions raccourcies qui lient les écouteurs d'événements sont déconseillées dans jQuery, il est donc préférable d'utiliser .on('mouseup', function() { ... })au lieu de.mouseup()
Crazy Redd

16

Cela a fonctionné pour moi. J'ai créé une classe personnalisée qui remplace le CSS nécessaire.

.custom-button:focus {
    outline: none !important;
    border: none !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
}

entrez la description de l'image ici

-Webkit-box-shadow fonctionnera pour les navigateurs Chrome et safari.


fonctionne pour moi mais j'ai dû retirer le border: none !important;bouton pour conserver les mêmes dimensions
Emeka Mbah

1
Je cherchais à supprimer le focus onClick ci-dessus les réponses ne fonctionnaient pas mais "box-shadow: aucun! Important;" son travail pour moi merci @Menaka
Zaif Warm

11

Cela fonctionne pour moi, une autre solution non mentionnée. Il suffit de le jeter dans l'événement click ...

$(this).trigger("blur");

Ou appelez-le à partir d'un autre événement / méthode ...

$(".btn_name").trigger("blur");

Le problème est que lorsqu'un utilisateur du clavier "clique" sur le bouton (en le concentrant puis en appuyant sur l'espace), il perd le focus. Vous devez ensuite revenir en arrière jusqu'à l'endroit où vous vous trouviez. 😡
Tamlyn

8

Si vous utilisez la règle :focus { outline: none; }pour supprimer les contours, le lien ou le contrôle sera focalisable mais sans indication de focus pour les utilisateurs du clavier. Les méthodes pour le supprimer, telles que JS, onfocus="blur()"sont encore pires et empêcheront les utilisateurs du clavier d'interagir avec le contrôle.

Les hacks que vous pouvez utiliser, qui sont en quelque sorte OK , incluent l'ajout de :focus { outline: none; }règles lorsque les utilisateurs interagissent avec la souris et les supprimer à nouveau si une interaction avec le clavier est détectée. Lindsay Evans a fait une lib pour cela: https://github.com/lindsayevans/outline.js

Mais je préférerais définir une classe sur la balise html ou body. Et contrôlez dans le fichier CSS quand l'utiliser.

Par exemple (les gestionnaires d'événements en ligne sont uniquement à des fins de démonstration):

<html>
<head>
<style>
  a:focus, button:focus {
    outline: 3px solid #000;
  }
  .no-focus a, .no-focus button {
    outline: none;
  } 
</style>
</head>
<body id="thebody" 
onmousedown="document.getElementById('thebody').classList.add('no-focus');"
onkeydown="document.getElementById('thebody').classList.remove('no-focus');">
    <p>This her is <a href="#">a link</a></p>   
    <button>Click me</button>
</body>
</html>

J'ai mis un stylo: http://codepen.io/snobojohan/pen/RWXXmp

Mais attention, il y a des problèmes de performances. Cela oblige à repeindre chaque fois que l'utilisateur bascule entre la souris et le clavier. En savoir plus sur la façon d'éviter les peintures inutiles http://www.html5rocks.com/en/tutorials/speed/unnecessary-paints/


6

J'ai remarqué la même chose et même si cela m'énerve vraiment, je pense qu'il n'y a pas de bonne façon de gérer cela.

Je recommanderais contre toutes les autres solutions données car elles tuent complètement l'accessibilité du bouton, alors maintenant, lorsque vous cliquez sur le bouton, vous n'obtiendrez pas la concentration attendue.

Cela devrait être évité!

.btn:focus {
  outline: none;
}

Je ne pense pas que ce soit faux, car vous avez toujours un éclair légèrement différent lorsque vous vous concentrez, de sorte que même les utilisateurs de clavier peuvent toujours le reconnaître. Mais cela ne suffit pas, car vous obtiendrez toujours un cadre de bordure lorsque vous maintenez le bouton gauche de la souris enfoncé
apocalypz

6

Je trouve une solution. lorsque nous nous concentrons, le bootstrap utilise box-shadow, nous le désactivons donc (pas assez de réputation, impossible de télécharger l'image :().

J'ajoute

.btn:focus{
    box-shadow:none !important;
}

Ça marche.


6

OPTION 1: utilisez la :focus-visiblepseudo-classe

La :focus-visiblepseudo-classe peut être utilisée pour éliminer les contours disgracieux et concentrer les anneaux sur les boutons et divers éléments pour les utilisateurs qui ne naviguent PAS via le clavier (c'est-à-dire via le toucher ou le clic de la souris).

/** 
 * The default focus style is likely provided by Bootstrap or the browser
 * but here we override everything else with a visually appealing cross-
 * browser solution that works well on all focusable page elements
 * including buttons, links, inputs, textareas, and selects.
 */
*:focus { 
  outline: 0 !important;
  box-shadow:
    0 0 0 .2rem #fff, /* use site bg color to create whitespace for faux focus ring */
    0 0 0 .35rem #069 !important; /* faux focus ring color */
}

/**
 * Undo the above focused button styles when the element received focus
 * via mouse click or touch, but not keyboard navigation.
 */
*:focus:not(:focus-visible) {
  outline: 0 !important;
  box-shadow: none !important;
}

Avertissement: à partir de 2020, la :focus-visiblepseudo-classe n'est pas largement prise en charge par les navigateurs . Cependant, le polyfill est très facile à utiliser; voir les instructions ci-dessous.


OPTION 2: utilisez le .focus-visiblepolyfill

Cette solution utilise une classe CSS normale au lieu de la pseudo-classe mentionnée ci-dessus, et prend en charge un large navigateur car il s'agit d' un polyfill officiel basé sur Javascript .

Étape 1: ajoutez les dépendances Javascript à votre page HTML

Remarque: le polyfill visible sur le focus nécessite un polyfill supplémentaire pour plusieurs navigateurs plus anciens qui ne prennent pas en charge classList :

<!-- place this code just before the closing </html> tag -->
<script src="https://cdn.polyfill.io/v2/polyfill.js?features=Element.prototype.classList"></script>
<script src="https://unpkg.com/focus-visible"></script>

Étape 2: ajoutez le CSS suivant à votre feuille de style

Ce qui suit est une version modifiée de la solution CSS documentée plus en détail ci-dessus.

/**
 * Custom cross-browser styles for keyboard :focus overrides defaults.
 */
*:focus { 
  outline: 0 !important;
  box-shadow:
    0 0 0 .2rem #fff,
    0 0 0 .35rem #069 !important;
}

/**
 * Remove focus styles for non-keyboard :focus.
 */
*:focus:not(.focus-visible) {
  outline: 0 !important;
  box-shadow: none !important;
}

Étape 3 (facultative): utilisez la classe «focus-visible» si nécessaire

Si vous avez des éléments où vous souhaitez réellement afficher la bague de mise au point lorsque quelqu'un clique ou utilise tactile, ajoutez simplement la focus-visibleclasse à l'élément DOM.

<!-- This example uses Bootstrap classes to theme a button to appear like
     a regular link, and then add a focus ring when the link is clicked --->
<button type="button" class="btn btn-text focus-visible">
  Clicking me shows a focus box
</button>

Ressource:

Démo:


Mais si même Chrome ne le prend pas encore en charge, ce n'est probablement pas la meilleure solution (pour l'instant)
Elijah Mock

Que proposez-vous à la place?
JamesWilson

Cachez le contour comme le disent les autres réponses jusqu'à ce que cette solution soit plus standardisée
Elijah Mock

D'après ma lecture des choses, si l'accessibilité est un problème, cacher le contour carte blanche avec <whatever>:focus { outline: none }est une idée pire que cette solution. Il y a en fait des gens dans la communauté de l'accessibilité qui préfèrent que vous ne supprimiez JAMAIS le contour et que tout ait plutôt un style: focus (contour ou box-shadow), et ne veulent pas prendre en charge: focus-visible jusqu'à ce que les navigateurs implémentent un moyen de laisser les utilisateurs spécifient une préférence utilisateur sur le fait que tous les éléments doivent ou non être ciblés. J'aime à penser: focus-visible est un juste milieu entre les préoccupations de conception et a11y.
JamesWilson

5

Si ce qui précède ne fonctionne pas pour vous, essayez ceci:

.btn: focus {contour: none; box-shadow: none; border: 2px solid transparent;}

Comme l'a souligné user1933897, cela peut être spécifique à MacOS avec Chrome.


Ceci est toujours valable lors de l'utilisation bootstrap 4.0- sous Windows
3gwebtrain

5

Tard, mais qui sait que cela peut aider quelqu'un. Le CSS ressemblerait à:

.rhighlight{
   outline: none !important;
   box-shadow:none
}

Le HTML ressemblerait à:

<button type="button" class="btn btn-primary rHighlight">Text</button> 

De cette façon, vous pouvez conserver btn et ses comportements associés.


1
element:focus { box-shadow: none; }suppression du contour / de l'ombre bleue.
user435421

3

Je l'ai mentionné dans un commentaire ci-dessus, mais cela vaut la peine d'être répertorié comme une réponse distincte pour plus de clarté. Tant que vous n'avez pas besoin d'avoir le focus sur le bouton, vous pouvez utiliser l'événement focus pour le supprimer avant de pouvoir appliquer des effets CSS:

$('buttonSelector').focus(function(event) {
    event.target.blur();
});

Cela évite le scintillement visible lors de l'utilisation de l'événement click. Cela restreint l'interface et vous ne pourrez pas taper sur le bouton, mais ce n'est pas un problème dans toutes les applications.


Cela a fait la moitié du tour pour moi. J'utilise React et React-Bootstrap. Après le clic, le bouton restait en surbrillance avec une lueur autour de cela. Ajout de e.target.blur (); supprime la lueur, mais le bouton reste d'une couleur différente.
pixelwiz

3

Style

.not-focusable:focus {
    outline: none;
    box-shadow: none;
}

En utilisant

<button class="btn btn-primary not-focusable">My Button</button>

En quoi cette solution est-elle différente des autres réponses?
2015

2
Il n'y a qu'une seule petite différence - vous pouvez supprimer le focus pour les éléments dont vous avez besoin en spécifiant la classe "non focalisable" sans remplacer le comportement de tous les boutons, liens, etc.
Bogdan Kanteruk

3

Essayez cette solution pour supprimer la bordure autour du bouton. Ajoutez ce code dans css.

Essayer

button:focus{
outline:0px;
}

Si cela ne fonctionne pas, utilisez ci-dessous.

button:focus{
 outline:none !important;
 }

Le deuxième fonctionne même avec le bouton React Material UI
Geek Guy

3

Pour les personnes souhaitant une méthode CSS pure et simple:

:focus:not(:focus-visible) { outline: none }

Cela pourrait également fonctionner pour le lien et ainsi de suite, et en bonus, il conserve les accessibilités du clavier. Enfin, il est ignoré par les navigateurs qui ne prennent pas en charge: focus-visible


4
Cela ne fonctionnera que sur Chrome avec des fonctionnalités expérimentales activées, selon developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible
Justin Kahn

focus-visiblea maintenant un polyfill officiel. Ma réponse stackoverflow.com/a/60219624/413538 sur cette question explique comment donner un sens à tout cela.
JamesWilson

2

Nous souffrions d'un problème similaire et avons remarqué que Bootstrap 3 n'a pas le problème sur leurs onglets (dans Chrome). Il semble qu'ils utilisent un style de contour qui permet au navigateur de décider de ce qu'il y a de mieux à faire et Chrome semble faire ce que vous voulez: afficher le contour lorsqu'il est concentré, sauf si vous venez de cliquer sur l'élément.

La prise en charge de outline-styleest difficile à cerner, car le navigateur décide de ce que cela signifie. Mieux vaut vérifier dans quelques navigateurs et avoir une règle de secours.


2

Une autre solution possible consiste à ajouter une classe à l'aide d'un écouteur Javascript lorsque l'utilisateur clique sur le bouton, puis à supprimer cette classe sur le focus avec un autre écouteur. Cela maintient l'accessibilité (tabulation visible) tout en empêchant le comportement original de Chrome de considérer un bouton concentré lorsqu'il est cliqué.

JS:

$('button').click(function(){
    $(this).addClass('clicked');
});
$('button').focus(function(){
    $(this).removeClass('clicked');
});

CSS:

button:focus {
    outline: 1px dotted #000;
}
button.clicked {
    outline: none;
}

Exemple complet ici: https://jsfiddle.net/4bbb37fh/


Utilisez mouseDown au lieu de cliquer. Au clic, le contour apparaît pendant que la souris est enfoncée (sans la relâcher) initiale.
Vincent Hoch-Drei


2
.btn:focus:active {
  outline: none;
}

cela supprime le contour au clic, mais conserve le focus lors de la tabulation (pour a11y)


Cela supprime uniquement le contour de la souris vers le bas. Une fois la souris levée, le contour apparaît.
Wellspring

2

Cela fonctionne mieux

.btn-primary.focus, .btn-primary:focus {
-webkit-box-shadow: none!important;
box-shadow: none!important;
}

1
  .btn:focus,.btn:active, a{
        outline: none !important;
        box-shadow: none;
     }

ce contour: aucun ne fonctionnera pour le bouton et une balise


Comment cela répond-il à la question? Veuillez ajouter une explication.
André Kool

1

Ajoutez ceci en CSS:

*, ::after, ::before {
    box-sizing: border-box;
    outline: none !important;
    border: none !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
}

1

J'ai trouvé une solution en ajoutant simplement la ligne ci-dessous dans votre code CSS.

button:focus { outline: none }

0

Je viens d'avoir ce même problème sur MacOS et Chrome en utilisant un bouton pour déclencher un événement de "transition". Si quelqu'un qui lit ceci utilise déjà un écouteur d'événements, vous pouvez le résoudre en appelant .blur()après vos actions.

Exemple:

 nextQuestionButtonEl.click(function(){
    if (isQuestionAnswered()) {
        currentQuestion++;
        changeQuestion();
    } else {
        toggleNotification("invalidForm");
    }
    this.blur();
});

Bien que si vous n'utilisez pas déjà un écouteur d'événements, en ajouter un juste pour résoudre cela pourrait ajouter des frais généraux inutiles et une solution de style comme les réponses précédentes est meilleure.


0

Vous pouvez définir tabIndex="-1". Le navigateur ignorera ce bouton lorsque vous effectuez un TAB dans les commandes pouvant être mises au point.

D'autres "correctifs" suggérés ici ne suppriment que le contour du focus, mais laissent toujours les boutons tabulables. Cependant, du point de vue de la convivialité, vous avez déjà supprimé la lueur, de sorte que votre utilisateur ne saura pas quel est le bouton actuellement ciblé, de toute façon.

D'un autre côté, rendre le bouton non tabable a des implications d'accessibilité.

Je l'utilise pour supprimer le contour du focus du bouton X bootstrap modal, qui a un bouton "Fermer" en double en bas de toute façon, donc ma solution n'a aucun impact sur l'accessibilité.


0

Si vous utilisez un navigateur de kit Web (et potentiellement un navigateur compatible avec le préfixe de fournisseur de kit Web), ce contour appartient à la -webkit-focus-ringpseudoclasse du bouton . Réglez-le simplement outlinesur none:

*:-webkit-focus-ring {
  outline: none;
}

Chrome est un tel navigateur webkit, et cet effet se produit également sur Linux (pas seulement une chose macOS, bien que certains styles Chrome soient uniquement macOS)


0

J'avais le même problème en utilisant <a>le bouton et j'ai découvert que je manquais une solution de contournement en ajoutant attr, type="button"cela se comporte normalement pour moi au moins.

<a type="button" class="btn btn-primary">Release Me!</a>


L' typeattribut ne devrait avoir aucun effet sur cela et buttonest une valeur non valide pour cela. L'attribut accepte un type MIME et indique au client quel type de données , il devrait attendre à obtenir si elle suit le lien (par exemple <a type="application/pdf" ...>.
Quentin

@Quentin Merci. Oui j'en suis conscient. J'ai commencé avec role="button"mais ça n'a pas marché (après avoir utilisé un <button>au lieu de <a>). Ma mise en œuvre exigeait spécifiquement un <a>et non <button>. Donc, après avoir beaucoup bricolé, j'ai découvert cette solution de contournement (probablement un bogue BS)!
spcsLrg

0

directement dans la balise html (dans un scénario où vous voudrez peut-être laisser le thème bootstrap en place ailleurs dans votre conception).

exemples à essayer ..

<button style="border: transparent;">
<button style="border: 1px solid black;">

..ect ,. en fonction de l'effet souhaité.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.