Retour en haut

Extrait de code pour un lien de retour en haut de page apparaissant lors du défilement de la page.

Règles d’implémentation pour l’accessibilité

  • Le “bouton” de retour en haut est en fait un lien travaillé en CSS.
  • Il se présente sous forme d’une icône “flèche” qui sera cachée aux logiciels de synthèse vocale via l’attribut aria-hidden="true".
  • Le lien comportera un texte compréhensible du type “Retour en haut de page” qui ne sera visible que par les logiciels de synthèse vocale via un style CSS.

Visuel

Descendez dans la page et vous verrez apparaître un “bouton” avec un flèche vers le haut qui, au clic dessus, vous ramène en haut de page.

Extraits de code

Code HTML

<a id="RetourEnHaut" class="cInvisible" href="#top">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true">
<path d="m7.247 4.86-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 0 0 .753-1.659l-4.796-5.48a1 1 0 0 0-1.506 0z" />
</svg>
<span class="sr-only">Retour en haut de la page</span>
</a>

Code CSS

:root {
    --TEXTE-color: #ffffff;
    --FOND-color: #666666;
    --FOND-HOVER-color: #333333;
    --BORDURE-color: #ffffff;
}
a#RetourEnHaut {
  border-radius: 50%;
  padding: 0 0.5em;
  font-size: 1.5em;
  text-align: center;
  color: var(--TEXTE-color);
  background: var(--FOND-color);
  border: 3px solid var(--BORDURE-color);
  position: fixed;
  right: 1.5em;
  opacity: 1;
  z-index: 99999;
  transition: all ease-in 0.2s;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  text-decoration: none;
}

a#RetourEnHaut:hover {
  padding: 0.25em 0.75em;
  right: 1.25em;
  background: var(--FOND-HOVER-color);
  transition: all ease-in 0.2s;
  outline: 3px solid var(--TEXTE-color);
}

a#RetourEnHaut.cInvisible {
  bottom: -35px;
  opacity: 0;
  transition: all ease-in 0.5s;
}

a#RetourEnHaut.cVisible {
  bottom: 50px;
  opacity: 1;
}

Code javascript

/********************************************************************
 * Fonction faire apparaître/disparaître le bouton de retour en haut de page
 ********************************************************************/
document.addEventListener("DOMContentLoaded", function () {
  window.onscroll = () => {
    document.getElementById("RetourEnHaut").className =
      window.scrollY > 100 ? "cVisible" : "cInvisible";
    var current = "";
  };
});