PageSpeed Insights の点数をよくするため、このサイトの改修を行っていたのですが、その中でいくら調整しても「タップ ターゲットのサイズや間隔は十分な大きさではありません。」の警告が消えないことがありました。結論から書くと content-visibility: auto; を設定したとき、 contain-intrinsic-size: 80px; と小さかったため、スクロールしていない状態では内部で要素が重なってレンダリングされていたようです。 contain-intrinsic-size: 300px; としたらエラーなしで 100 点に戻りました。その原因発見までの備忘録です。 2024 年 6 月のことです。

デザインを変えていないのにユーザー補助で警告が出る

DOM の数を減らすべく HTML と CSS を改修し Grid レイアウトに変更して PageSpeed Insights で計測していたら、配置や色の変更は行っていないにも関わらず、 100 点だったユーザー補助が 92 点に下がってしまいました。

Grid レイアウトにしたら 100 点だったユーザー補助が 92 点になってしまった

上図のように「ユーザー補助」の項目に「背景色と前景色には十分なコントラスト比がありません」と「タップ ターゲットのサイズや間隔は十分な大きさではありません。」警告が出るようになりました。

背景色と前景色には十分なコントラスト比がありません

背景色と前景色には十分なコントラスト比がありません

Grid レイアウトを採用し HTML と CSS の改修をおこなったら「ユーザー補助」の項目に「背景色と前景色には十分なコントラスト比がありません。」と警告が出るようになっていまいました。指摘された要素を Chrome で確認してもコントラストの警告は出ていません。どうしていいのかわからないので、 Gemini に聞きながら、その要素そのものに背景色をつけたりしたり、 body の背景色を濃くしたり、テキストシャドーをつけたりして、コントラストで合格するよう CSS を修正しました。

タップ ターゲットのサイズや間隔は十分な大きさではありません。

タップ ターゲットのサイズや間隔は十分な大きさではありません

しかしもう 1 つ出ていた「タップ ターゲットのサイズや間隔は十分な大きさではありません。」がいくら調整しても合格しません。 Gemini に聞いたりして padding や margin の調整を実践しても全然改善されずまた別の警告が出てきます。そしてサイトのデザインが崩れまくりました。本末転倒もよいところです。

Lighthouse でスクロールしながら計測したらユーザー補助が 100 点だった

そんなとき Chrome に Lighthouse という PageSpeed Insights をローカルで動かすような機能があるのを知りました。いちいち修正ファイルをサーバーに上げなくてもいいから楽に確認できます。そして Lighthouse で計測中に誤ってマウスをスクロールしてしまったら、なんとユーザー補助が 100 点になったのです。もうびっくりです。

ここから考えられうのはただひとつ。表示を早くしようと追加した content-visibility: auto; です。これは見えない部分のレンダリングをサボるプロパティです。必ず仮の高さを指定するように書いてあったので、 contain-intrinsic-size: 80px; としていました。 PageSpeed Insights や Lighthouse は contain-intrinsic-size のサイズを元にレンダリングするらしく、スクロールしていない状態では高さが足りず要素が重なっていると判断されたようです。 contain-intrinsic-size に設定する値は大きすぎるくらいでちょうどいいです。

contain-intrinsic-size の値が原因かの見分け方

遠くに配置されている要素がひとまとまりで警告が出ている

contain-intrinsic-size の設定値が適切ではなくて警告が出ている場合の見分け方ですが、画面で見たとき要素が遠いのに同じ背景色の中でひとまとまりに表示されている場合は contain-intrinsic-size のサイズを大きくすれば解決します。

ユーザー補助が 100 点に戻った

contain-intrinsic-size を大きくしたらユーザー補助が 100 点に戻った

修正を加えた CSS をバックアップから元に戻し、 contain-intrinsic-size を 80 px から 300 px にしたら、エラーなしで 100 点になりました。

Gemini によるとこのことは海外も含めどこにも情報が出ていないようです。まあここに書いたら、 AI に取り込まれるんでしょうけどね。

関連記事

PageSpeed Insights で全項目で 100 点取った話 〜サイトの高速化
WordPressWeb制作
thumbnail PageSpeed Insightsにてオール100
サイトの画像形式を WebP に変更してパフォーマンスを改善した
Web制作Webサービス
thumbnail PageSpeed Insightsでパフォーマンスが67点
遅延読み込みで Google AdSense を貼っていても PageSpeed Insights の点数を上げる
WordPressWeb制作
thumbnail アドセンス遅延読み込み後:スコア98点
jQuery で容量の大きい JSON を配列に代入するときは注意!
Web制作
thumbnail Web & Internet
【調査】 Yahoo! ブログ検索にインデックスされている WordPress 共通点は何か?【その 3 】
WordPressWeb制作
thumbnail ぼやき
Seesaa blog のタグクラウドが Windows IE から見たときに行間が狭くなる件
Web制作
thumbnail Windows IEの元の表示