フィルターチップ
componentタグやキーワードで一覧を絞り込むときに使う小さなボタンです。選択中かどうかが色で分かります。
isSelected × state
未選択 / 選択 × enable / hover / disabled
使用例
複数チップを並べたフィルター UI — クリックで選択 / 解除をトグル
機能
このコンポーネントの用途
タグや単語でコンテンツを絞り込むトグル可能なチップ。複数同時選択の絞り込みに使う。
複数選択の絞り込み=filter-chip / 単一選択=radio / ON-OFF 設定=checkbox。
使用法
推奨される使い方と、やりがちな NG パターン
OK
- ✓選択状態は aria-pressed="true|false"。
- ✓件数表示は filter-chip-count。
NG
- ✕単一選択しか許さない設問に並べない → radio。
- ✕チップ形状を独自シェイプに変えない → 何個選べるか直感が崩れる(guidelines 参照)。
選択状態は色+チェックで示す
色だけに頼らない選択中は色に加えチェックマークでも示す。色を区別できなくても選択が分かる。
<button class="filter-chip" aria-pressed="true"> …<span class="filter-chip-check">…✓</span> </button>
チェックを外し背景色だけで選択を示すと、色を区別できない人に伝わらない。
<button class="filter-chip"> <!-- チェックなし・色のみ --> <span class="filter-chip-label">自治体連携</span> </button>
フィルターチップのアクセシビリティ
フィルターチップはトグルボタンです。選択状態は aria-pressed で伝え、色だけに頼らずチェックでも示します。WCAG 2.2 全基準は アクセシビリティ ページを参照。
期待される配慮
Presentation / Adaptability / Interaction / Assistive Technology
選択中は背景色+チェックマークで示し、色だけに頼らない。件数も併記する。
文字は rem / トークンで拡大に追従。チップは折り返して並ぶ。
Tab で到達、Enter/Space で選択/解除。フォーカスリングが出る。
aria-pressed="true/false" で選択状態が伝わる。左アイコンとチェックは装飾=aria-hidden。
DS が担保する機能
追加実装なしで満たされる
- ✓ネイティブ
<button>ベースで役割が確立 - ✓選択中はチェックマークを表示(色+形の二重表現)
- ✓キーボードフォーカスリング(
:focus-visible・info/600)
実装時の必須対応
プロダクト側で担保する
- !選択状態を
aria-pressed="true/false"で表し、トグルで更新する - !左アイコン・チェックの SVG は
aria-hidden="true" - !件数はラベルと共に読まれるようにする(例: 「自治体連携 124件」)
- !フィルター結果の更新は
aria-live等で件数変化を通知する
テスト方法
キーボード / スクリーンリーダー / 自動チェック
| キー | 動作 |
|---|---|
| Tab | 各チップへ移動 |
| Enter / Space | 選択 / 解除をトグル |
- SR「トグルボタン、押されている / いない」とラベル・件数が読まれる
- 操作グレースケール表示でも選択がチェックで分かる
- 自動axe / Lighthouse で
aria-pressed・コントラストを確認
選択状態は aria-pressed で伝える
達成基準:WCAG 4.1.2 名前・役割・値
aria-pressed でトグル状態を伝える。SR が「押されている」と読む。
<button class="filter-chip" aria-pressed="true">教育機関</button>
aria-pressed が無いと、見た目が選択でも SR には状態が伝わらない。
<button class="filter-chip">教育機関</button> <!-- aria-pressed なし -->