本文へ移動
ご相談
トピックを検索

フォーカス中のリンクを隠す固定ヘッダーとバナー

固定ヘッダーやCookieバナーの下のリンクを、ブラウザーは表示中とみなすため、バーの下から出すスクロールをしません。

問題あり
フォーカス中なのに、ヘッダーの下で見えない。
アクセシビリティの問題を示した図。
01

問題

キーボード利用者が、ヘッダーやバナーの下に隠れたリンクにフォーカスし、それが見えません。

02

試してみる

Tabで一覧を下へ進み、Shift + Tabで戻ってください。

フォーカスした記事リンクを目で追ってください。常に見えますか?ヘッダーやCookieバナーの下に隠れませんか?

問題あり 直してみませんか?

ガーデンノート

Cookieの使用について ガーデンノートは、設定の保存と訪問数の集計にCookieを使用します。設定はいつでも変更できます。

再現デモです。「問題あり」は意図的にアクセシブルでない状態にしています。

03

修正方法

scroll-paddingでバーの高さ分を確保するか、バーをスクロールする領域の外に出します。

  1. 1どちらのTab方向でも、フォーカス中の要素が固定表示のバーに完全に隠れない。
  2. 2確保する余白はバー自身の高さから取り、両者を常にそろえる。
  3. 3公開するすべてのバナー、チャットボタン、拡大率で確認する。
修正前 余白を確保していないバー
.site-header {  position: sticky;  top: 0;  height: 4rem;}.cookie-banner {  position: fixed;  inset-inline: 0;  bottom: 0;  height: 5rem;}
修正後

バーの高さ分のscroll-padding

:root {  --header-height: 4rem;  --banner-height: 5rem;}.site-header {  position: sticky;  top: 0;  height: var(--header-height);}.cookie-banner {  position: fixed;  inset-inline: 0;  bottom: 0;  height: var(--banner-height);}html {  scroll-padding-top: var(--header-height);  scroll-padding-bottom: var(--banner-height);}/* バナーに回答して消えたら、余白を戻します。 */html:not(:has(.cookie-banner)) {  scroll-padding-bottom: 0;}

04

修正の確認

マウスを使わない4つの確認

確認方法: キーボード、ズーム

4件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。ヘッダー、バナー、ページのレイアウトを変更した際は、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。現在のブラウザーはフォーカスによるスクロールにも scroll-padding を適用しますが、対象のブラウザーで確認してください。カルーセルやサイドパネルなど、ページ内のスクロール領域には、それぞれ余白の指定が必要です。コード内のトークン名は、実際のデザイントークンに置き換えてください。

よくある問題を再現した学習用のサンプルです。実在のクライアントの診断結果ではありません。コードは出発点となる実装例のため、実際の製品でも確認してください。ここでは支援技術でのテスト結果は報告していません。

コードを更新しても、使いやすさを保つために

ガイドの内容を、コーディングエージェントやCIで使える開発ルールにまとめます。更新後は、キーボードとスクリーンリーダーで再テストし、問題が再発していないか確認します。

再テストの進め方