Коротко — причина почти всегда не в iPhone «сам по себе», а в том, что вёрстка/скрипт на сайте на iOS/Safari блокирует касания: над меню лежит невидимый элемент (оверлей), или стек слоёв (z‑index / transform / position:fixed) ведёт себя иначе в Safari на iOS, либо скрипт обрабатывает/перехватывает touch‑события. Из‑за этого на iPhone нажатия не попадают до самой кнопки меню и до окна cookie.
Что проверить и как быстро найти/исправить
1) Быстрая проверка — это ли оверлей:
- Откройте сайт на iPhone, временно скрыв banner cookie (если умеете править CSS) — например через CSS в админке/доп.стиле:
.cookie-banner-class { display: none !important; }
Если после этого меню заработало — виноват баннер/оверлей.
2) Найти, какой элемент лежит над кнопкой (через удалённую отладку Safari):
- Подключите iPhone к Mac и откройте Safari — Develop → ваш iPhone → откройте страницу.
- В Console выполните document.elementFromPoint(x,y) (подставьте координаты точки на экране над кнопкой меню) — получите элемент, который стоит сверху и блокирует клики.
3) Типичные причины
- Невидимый элемент/оверлей (backdrop) с pointer-events: auto или без pointer-events, который блокирует касания.
- element с высотой/шириной 100% и z-index большим, чем меню (часто — модальные окна, cookie-баннеры, лоадеры).
- CSS transform на родительском элементе, который меняет контекст наложения и делает position:fixed/position:absolute элементы некликабельными в iOS.
- Скрипт, который перехватывает touchstart/touchmove и делает event.preventDefault() (иногда плагины cookie или мобильные меню так делают).
- Ошибки минификации/откладки JS (редко) — если Android работает, а iOS — нет, это всё равно чаще про CSS/покрытие.
4) Быстрое CSS‑исправление (пример, применяйте с учётом реальных селекторов на вашем сайте)
- Если оверлей мешает, сделайте его некликabельным, но видимым:
.overlay-selector { pointer-events: none !important; }
.overlay-selector .active-button { pointer-events: auto; } /* если внутри нужно кликабельность */
- Поднять меню выше:
.main-navigation, .site-header { position: relative; z-index: 99999; }
- Убрать проблемный transform у родителя (если найден):
.parent-with-transform { transform: none !important; -webkit-transform: none !important; }
5) Диагностика без Mac
- Откройте сайт в приватном режиме (чтобы отключить кеш/расширения).
- Отключайте плагины cookie/мобильного меню/кеширования по очереди (через админку WP) и смотрите, когда меню начнёт работать.
- Временно поменяйте тему на дефолтную (Twenty Twenty‑one/Two) — если заработало, проблема в теме.
6) Ещё полезный трюк (если есть доступ к файлам):
- Временно подключите «outline» для всех элементов, чтобы визуально увидеть, что накрывает:
* { outline: 1px solid rgba(255,0,0,0.15) !important; }
Это покажет невидимые блоки.
Если хотите, я могу помочь конкретнее:
- пришлите модель iPhone и версию iOS, или
- скажите название темы и список плагинов (особенно cookie/consent, мобильное меню, оптимизация/кеширование), или
- дайте доступ к CSS/скриптам или укажите селекторы cookie‑баннера и меню — и я напишу точные стили/патч.
Нужна помощь с конкретным CSS для вашего сайта? Присылайте селекторы или скажите, пробовали ли вы скрывать cookie‑баннер — и я предложу готовое исправление.