.visually-hidden
を使って、補助技術(スクリーンリーダなど)を利用できるようにしながら、要素を視覚的に隠すことができます。
.visually-hidden-focusable
を使うと、デフォルトでは要素を視覚的に非表示にすることができますが、 (キーボードのみのユーザなど) フォーカスされたときに表示することができます。
:focus-within
のおかげで、コンテナの子要素がフォーカスを受け取ったときにコンテナが表示されます。
<h2 class="visually-hidden">Title for screen readers</h2>
<a class="visually-hidden-focusable" href="#content">Skip to main content</a>
<div class="visually-hidden-focusable">A container with a <a href="#">focusable element</a>.</div>
visually-hidden
とvisually-hidden-focusable
はどちらもmixinとして使うことができます。
// Usage as a mixin
.visually-hidden-title {
@include visually-hidden;
}
.skip-navigation {
@include visually-hidden-focusable;
}