楽天セール開催中!ポイント最大11倍! セール会場へ

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メディア特性の仕様を参照してください。

目次

よくある質問:iOSでリンクを2回タップしないと反応しないとき

iPhoneでリンクを2回タップしないと移動しないのは、なぜですか?

記事では、1回目のタップがhover状態の表示に使われ、2回目で移動することがあるとされています。ただし、透明な重なり要素やJavaScriptのpreventDefaultでも似た症状が出るため、原因を分けて修正します。

空のtouchstartイベントを全ページに加えれば直りますか?

記事では、空のtouchstartイベントを全ページへ加える方法を万能な対策として使うのは避け、原因を分けて修正するとされています。

まず何を確認すればよいですか?

問題のリンクに適用される:hoverで、子要素や疑似要素のdisplay・visibilityが変わっていないか調べます。コピー環境でそのルールを外して、1回で移動するか確認してください。

hoverの装飾は、どう直しますか?

端末幅だけでタッチ端末と判断せず、マウスでのhover装飾を記事のメディア条件へ限定します。既存の該当:hoverルールを置き換え、上から追加するだけでは元のルールは無効になりません。クラス名は対象リンクにだけ付け、子テーマのCSSまたは追加CSSへ記載します。

CSSで直らない場合は、どうしますか?

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

修正後は、何を確認しますか?

iOS Safariの実機で1回タップ、PCでクリック、キーボードでTabとEnterを確認します。記事の操作見本のデスクトップブラウザ確認は、iOS実機の再現検証の代わりにはなりません。

元に戻すには、どうしますか?

追加したクラスとCSSを外し、元のルールをバックアップから戻します。hoverメディア特性の最新の仕様は、記事が案内する仕様ページで確認してください。

  • URLをコピーしました!

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

WordPressのエラー・不具合対応

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

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

サービス

Service

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

目次