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

フォーカス中のボタンを一部隠すチャットボタン

画面の隅に固定したチャットボタンが、スクロールに合わせて各行の端に重なります。ブラウザーはフォーカスしたボタンを表示中とみなすため、その下から動かしません。

WCAG 2.2
SC 2.4.12AAA· 2.2 で追加
必須とする規格
Section 508、EN 301 549、JIS X 8341-3 では必須ではない
問題あり
フォーカス中なのに、チャットボタンの下に半分隠れる。
アクセシビリティの問題を示した図。
01

問題

キーボード利用者が、浮いたチャットボタンに半分隠れたボタンにフォーカスし、どこにフォーカスがあり、何と書いてあるかが分かりません。

02

試してみる

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

フォーカスした「予約」ボタンを目で追ってください。全部見えますか?チャットボタンが一部に重なっていませんか?

問題あり 修正できますか?

コミュニティセンター
  • パン作りの基本
  • 水彩画入門
  • 自転車の修理
  • はじめての編み物
  • プランター菜園
  • 応急手当の基本
  • 陶芸ろくろ体験
  • スマートフォンで写真編集
  • トートバッグを縫う
  • 家庭の省エネ

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

03

修正方法

scroll-paddingでチャットボタンの隅を確保するか、チャットボタンをページに重ねずレイアウトの中に置きます。

  1. 1どちらのTab方向でも、フォーカス中の要素のどの部分も固定表示の要素の下にない。
  2. 2浮いた要素のために確保する余白は、その要素自身の大きさと位置から取り、両者を常にそろえる。
  3. 3半透明の重なりも隠していることになる。フォーカス中の要素にかかるフェードも基準を満たさない。
修正前 余白を確保していない浮いたボタン
.chat-launcher {  position: fixed;  inset-inline-end: 1rem;  bottom: 1rem;  inline-size: 3.5rem;  block-size: 3.5rem;  border-radius: 50%;}
修正後

チャットボタンの隅のscroll-padding

:root {  --launcher-size: 3.5rem;  --launcher-inset: 1rem;  /* チャットボタン、画面端からの距離、その上の小さな間隔。 */  --launcher-reserve: calc(var(--launcher-size) + var(--launcher-inset) + 0.5rem);}.chat-launcher {  position: fixed;  inset-inline-end: var(--launcher-inset);  bottom: var(--launcher-inset);  inline-size: var(--launcher-size);  block-size: var(--launcher-size);  border-radius: 50%;}html {  scroll-padding-bottom: var(--launcher-reserve);}/* 最後の行もチャットボタンの上までスクロールできるようにします。 */main {  padding-bottom: var(--launcher-reserve);}

AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得

04

修正の確認

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

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

5件中0件を確認済み

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

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。レベルAAAの達成基準は、サイト全体に求められるものではなく、満たせないコンテンツもありますが、この基準は少ない手間で満たせることが多いです。現在のブラウザーはフォーカスによるスクロールにも scroll-padding を適用しますが、対象のブラウザーで確認してください。ページ内のスクロール領域には、それぞれ余白の指定が必要です。コード内のトークン名は、実際のデザイントークンに置き換えてください。

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

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

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

再テストの進め方