レンジスライダー

Range Slider

別名: デュアルスライダー、範囲スライダー、Dual-thumb slider、Min-max slider

生態(さわってみる)

価格帯(円)

¥2,000 〜 ¥7,000

実装上の制限: ネイティブHTMLに複数つまみのrange要素はないため、2本のinput[type=range]を 重ねる簡易実装です。同じ値付近ではつまみが重なり掴みにくくなります。

一言定義

2つのつまみを操作して最小値・最大値の範囲を同時に指定する入力UI。

分類

使う場面

  • 価格帯・日付範囲など、最小値と最大値を同時に指定させたいとき
  • EC商品検索の絞り込みなど、範囲指定がその場で結果に反映されるとき

避ける場面

  • 単一の値だけを調整すればよいとき(→スライダー)
  • つまみの正確な数値をキーボードで打ち込ませたいとき(→2つのテキストフィールドや数値ステッパー)

近縁種との比較

スライダーとの違いはつまみの数で、単一値の調整はスライダー、価格帯や日付範囲のように 最小値・最大値を同時に指定したい場合はレンジスライダーを使う。ネイティブHTMLには複数つまみの range要素が存在しないため、2本のinput[type=range]を重ねる簡易実装か、独自にrole=“slider”を 2つ描画するカスタム実装のいずれかが必要になる、という実装上の制約が付きまとう。

実例リンク

アクセシビリティ

role
2つの input[type="range"] を重ねる実装、またはカスタムなら role="slider" を2つ(各々に aria-valuemin/aria-valuemax/aria-valuenow)
キーボード操作
各つまみにTabで個別に到達、矢印キーでそのつまみのみ移動
補足
ネイティブ<input type=range>を2本重ねる実装は手軽だが、値が近いとつまみが重なり掴みにくくなる制限がある。本格運用では専用ライブラリかカスタムslider実装が必要になることが多い