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

キーボードで開けず、閉じるボタンにも名前がないチャット

チャットの起動ボタンがクリック処理を付けたdivのためTabキーで届かないうえ、パネルの×もアイコンしかないボタンで、スクリーンリーダーには「ボタン」としか読まれない

WCAG 2.2
SC 2.1.1ASC 4.1.2A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <div class="chat-launcher">
アクセシビリティの問題を示した図: 手の操作:チャットはどうやって開くの?
01

問題

キーボードの利用者がサポートチャットを開けず、スクリーンリーダーの利用者にはどのボタンでチャットを閉じるのかが伝わらない

02

試してみる

キーボードだけでチャットを開いて閉じ、それぞれのボタンが何と読まれるか聞いてみましょう

Tabキーでページを下へ進んでください。フォーカスはチャットの吹き出しに届きますか?吹き出しをクリックしてチャットを開き、Tabキーで×へ移って、ページの下に出るスクリーンリーダーの読み上げを確かめます。

修正を適用して、すべてキーボードで試してください。

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

問題Divの起動ボタンと名前のない×

配送について

ほとんどのご注文は5営業日以内に届きます。大型の商品は、ご指定の日にお届けします。

スクリーンリーダーの読み上げ:

(Tabキーでページを移動してください)

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

03

修正方法

起動ボタンと×をHTML標準のボタンにし、それぞれに言葉の名前を付ける

  1. 1チャットの起動ボタンは、Tabキーで届くHTML標準のボタンにする
  2. 2起動ボタンと閉じるボタンにはそれぞれ言葉の名前を付け、アイコンは読み上げから隠す
  3. 3チャットを閉じたら、フォーカスを起動ボタンに戻す
修正前 Divの起動ボタンと名前のない×
<div class="chat-launcher">  <svg class="icon" viewBox="0 0 24 24">    <use href="#icon-chat"></use>  </svg></div><section id="chat" class="chat-panel" aria-labelledby="chat-title" hidden>  <div class="chat-header">    <h2 id="chat-title">Birchwoodのチャット</h2>    <button type="button" class="chat-close">      <svg class="icon" viewBox="0 0 24 24">        <use href="#icon-close"></use>      </svg>    </button>  </div>  <div class="chat-messages" role="log" aria-label="メッセージ">    <p class="message from-us">こんにちは。ご注文についてお気軽にお尋ねください。</p>  </div>  <form class="chat-form">    <label for="chat-input" class="visually-hidden">メッセージ</label>    <input id="chat-input" autocomplete="off">    <button>送信</button>  </form></section>
修正後

丸いアイコンのまま、名前のあるボタンにする

<button type="button" class="chat-launcher" aria-label="チャットで相談">  <svg class="icon" viewBox="0 0 24 24" aria-hidden="true">    <use href="#icon-chat"></use>  </svg></button><section id="chat" class="chat-panel" aria-labelledby="chat-title" hidden>  <div class="chat-header">    <h2 id="chat-title">Birchwoodのチャット</h2>    <button type="button" class="chat-close" aria-label="チャットを閉じる">      <svg class="icon" viewBox="0 0 24 24" aria-hidden="true">        <use href="#icon-close"></use>      </svg>    </button>  </div>  <div class="chat-messages" role="log" aria-label="メッセージ">    <p class="message from-us">こんにちは。ご注文についてお気軽にお尋ねください。</p>  </div>  <form class="chat-form">    <label for="chat-input" class="visually-hidden">メッセージ</label>    <input id="chat-input" autocomplete="off">    <button>送信</button>  </form></section>

この方法を選ぶ理由:まずHTMLの要素を使う

混同しやすいもの
04

修正の確認

5項目、マウス不要

確認方法: キーボード、スクリーンリーダー、音声入力

5件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。チャットウィジェット、その提供元のスクリプト、または設定を変更した際は、再度確認します。

制限

このサンプルは、ページ自身が描く起動ボタンとパネルのための出発点で、あらゆるウィジェットで同じ結果になることを保証するものではありません。提供元のウィジェットをそもそも変えられるかどうかは提供元によります。別のドメインのフレームの中にある場合、手を加えられるのは、ウィジェットの設定か、提供元への依頼だけです。チャットのメッセージの読み上げは別の問題で、メッセージを読み上げないチャットウィジェットで扱っています。ボットだけで担当者に連絡できないチャットについては、担当者につながらないサポートのチャットボットを参照してください。実際に利用者が使う支援技術で、操作全体を確認してください。

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

EaseWebのサービス

修正した問題を、次のリリースで再発させない

このガイドのような修正方法を、コーディングエージェントが従うルールと、CIのチェックに組み込みます。あわせて定期的に、キーボードとスクリーンリーダーで手動の再テストを行います。

サービス内容を見る