ページに追加された新しいコンテンツにユーザーのフォーカスが移る

ページに新しいコンテンツが追加されるたびに、ユーザーがそのコンテンツにフォーカスして操作できるようにします。

手動テストの方法

シングルページ アプリは、特に新しいコンテンツに対するユーザーのフォーカスを管理する場合には、テストが重要です。

通常、シングルページ アプリでは、リンクをクリックしてもハード更新は行われません。 ルートが変更されると、<main> コンテンツ エリアの新しいデータが取得されます。

スクリーン リーダーなどの支援技術を使用してページを操作しているユーザーは、新しいコンテンツがページに追加されたことを認識できない可能性があります。<main> 領域に戻る必要があることを示す表示はありません。

このような場合は、ユーザーが認識したコンテキストをサイトのビジュアル コンテンツと同期するように、ユーザーのフォーカスを管理する必要があります。

修正方法

ユーザーがページ上の最新のコンテンツに集中できるようにするには、新たに読み込まれたコンテンツ内で適切な見出しを見つけて、その見出しにフォーカスします。これを実現する最も簡単な方法は、見出しに -1tabindex を指定して、その focus() メソッドを呼び出すことです。

<main>
  <h2 tabindex="-1">Welcome to your shopping cart</h2>
</main>
<script>
  // Assuming this gets called every time new content loads...
  function onNewPage() {
    var heading = document.querySelector('h2');
    heading.focus();
    // You can also update the page title :)
    document.title = heading.textContent;
  }
</script>

支援技術は、新しい見出しと、その見出しが含まれるメインのランドマーク領域を読み上げます。

リソース

ページに追加された新しいコンテンツにユーザーのフォーカスが向いている監査のソースコード