blue spiral neon light
Photo by Frank Cone on Pexels.com

WCAG 2.2 ガイドライン「2.4.1 繰り返しブロックのスキップ」Level A について

はじめに

WCAG 2.2の「2.4.1 繰り返しブロックのスキップ」では、複数のウェブページで繰り返されるコンテンツ(例: ナビゲーションメニュー)をスキップする仕組みを提供することを求めています。この基準は、キーボード操作を利用するユーザーやスクリーンリーダーを使用するユーザーが、不要な繰り返し操作を減らし、効率よく主なコンテンツにアクセスできるようにするためのものです。


1. 基準の概要

要件

  • ページの繰り返し要素をスキップするためのメカニズムを提供する。
    • 例: サイト全体で繰り返されるヘッダー、ナビゲーションメニュー、フッターなど。

2. 実装方法

a. 「主なコンテンツにスキップ」リンクを追加

例: 主なコンテンツにスキップするリンク

HTML

<a href="#mainContent" class="skip-link">主なコンテンツへスキップ</a>
<header>
  <nav>
    <ul>
      <li><a href="/">ホーム</a></li>
      <li><a href="/about">会社概要</a></li>
      <li><a href="/contact">お問い合わせ</a></li>
    </ul>
  </nav>
</header>
<main id="mainContent">
  <h1>主なコンテンツ</h1>
  <p>ここに主なコンテンツが表示されます。</p>
</main>

CSS

.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: #000;
  color: #fff;
  padding: 8px;
  text-decoration: none;
  z-index: 1000;
}

.skip-link:focus {
  top: 0; /* フォーカス時に表示 */
}

b. ARIAランドマークを使用

ランドマークロールを利用して、ページ内の主要なセクションを明確にします。

例: ARIAランドマーク

HTML

<header role="banner">
  <nav role="navigation">
    <ul>
      <li><a href="/">ホーム</a></li>
      <li><a href="/about">会社概要</a></li>
      <li><a href="/contact">お問い合わせ</a></li>
    </ul>
  </nav>
</header>
<main role="main">
  <h1>主なコンテンツ</h1>
  <p>ここに主なコンテンツが表示されます。</p>
</main>
<footer role="contentinfo">
  <p>© 2024 会社名</p>
</footer>

c. 折りたたみ可能なメニューを使用

例: 折りたたみ式ナビゲーションメニュー

HTML

<button id="toggleMenu">ナビゲーションを表示/非表示</button>
<nav id="mainNav" hidden>
  <ul>
    <li><a href="/">ホーム</a></li>
    <li><a href="/about">会社概要</a></li>
    <li><a href="/contact">お問い合わせ</a></li>
  </ul>
</nav>
<main>
  <h1>主なコンテンツ</h1>
</main>

JavaScript

const toggleMenu = document.getElementById('toggleMenu');
const mainNav = document.getElementById('mainNav');

toggleMenu.addEventListener('click', () => {
  const isHidden = mainNav.hasAttribute('hidden');
  if (isHidden) {
    mainNav.removeAttribute('hidden');
  } else {
    mainNav.setAttribute('hidden', true);
  }
});

3. よくある失敗例とその改善策

a. スキップリンクがない

失敗例

<header>
  <nav>
    <ul>
      <li><a href="/">ホーム</a></li>
      <li><a href="/about">会社概要</a></li>
      <li><a href="/contact">お問い合わせ</a></li>
    </ul>
  </nav>
</header>
<main>
  <h1>主なコンテンツ</h1>
</main>

改善策

  • ユーザーがナビゲーションメニューをスキップして直接コンテンツに移動できるリンクを提供します。

b. スキップリンクが非表示

失敗例

  • 「主なコンテンツへスキップ」のリンクが非表示になっており、フォーカスできない。

改善策

  • CSSでフォーカス時にリンクが表示されるよう設定します。

4. アクセシビリティのメリット

a. 操作効率の向上

  • キーボードユーザーやスクリーンリーダーユーザーが、繰り返し要素をスキップして効率よくコンテンツにアクセスできます。

b. 視覚障害者への配慮

  • スクリーンリーダーユーザーにとって、重要な情報に迅速にアクセスする手段を提供します。

c. 一般ユーザーにも便利

  • 小さな画面やタッチ操作でも、不要なナビゲーションをスキップする機能が役立つ場合があります。

5. テスト方法

a. 手動テスト

  1. キーボードのTabキーを使用して、スキップリンクが正しく機能するか確認。
  2. スクリーンリーダーを使用して、スキップリンクが正確に読み上げられるか確認。

b. 自動テストツール

  • AxeやWAVEなどのアクセシビリティツールで、スキップリンクやランドマークの実装を検証。

まとめ

WCAG 2.2の「2.4.1 繰り返しブロックのスキップ」は、ユーザーが効率的にコンテンツにアクセスできる仕組みを提供することを目指しています。

実装ポイント

  1. 「主なコンテンツにスキップ」リンクを提供する。
  2. ARIAランドマークを使用してセクションを識別する。
  3. 必要に応じて折りたたみメニューを活用する。

これにより、すべてのユーザーが効率的で快適にウェブコンテンツを利用できるようになります。

当社では、ウェブアクセシビリティを簡単に導入できるUUU ウェブアクセシビリティをリリースしております。アクセシビリティ向上にご興味がある方はぜひ詳細をご覧ください。

投稿者 greeden

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)