De eenvoudigste oplossing is geen tooltip bouwen maar de tekst op de pagina zetten. Kan dat niet, dan moeten er drie dingen kloppen.
Escape sluit de uitleg:
element.addEventListener('keydown', function (e) {
if (e.key === 'Escape') { verbergTooltip(); }
});
De aanwijzer kan erheen. Laat geen gat tussen het onderdeel en de uitleg: beweegt de aanwijzer over dat gat, dan telt dat als wegwijzen en verdwijnt de uitleg.
.tooltip {
margin-block-start: 0;
padding-block-start: 8px;
pointer-events: auto;
}
En er zit geen tijdklok op. Een bezoeker die langzaam leest is na drie seconden halverwege:
setTimeout(verbergTooltip, 3000); /* niet doen */
Gebruik :focus-visible naast :hover, anders krijgt een bezoeker met een toetsenbord de uitleg nooit te zien. Zet daarnaast aria-describedby op het onderdeel, zodat een schermlezer de uitleg voorleest.
<button aria-describedby="uitleg-btw">Btw-nummer</button>
<div id="uitleg-btw" role="tooltip">Je btw-nummer staat op je factuur.</div>