SSA - アコーディオンの統一標準

SSA - アコーディオンの統一標準

277

5 分。

定義

SSA規格は、アコーディオンのセマンティクス、アクセシビリティ、および動作ロジックに関する要件を定めています。

この標準でのアコーディオン要素はスポイラーと呼ばれます。スポイラーはアコーディオンから独立した要素になることもありますが、個別に使用されることはほとんどありません。

構造とセマンティクス

アコーディオンの基盤は<ul>リストです。これにより、支援技術がスポイラーのグループを関連要素の単一リストとして認識できるようになります。

各リスト項目<li>内には、以下を厳密に含む<details>タグが配置されます:

  1. ヘッダートリガー<summary>
  2. コンテンツ領域<div>
<ul class="accordion">
  <li>
    <details class="spoiler" name="faq">
      <summary class="spoiler__trigger">
        <h3 class="spoiler__title">トリガーテキスト</h3>
        <span class="spoiler__icon" aria-hidden="true"></span>
      </summary>
      <div class="spoiler__content"></div>
    </details>
  </li>
</ul>

name属性を使用すると、同時に1つのスポイラーのみが開いているアコーディオンを作成できます(グループ内のすべてのアイテムに同じname値がある場合)。

アクセシビリティ

  1. 状態セマンティクス - 「展開/折りたたみ」状態は、ネイティブの<details>タグを使用しているおかげで、スクリーンリーダーに自動的に伝えられます。追加のARIA属性は必要ありません;

  2. 装飾的要素の非表示 - アイコン(矢印)には常にaria-hidden="true"が追加されます。これは視覚的な機能を持っており、それを音声化するとユーザーにとって不要な「ノイズ」が生じます;

  3. キーボードナビゲーション - <summary>により、メイン要素はTabキーを押すと自動的にフォーカスを受け、EnterキーまたはSpaceキーでアクティベートされます;

  4. 視覚的フォーカス - :focus-visible疑似クラスを使用する必要があります。キーボードでナビゲートしているとき、ユーザーはアクティブな要素の明確なアウトラインを見る必要があります;

  5. 見出しの階層 - トリガー内のテキストは、ページ構造に対応する見出し(<h3><h6>)でラップする必要があります。スクリーンリーダーユーザーがアコーディオンセクション間をすばやく移動できるようにするためです。

インタラクティブ性と視覚的な反応

  1. <summary>トリガーのクリック領域はできるだけ大きくする必要があります。これはモバイルデバイスにとって重要です;

  2. トリガーとコンテンツには、個別の内部パディングが必要です。これにより、テキストを「折りたたまず」アクティブ領域が拡大します。

ユーザーは、3つのタイプの反応を通じて要素の状態を即座に理解する必要があります:

  1. ホバー - ホバー時の微妙な背景変更;
  2. フォーカス - アクセント枠線;
  3. 開く - 開いているスポイラーの背景色の変更または分割線の表示。
/* 基本スタイル */
.spoiler__trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  cursor: pointer;
  list-style: none; /* システムマーカーを非表示 */
}

.spoiler__trigger::-webkit-details-marker {
  display: none;
}

.spoiler__trigger:hover {
  background-color: rgb(0 0 0 / 5%);
}

/* 開いている状態 */
.spoiler[open] .spoiler__trigger {
  background-color: #f8f9fa;
  border-block-end: 1px solid #eee;
}

/* アイコンアニメーション */
.spoiler__icon {
  flex-shrink: 0;
  inline-size: 24px;
  block-size: 24px;
  transition: rotate 0.3s ease-in-out;
}

.spoiler[open] .spoiler__icon {
  rotate: 180deg;
}

Plugin

Next Accordionプラグイン

記事は随時更新されます

関連記事

  • SSF-U - フルスクリーン表示の統一規格

    SSF-U規格は、フルスクリーン表示のセマンティクス、アクセシビリティ、および動作ロジックに関する要件を規定しています

    23

    4 分。

  • ウェブサイトにおける悪い慣行

    ウェブデザインにおける致命的なミスの分析。スライダー、自動再生、重いページがコンバージョン率やGoogle・Yandexでの検索順位を低下させる理由

    91

    2 分。

  • SSP - ページネーションの統一規格

    SSP規格は、ページネーションのセマンティクス、アクセシビリティ、および動作ロジックに関する要件を規定しています

    181

    3 分。

  • SSPS - プロジェクト構造の統一基準

    SSPS標準は、プロジェクト内のファイルおよびフォルダの構造と命名に関する要件を規定しています

    122

    3 分。

  • SSG - Gitの統一標準

    SSG標準は、Gitのセマンティクス、アクセシビリティ、および動作ロジックに関する要件を規定しています

    18

    6 分。

  • SSF-O - フォントの統一規格(Local、Google Fonts)

    SSF-O規格は、フォントのセマンティクス、アクセシビリティ、および動作ロジックに関する要件を規定しています

    17

    5 分。

  • すべての記事

プロジェクトの種類*