Amazonで商品を見る セール会場へ

WordPress│iOSでリンクを2回タップしないと反応しない現象の直し方

wordpress-ios-ontouchstart

iPhoneで1回目のタップがhover状態の表示に使われ、2回目で移動することがあります。ただし、透明な重なり要素やJavaScriptのpreventDefaultでも似た症状が出ます。空のtouchstartイベントを全ページへ加える方法を万能な対策として使うのは避け、原因を分けて修正します。

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

hoverによる表示変更を確認する

問題のリンクに適用される:hoverで、子要素や疑似要素のdisplay・visibilityが変わっていないか調べます。コピー環境でそのルールを外して1回で移動するか確認してください。端末幅だけでタッチ端末と判断せず、マウスでのhover装飾を次のメディア条件へ限定します。

.waza-tap-link { display: inline-block; padding: .8em 1em; text-decoration: underline; }
.waza-tap-link:focus-visible { outline: 3px solid #315d50; outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
  .waza-tap-link:hover { background: #edf3ef; }
}

既存の該当:hoverルールを置き換えます。上から追加するだけでは元のルールは無効になりません。クラス名は対象リンクにだけ付け、子テーマのCSSまたは追加CSSへ記載します。

操作できる見本

同じページの確認位置へ移動

移動先です。リンクは通常のa要素で、クリックをJavaScriptで取り消していません。

CSSで直らない場合

重なった要素がタップを受け取っていないか、クリックハンドラーが移動を取り消していないか確認します。メニューの開閉とリンク遷移を1つの要素に兼用させている場合は、開閉ボタンと移動リンクを分けます。プラグイン本体を直接書き換えると更新時に失われるため、提供元の修正や設定を確認してください。

iOS Safariの実機で1回タップ、PCでクリック、キーボードでTabとEnterを確認します。この見本のデスクトップブラウザ確認はiOS実機の再現検証の代わりにはなりません。戻す場合は追加クラスとCSSを外し、元のルールをバックアップから戻します。

hoverメディア特性の仕様を参照してください。

  • URLをコピーしました!

自力で解決できないときは

WordPressのエラー・不具合対応

原因の切り分けから復旧、再発防止の設定まで承ります。1時間 ¥5,000〜(税込)。管理画面に入れない、表示が崩れるといった急ぎのご相談にも対応します。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressのエラー・不具合対応のサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次