Journal : Liens externes accessibles
En recréant ce carnet de zéro, les liens s'ouvraient à même la page, sans créer de nouvel onglet/fenêtre.
Est-ce qu'ajouter un attribut target="_blank" sur des liens hypertextes absolus suffit ? Non, l'exemple du module markdown-it-for-inline ne suffit pas.
J'aimerais :
- gérer la sécurité avec l'onglet ouvert. Il pourrait être utilisé par des pisteurs, sur la page nouvellement ouverte, par des extensions web verrolées ;
- informer de la destination aux lecteurs d'écran. La destination étant "un nouvel onglet". Ça correspond au critère 6.1.1 du RGAA ;
- distinguer visuellement les liens qui ouvrent un nouvel onglet. Même intention, visuelle cette fois.
La sécurité se gère à l'aide des valeurs noopener et noreferrer de l'attribut rel.
Elles préviennent, respectivement, l'accès à la propriété window.opener et à la diffusion de la provenance via l'entête HTTP Referrer.
Ça aide à préserver notre vie privée numérique.
On peut donner du contexte aux lecteurs d'écran dans un label ARIA :
- qui repend l'intitulé du lien ;
- et qui spécifie l'ouverture dans un nouvel onglet.
L'utilisation du rotor VoiceOver est un bon exemple de cette visibilisation :

L'antépénultième lien de cette capture d'écran rend explicite l'ouverture dans un nouvel onglet. Ça correspondrait au code HTML suivant :
<a href="..." aria-label="critère 6.1.1 du RGAA (ouvre une nouvelle fenêtre)">
critère 6.1.1 du RGAA
</a>
Quelques lignes de CSS suffisent à ajouter un symbole visuel à la suite du lien :
a[target="_blank"]::after {
content: "";
display: inline-block;
inline-size: .8em;
block-size: .8em;
/* ... */
background-color: currentColor;
mask-image: url("data:image/svg+xml;base64, …");
mask-repeat: no-repeat;
mask-size: contain;
}
L'utilisation combinée des propriétés background-color et mask-* aident à respecter les proportions de l'image vectorielle et à la détourer aux couleurs du texte du lien.
L'image est encodée directement dans la feuille CSS pour éviter un temps de latence à l'affichage.
C'est bon, nos liens externes sont désormais accessibles.
Le code source des liens externes accessibles pour markdown-it (intégré à Build Awesome) est consultable dans le dépôt de ce carnet.