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

ターゲットサイズが44×44ピクセルに届かないボタン

買い物かごのボタンは32ピクセル四方で、最低限の24ピクセルは満たすが44×44ピクセルには届かないため、手が震える人は押し損ねてしまう

WCAG 2.2
SC 2.5.5AAA· 2.1 で追加
必須とする規格
Section 508、EN 301 549、JIS X 8341-3 では必須ではない
問題あり min-width: 32px; min-height: 32px
アクセシビリティの問題を示した図: 筋力・可動域:また「+」に当たらなかった。
01

問題

手の震えがある人やヘッドポインターで操作する人が、32ピクセルのボタンを押し損ね、何度もやり直す

02

試してみる

「手の震え」をオンにして、「+」で数量を5にしてみましょう

「手の震え」をオンにすると、クリックやタップが狙った位置から最大20ピクセルずれ、実際に当たった位置に印が付きます。ボタンに当たれば緑の点、外れれば赤い輪です。「+」の真ん中を狙ってください。32ピクセルのボタンでは外れることがありますが、44ピクセルなら同じ狙い方で毎回当たります。

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

問題4ピクセル間隔の32ピクセルのボタン
リネンのナプキン 数量2

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

03

修正方法

どのターゲットも44×44ピクセル以上にする

修正前
問題4ピクセル間隔の32ピクセルのボタン
<div class="line-actions">  <button type="button" aria-label="数量を減らす">−</button>  <button type="button" aria-label="数量を増やす">+</button>  <button type="button" aria-label="リネンのナプキンを削除">×</button></div>
問題点3点
  • 各ターゲットは32×32ピクセルで、縦横とも44ピクセルに12ピクセル足りません。
  • ボタンの中心から上下左右に16ピクセルより離れたタップは、ボタンに当たりません。
  • 4ピクセルの間隔は役に立ちません。ターゲットの周りの余白は、2.5.5では数えないためです。
修正後

ボタンを44ピクセルにする

<div class="line-actions">  <button type="button" aria-label="数量を減らす">−</button>  <button type="button" aria-label="数量を増やす">+</button>  <button type="button" aria-label="リネンのナプキンを削除">×</button></div>
修正の手順3ステップ
  1. 各ボタンの min-width と min-height を44ピクセルにします。見えているボタン全体がクリック範囲なので、どこまで押せるかが分かります。
  2. flex-shrink: 0 はそのまま残し、狭い画面でボタンが44ピクセルより縮むのを防ぎます。
  3. 間隔を8ピクセルに広げ、大きくなったボタンが一つの塊に見えないようにします。

これで修正前の例は直り、2.5.5を満たします。2.5.8も同時に満たします。HTMLは変わりません。

04

デザインの案

44ピクセルのターゲットでも、軽やかに見せられる

買い物かごの行を重く見せずに、ターゲットを44ピクセルにする方法を2通り、よく見かけるのに届かない描き方を2通り並べました。それぞれにポインターを重ねるか、Tabで移動してください。現れる塗りが、クリックを受ける範囲です。

デザインファイルで

  • 文の外にあるボタンとリンクは、タップを受ける範囲で測って44×44ピクセル以上に描く。
  • アイコンがボタンより小さいときは、ホバーしたときにだけ見える形であっても、44ピクセルのボタンの輪郭を描いておく。
  • 隣り合う44ピクセルの範囲が重ならないよう、間隔と、行の上下の余白を取る。
  • 丸いボタンは、直径44ピクセルの円ではなく、44ピクセル四方の中に描く。

合格

  • リネンのナプキン数量2
    44ピクセルのボタンに置いた、枠のないアイコン 普段は20ピクセルのアイコンしか見えないため、小さなボタンを並べたときと同じくらい軽やかです。アイコンはそれぞれ44ピクセル四方(角の丸み12ピクセル)の領域に収まり、ホバーやフォーカスでその領域が塗られます。隣どうしの領域は重なりません。
  • リネンのナプキン 2
    高さ44ピクセルの数量バー 「−」、数量、「+」を、枠線で囲んだ高さ44ピクセルのバー1本にまとめます。角の丸みはボタンとそろえ、三つのターゲットが一つのコントロールに見えるようにします。各ボタンは幅44ピクセルで、削除はバーから8ピクセル離した44ピクセル四方のボタンです。

不合格

  • 高さ32ピクセルのチップWCAG 2.5.5 ギフト包装などのオプションを、高さ32ピクセルの枠付きのピル形にし、8ピクセル間隔で並べます。Material Designのフィルターチップと同じ高さです。このレベルではチップの間の余白は数えないため、各チップを高さ44ピクセルにするか、範囲を44ピクセルまで広げます。
  • リネンのナプキン 数量2
    小さな文字の「あとで買う」と「削除」WCAG 2.5.5 商品の下の操作を、高さ28ピクセルの領域に収めた文字にし、文章の1行のように並べます。操作の並びは文ではないので、文中のリンクの例外には当たりません。どの操作にも高さ44ピクセルの領域を持たせます。
05

修正の確認

4項目

確認方法: ターゲットの測定、タッチ、マウス、拡大表示

4件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。共通のボタンのスタイルを変更した際は、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。レベルAAAをすべて求められることはまれですが、この基準のように、AAAの達成基準を一つずつ満たすことはできます。このガイドは1行に並んだアイコンボタンを扱っています。グリッド、スライダー、ドラッグ用のつまみは、別に確認が必要です。押しやすい大きさでも、押し間違いを取り消せなければ困ります。それについては「押した瞬間に実行され、キャンセルできないボタン」で説明しています。実際の利用者と端末で確認してください。

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

EaseWebのサービス

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

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

サービス内容を見る