Texto oculto accesible
El problema de usar display:none es que se oculta también para bots y screen-readers. El código más óptimo es:
.visually-hidden {
display: inline-block;
position: absolute;
overflow: hidden;
clip: rect(0 0 0 0);
height: 1;
width: 1;
margin: -1;
padding: 0;
border: 0;
}