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

ランドマークの一覧に出てこない検索欄と関連コンテンツ

ショップのヘッダーの検索欄がただの form で、「こちらもおすすめ」の欄も main の中にあるため、ランドマークの一覧に検索が出ず、おすすめの欄まで商品の内容として扱われてしまう

WCAG 2.2
SC 1.3.6AAA· 2.1 で追加
必須とする規格
Section 508、EN 301 549、JIS X 8341-3 では必須ではない
問題あり <form action="/search">
アクセシビリティの問題を示した図: 認知:検索はどこ?
01

問題

ページを領域ごとにたどる人が、検索へ直接移動できず、ショップのおすすめと商品の内容を区別できない

02

試してみる

ランドマークのツールで検索へ移動し、メインの内容だけを表示してみましょう

ウィンドウの上のバーは、ページのランドマークを読み取るツールの代わりです。「移動先」は SkipTo 拡張機能のようにランドマークを並べ、「メインの内容だけを表示」はそれ以外をすべて隠します。後者は、WCAGの解説書が1.3.6の例として挙げているものです。メニューに検索はありますか?メインの内容だけにしたとき、マグのほかに何が残りますか?

修正を適用して、もう一度両方を試してください。

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

問題ただの検索フォームと、main の中の関連コンテンツ

ランドマークのツール(SkipTo などの拡張機能の代わり)

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

03

修正方法

検索と関連コンテンツをランドマークにする

修正前
問題ただの検索フォームと、main の中の関連コンテンツ
<header>  <a href="/" class="logo">Tidewater Home</a>  <nav>    <a href="/kitchen">キッチン</a>    <a href="/table">テーブル</a>    <a href="/bath">バス</a>  </nav>  <form action="/search">    <label for="q" class="visually-hidden">ショップ内を検索</label>    <input id="q" name="q" type="search">    <button type="submit">検索</button>  </form></header><main>  <h1>ホーローのマグ</h1>  <p class="price">$18</p>  <div class="related">    <h2>こちらもおすすめ</h2>    <ul>…</ul>  </div></main><footer>  <a href="/contact">お問い合わせ</a>  <a href="/returns">返品</a></footer>
問題点3点
  • 検索フォームにはロールも名前もないため、ランドマークにならず、ランドマークの一覧に検索がありません。
  • 関連コンテンツは main の中の div なので、コードは商品ページ自身の内容として数えます。
  • そのため一覧に並ぶのは「バナー」「ナビゲーション」「メイン」「コンテンツ情報」だけで、検索にもおすすめにも、それが何であるかを手がかりに移動したり、残したり、隠したりできません。
修正後

Search 要素と aside 要素

<header>  <a href="/" class="logo">Tidewater Home</a>  <nav>    <a href="/kitchen">キッチン</a>    <a href="/table">テーブル</a>    <a href="/bath">バス</a>  </nav>  <search>    <form action="/search">      <label for="q" class="visually-hidden">ショップ内を検索</label>      <input id="q" name="q" type="search">      <button type="submit">検索</button>    </form>  </search></header><main>  <h1>ホーローのマグ</h1>  <p class="price">$18</p></main><aside class="related" aria-labelledby="related-title">  <h2 id="related-title">こちらもおすすめ</h2>  <ul>…</ul></aside><footer>  <a href="/contact">お問い合わせ</a>  <a href="/returns">返品</a></footer>
修正の手順3ステップ
  1. 検索フォームを search 要素で囲みます。search 要素は search ランドマークになるため、一覧に「検索」が出て、選ぶと検索欄に着きます。中のフォームにロールは要りません。
  2. 関連コンテンツを main の外に出し、フッターの前で main の横に置きます。メインは商品で終わります。
  3. その囲みを complementary ランドマークになる aside にし、見出しを指す aria-labelledby で名前を付けます。一覧では「こちらもおすすめ」という名前と一緒に出ます。

ランドマークの一覧には「バナー」「ナビゲーション」「検索」「メイン」「補足情報、こちらもおすすめ」「コンテンツ情報」が並び、メインにはマグだけが入ります。これで修正前の例の2つの領域が直り、その領域について1.3.6を満たします。アイコンとコントロールは、この達成基準の残りの部分です(「制限」を参照)。aside は div のときの見た目をそのまま保てます。マークアップのどこにあっても、レイアウトのCSSで商品の下に配置できます。

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

混同しやすいもの
04

修正の確認

4項目、マウス不要

確認方法: スクリーンリーダー、キーボード

4件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。テンプレートに新しいまとまりを加えた際は、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。パス、クラス名、リストの中の … は仮のものです。このガイドのランドマークの呼び方は NVDA の日本語版に合わせています。言い回しはスクリーンリーダーによって違うため、言い回しではなく領域を聞いてください。このガイドは、1.3.6が挙げる3つのもののうち、領域を扱います。残りはアイコンとコントロールで、WCAGにはまだそのための達成方法が公開されていません。解説書には、コントロールについてマイクロデータを使う方法が、今後のリンクとして1つ挙がっているだけです。言葉や絵に記号の概念を示すためのW3Cの属性、WAI-Adapt Symbols Module の adapt-symbol は、2023年1月から勧告候補のままで、先へ進むには、この属性に反応するユーザーエージェントか拡張機能が2つ必要です。実装報告にはそうしたブラウザーも拡張機能も挙がっていないため、アイコンが利用者自身の記号に置き換わることを、今のところページの側では当てにできません。今ツールがアイコンやコントロールから読み取れるのは名前なので、名前がないアイコンだけのボタンで示しているように、それぞれに名前を付けてください。個人情報を集める入力欄は autocomplete で目的を示します。これは自動入力が効かないフォームの入力欄で扱っています。骨組み自体のランドマーク、つまり1つの main と最上位のヘッダーとフッターは、抜けや置き間違いがあり、内容を囲みきれないランドマークを参照してください。実際に使用する支援技術で、操作全体を確認してください。

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

EaseWebのサービス

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

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

サービス内容を見る