Upgrade to Pro — share decks privately, control downloads, hide ads and more …

アクセシブルなインクリメンタルサーチを作ってみた

mattsuu
July 16, 2024

 アクセシブルなインクリメンタルサーチを作ってみた

アクセシビリティLT会 (2024/07/16) での発表資料
https://yumemi.connpass.com/event/323801/

mattsuu

July 16, 2024
Tweet

More Decks by mattsuu

Other Decks in Technology

Transcript

  1. aria-describedby で機能の説明を紐付ける <input id="search" type="search" aria-describedby="search-description" /> <p id="search-description" className="sr-only">

    入力するごとに記事が絞り込まれます </p> aria-describedby を使用して、検索コンポーネントがリア ルタイムに結果を更新することを伝える
  2. 結果が存在しない場合は即座に伝える <div aria-live="assertive" aria-atomic="true"> {noPostsFound && ( <p className="sr-only"> 記事が見つかりませんでした。

    </p> )} </div> ARIA-live regions を活用して、入力結果が存在しない場合 に即座にアナウンスさせる
  3. ユーザー体験を損ねる ARIA live regions の使い方 • 検索結果のコンテナに aria-live=”assertive” を指定する ◦

    検索結果が更新されるたびに不要なアナウンスが発生する ◦ 頻発なアナウンスがノイズとなり、ユーザー体験を損ねる <div aria-live="assertive" aria-atomic="true"> {posts.map((post) => ( <BlogCard {...post} /> ))} </div>