Как отключить масштабирование области просмотра в Mobile Safari?

Я пробовал все три из них, но безрезультатно:

<meta name=”viewport” content=”width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;” />

<meta name=”viewport” content=”width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=false;” />

<meta name=”viewport” content=”width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;” />

каждое из них - разные значения, рекомендованные поиском в Google или поиском SO, но ни одно из значений 'user-scalable = X, похоже, не работает

Я также пробовал разделять значения запятыми вместо точки с запятой, не повезло. Затем я попытался ТОЛЬКО иметь значение user-scalable, но все равно не повезло.


ОБНОВЛЕНИЕ

Получил это с сайта Apple, и он работает:

<meta name="viewport" content="width=device-width, user-scalable=no" />

Оказывается, проблема заключалась в нестандартных кавычках, потому что я скопировал метатег с веб-сайта, который их использовал, упс


person Ryan    schedule 08.12.2010    source источник
comment
Если вы делаете игру, возможно, можно управлять масштабированием. Однако почти во всех других случаях это не рекомендуется. К сожалению, это стало стандартной практикой для многих мобильных разработчиков. Если пользователь хочет увеличить масштаб, чтобы было легче читать текст и т. Д., Препятствовать ему делать это не очень приятно.   -  person user2268788    schedule 23.01.2015
comment
Мы отключаем масштабирование в мобильном веб-приложении. Вы не можете увеличивать масштаб в собственных приложениях iOS, и это не требуется в нашем веб-приложении. Если ваш сайт или приложение оптимизированы для мобильных устройств, пользователям не нужно увеличивать масштаб. Всегда есть варианты использования для отключения масштабирования. Не обязательно всегда быть так или иначе.   -  person Bradley Flood    schedule 05.02.2015
comment
Масштабирование стало популярным (а не изобретено) в 2007 году, когда для решения проблемы был представлен iPhone, когда мобильные веб-сайты предлагали только адаптивные версии своего сайта с пользовательским агентом или приемы прослушивания событий javascript вместо версий с адаптивным дизайном, которые сегодня считаются само собой разумеющимися. благодаря CSS3 в 2008 году. До появления наших мобильных веб-сайтов с поддержкой HTML 5 Интернет на мобильных устройствах считался детской сетью, и все было крошечным для чтения. Теперь, когда требуется масштабировать ЛЮБОЙ контент или приложение, они должны использовать встроенное масштабирование устройства здесь: support.apple.com/en-us/HT203332   -  person Evan    schedule 23.10.2015
comment
Да, я не следую логике, согласно которой отключение масштабирования на сайте, оптимизированном для мобильных устройств, - это плохо. Что еще хуже, так это случайное панорамирование окна просмотра, потому что экран принимает случайные входные данные панорамирования и масштабирования на сайте, который в любом случае не требует масштабирования. На самом деле, если вашим пользователям нужно увеличить контент на вашем оптимизированном для мобильных устройств сайте, проблема заключается в дизайне, а не в отсутствии масштабирования.   -  person Nathan Hornby    schedule 28.01.2016
comment
попробуйте shrink-to-fit = no в метатеге области просмотра   -  person ursuleacv    schedule 18.04.2016
comment
@NathanHornby: Проблема отключения масштабирования - это неуважение к предпочтениям пользователя. Разные пользователи предпочитают разные размеры текста, более молодая аудитория с хорошим зрением может предпочесть видеть больше контента, в то время как аудитория с плохим зрением не может использовать ничего, что не имеет гигантского текста. У других людей есть болезнь Паркинсона, но они все еще имеют хорошее зрение, поэтому они предпочитают очень большие кнопки, но в целом не получают выгоды от крупного текста.   -  person Lie Ryan    schedule 10.10.2016
comment
@Lie Ryan. Это очень хорошие сценарии использования, но я считаю, что они по-прежнему учитываются в хорошем дизайне. Глобальные атрибуты доступности, такие как размер текста и экран масштабирование, я определенно рассматриваю как предпочтения пользователя, но возможность панорамирования / масштабирования веб-страницы не является функцией специальных возможностей, это функция интерфейса. Также имейте в виду, что у масштабирования Safari есть верхний предел, и он не такой высокий, поэтому в любом случае он не очень хорошо работает в качестве «увеличительного стекла» для пользователей с проблемами зрения. Случайное панорамирование / масштабирование - проблема, с которой сталкиваются все пользователи, в том числе и те, кому требуется повышенная доступность.   -  person Nathan Hornby    schedule 11.10.2016
comment
@LieRyan - сначала мобильные, и методы обеспечения доступности.   -  person Mark Carpenter Jr    schedule 22.05.2017
comment
@NathanHornby: Если бы ваш дизайн был настолько совершенен, что все время подходил всем пользователям, люди не пытались бы увеличивать масштаб. Если они пытаются увеличить масштаб, то, очевидно, у них есть для этого какие-то причины. Если у вас нет какой-либо конкретной технической причины для необходимости блокировать масштабирование щипком, НЕ БЛОКИРУЙТЕ МАСШТАБИРОВАНИЕ ЩЕЛЧКОМ!   -  person user1751825    schedule 18.07.2017
comment
@ user1751825 вы, кажется, пропустили меня, используя слово «случайно». Если ваш веб-сайт разработан правильно и оптимизирован для мобильных устройств, масштабирование почти наверняка случайным. Блокируя возможность, вы предотвращаете ошибку пользователя. Если вашим пользователям нужно увеличить масштаб вашего сайта, оптимизированного для мобильных устройств, значит, вы сделали что-то не так. Этот предмет - мертвая лошадь.   -  person Nathan Hornby    schedule 19.07.2017
comment
@NathanHornby Это не значит, что дизайнер обязательно сделал что-то не так. Это просто означает, что пользователь по какой-либо причине хочет увеличить масштаб. Масштабирование пальцем - стандартная функция всех телефонов с сенсорным экраном. Любой пользователь, владеющий таким телефоном, знает, как им пользоваться. Я знаю, что это старый вопрос, но меня все еще беспокоят всезнайки-разработчики, которые настаивают на нарушении функциональности моего телефона, потому что думают, что это делает их дизайн лучше.   -  person user1751825    schedule 20.07.2017
comment
@ user1751825 Это не имеет ничего общего с улучшением внешнего вида, поскольку покрывает его предотвращение нежелательного поведения. Повторюсь, правильно спроектированный веб-сайт, оптимизированный для мобильных устройств, не требует масштабирования и масштабирования. Если проблема серьезная, то щипок и масштабирование - плохое решение, это не то, как пользователи с проблемами зрения используют мобильные телефоны. Буквально единственная цель увеличения и уменьшения масштаба в браузере - дать пользователю возможность перемещаться по медиафайлам и страницам, которые НЕ были оптимизированы для мобильных устройств. Отключение функций с целью, которая не требуется, чтобы избежать непреднамеренного поведения, - это хороший дизайн.   -  person Nathan Hornby    schedule 24.08.2017
comment
ИМО, это пропаганда Apple, маскирующаяся под принцип доступности через WCAG. Щипок для увеличения - это хитрость, позволяющая обойти неудачный выбор дизайна при первоначальном рендеринге. stackoverflow.com/questions/49589861/   -  person Marvin Danig    schedule 02.04.2018
comment
Ничего себе, я еще не видел этого на SO - вопрос, основанный на опечатке, который должен быть закрыт, может иметь почти 300 голосов. Из-за опечатки, лол!   -  person Daniel W.    schedule 06.06.2018
comment
Браузеры используются не только для обычных веб-страниц, например, для веб-приложений. А как насчет полноэкранного рисования на холсте с фиксированными элементами навигации? Пользователь ожидает, что полное управление жестами будет только в рабочей области холста. Несмотря на фиксированный заголовок, они не ожидают, что весь контейнер страницы разлетится в разные стороны.   -  person MarsAndBack    schedule 25.06.2020
comment
Блокировка масштабирования для пользователей веб-страниц демонстрирует вопиющее игнорирование доступности, независимо от того, оптимизирован ли контент для мобильных устройств. Невозможно оптимизировать какой-либо контент для всех людей, особенно это касается людей с проблемами зрения. Сайт (или приложение в этом отношении) не оптимизирован, если он не позволяет пользователю увеличить минимальный размер шрифта (как минимум). Утверждение, что случайное панорамирование хуже, не поддерживается. Универсального доступа не существует, и отключение масштабирования происходит автоматически.   -  person Myndex    schedule 23.12.2020
comment
Если вы делаете игру, возможно, можно управлять масштабированием. Однако почти во всех других случаях это не рекомендуется. Кто вас просил?   -  person Peter Moore    schedule 03.07.2021


Ответы (17)


Ваш код отображает двойные кавычки атрибутов как причудливые двойные кавычки. Если в вашем фактическом исходном коде присутствуют причудливые цитаты, я бы предположил, что это проблема.

У меня это работает в Mobile Safari в iOS 4.2.

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
person BoltClock    schedule 08.12.2010
comment
это были причудливые цитаты, я скопировал тег с веб-сайта, не заметив этого, спасибо, что указали на это! - person Ryan; 08.12.2010
comment
Это было большим подспорьем. Я использовал минимальный масштаб = 1.0, максимальный масштаб = 1.0, пока не понял, что iOS 6 Safari позволяет масштабировать пальцем в полях ввода, но не на страницах без ввода. Добавление масштабируемого пользователем = не исправлено. - person Adam; 01.11.2012
comment
Возможно, здесь речь идет о длинном хвосте, но, возможно, стоит отметить, что это необходимо применить на странице верхнего уровня. Если у вас есть этот метатег, примененный к iframe, он не будет работать, если метатег также не будет применен к самой верхней странице. - person founddrama; 11.02.2013
comment
Спасибо за это. Об этом много дезинформации. Ваш пример отлично работает. - person jamesnotjim; 12.03.2013
comment
Я не понимаю, зачем кому-либо создавать программу, которая создает причудливые цитаты. - person ASA; 23.06.2015
comment
@Traubenfuchs: Типографика. - person BoltClock; 23.06.2015
comment
вам также нужно использовать ‹meta name = viewport content = user-scaleable = no /›? - person SuperUberDuper; 13.08.2015
comment
Это довольно старый ответ, и я подошел к проблеме, которую я прочитал, что если вы установите для параметра user-scaleable значение no, это вызовет проблемы с доступностью. Начиная с iOS 10, он работает нормально, позволяя пользователю увеличивать масштаб, если он хочет, но не масштабирует поле ввода в противном случае. Также не нужно устанавливать большие размеры шрифта. - person David; 26.07.2017
comment
@David: Если он позволяет пользователю увеличивать масштаб, если он хочет, то он больше не работает, не так ли? В конце концов, смысл user-scalable = no в том, что он должен запретить пользователю вручную масштабировать область просмотра. - person BoltClock; 26.07.2017
comment
@BoltClock - он работает не так, как предполагалось, но, с моей точки зрения, он делает именно то, что я хочу. Это предотвращает автоматическое масштабирование, когда пользователь щелкает ввод, но позволяет ему масштабировать себя (и многократно). Должен признаться, я был удивлен результатом, когда добавил три аргумента масштаба к атрибуту содержимого в метатеге. Я перепроверил это на iPhone 5 и 6, работающих под управлением iOS 10.3.3. На рассматриваемых страницах используется ввод типа = число, который не является частью формы, например motif.gla.ac.uk/FTB-R/sigfigs.html. Я еще не проверял ввод type = text. - person David; 26.07.2017
comment
@BoltClock - Я только что видел все другие комментарии / сообщения о том, что Apple отключила user-scalable = no, поэтому мой первоначальный комментарий, хотя и предназначался для того, чтобы быть полезным, был старой новостью. Извините. Очевидно, что если вы находитесь в другой ситуации и у вас есть веская причина, чтобы подавить зум-масштабирование пользователем, это облом. Для меня возможность предотвратить автоматическое масштабирование - это все, о чем я заботился, и это серьезное улучшение HCI. - person David; 26.07.2017
comment
@ Дэвид: А, я согласен с этим. - person BoltClock; 26.07.2017
comment
Этот ответ не работает в более новых версиях iOS, как многие отметили здесь в комментариях. Однако можно заставить это работать в более новых версиях iOS, используя свойство touch-action CSS. См. Мой ответ: stackoverflow.com/a/62165035 - person Feross; 03.06.2020

Для людей, которые ищут решение для iOS 10, user-scaleable=no отключен в Safari для iOS 10. Причина в том, что Apple пытается улучшить доступность, позволяя людям увеличивать масштаб веб-страниц.

Из примечаний к выпуску:

Чтобы улучшить доступность веб-сайтов в Safari, пользователи теперь могут увеличивать масштаб, даже если веб-сайт устанавливает user-scaleable = no в области просмотра.

Так что, насколько я понимаю, нам не повезло.

person Mattis    schedule 09.08.2016
comment
Какое ужасное решение Apple. Использование счетчика с кнопками - и + для уменьшения / увеличения числа теперь многократно увеличивает и уменьшает масштаб страницы в iOS Safari. Нажатие интерпретируется как двойное касание для увеличения, без возможности отключить это. iOS Chrome работает отлично. Раздражающий. - person Paul; 23.10.2016
comment
Хотя меня облажало это решение, но я действительно счастлив от Apple как пользователь, так как я хотел включить эту функцию на многих веб-сайтах, которые использовали небольшие элементы внутри. - person Bishoy Hanna; 08.11.2016
comment
мир идет в ад - person little tiny man; 28.03.2017
comment
О боже, кто бы мог подумать? Еще один нелепый выбор Apple - person Emil Pedersen; 11.12.2017
comment
Предоставьте Apple возможность принудительно включить функцию специальных возможностей для всех, а не просто добавлять ее в настройках Специальные возможности ... - person Lennholm; 19.02.2018
comment
stackoverflow.com/questions/49589861/ - person Marvin Danig; 02.04.2018
comment
Это можно заставить работать в более новых версиях iOS, используя свойство touch-action CSS. См. Мой ответ: stackoverflow.com/a/62165035 - person Feross; 03.06.2020
comment
Apple ненавидит веб-приложения; они хотят, чтобы мы все делали нативные приложения для iOS. Вот почему они держат Safari на грани устаревания, но по-прежнему заставляют всех его использовать. У нативных приложений здесь нет проблем; если вы хотите, чтобы элемент реагировал на жесты сжатия, вы разрешаете им; в противном случае вы этого не сделаете. В чем тут проблема доступности? Все это вздор. - person Peter Moore; 03.07.2021

@mattis правильно, что iOS 10 Safari не позволит вам отключить масштабирование с помощью масштабируемого пользователем атрибута. Однако у меня есть возможность отключить с помощью preventDefault событие «gesturestart». Я проверил это только в Safari в iOS 10.0.2.

document.addEventListener('gesturestart', function (e) {
    e.preventDefault();
});
person jeremypress    schedule 26.09.2016
comment
Хороший вариант, надеюсь, это стабильное решение. - person Mattis; 02.10.2016
comment
У меня это не сработало на iOS10, не могли бы вы привести работающий пример? - person Patrick Winkelmayer; 07.10.2016
comment
В iOS 10 я обнаружил, что это работает, но если вы прокручиваете страницу, а затем увеличиваете масштаб во время прокрутки, это позволяет масштабировать. Затем вы застреваете на новом уровне масштабирования, пока снова не прокрутите. Так что это не похоже на хорошее решение, если тело вашей страницы не прокручивается. :( - person Rand Scullard; 07.10.2016
comment
@RandScullard хороший улов, не знаю, как часто это происходит, но это определенно нарушает этот метод. Я бы действительно предложил изменить значение по умолчанию только в том случае, если вы предоставляете свой собственный способ масштабирования страницы. - person jeremypress; 10.10.2016
comment
Одно предостережение: пользователь все еще может дважды коснуться экрана, который будет / может увеличиваться, и это не поймёт. - person Stephen; 22.10.2016
comment
Еще иногда позволяет масштабирование двойным касанием экрана. :( - person Jarzka; 24.11.2016
comment
Что такое двойное нажатие, эквивалентное gesturestart? dblclick? - person lowtechsun; 19.01.2017
comment
Стоит отметить, что ответ Артура stackoverflow.com/a/42780478/1283556 решает проблему прокрутки, поскольку он позволяет уменьшить масштаб без повторной прокрутки - person Craig; 27.03.2017
comment
Еще одно замечание, если вы хотите отключить аспект масштабирования двойным касанием. Mobile Safari также поддерживает «touch-action: манипуляция» (подпадает под «базовую поддержку», которая отключает события двойного касания. Документация здесь: developer.mozilla.org/en-US/docs/Web/CSS/touch-action - person jeremypress; 30.07.2017
comment
Я не знаю, ребята, но это звучит как плохая идея. Я думаю, что решение Apple не отключать масштабирование было неспроста. То же, что и outline: none Некоторые пользователи пострадают. - person Arnaldo Capo; 25.09.2017
comment
Также работает с iOS версии 11 - person CandleCoder; 12.10.2017
comment
Это сработало для меня, решив проблему с масштабированием изображения на веб-сайте .... Спасибо - person Gabbr Issimo; 08.02.2019

Использование свойства CSS touch-action - наиболее элегантное решение. Проверено на iOS 13.5 и iOS 14.

Чтобы отключить жесты масштабирования щипком и и дважды коснитесь для увеличения:

body {
  touch-action: pan-x pan-y;
}

Если вашему приложению не требуется панорамирование, то есть прокрутка, используйте следующее:

body {
  touch-action: none;
}
person Feross    schedule 03.06.2020
comment
единственный способ заставить его работать на IOS 13.6.1 спасибо! - person Peter Poufsoufle; 20.08.2020
comment
Это текущий ответ. - person Corey; 31.08.2020
comment
NB не работает на iOS 12 и ниже (которая все еще довольно популярна). - person Code; 03.12.2020
comment
Пробовал без эффекта, масштабировать все равно можно. iPhone6sp iOS 13.6 (17G68). - person gonnavis; 11.12.2020
comment
touch-action: pan-x pan-y, к сожалению, тупой и сломанный. Если вы ущипнете его несколько раз, изображение все равно будет увеличиваться примерно в 5% случаев. - person BonzaiThePenguin; 25.12.2020
comment
Использование touch-action: pan-x pan-y; по-прежнему позволяет масштабировать при прокрутке. Если ваш пользователь неохотно увеличивает масштаб с помощью этого метода, он застрянет в увеличении. Не хорошая идея. - person DatGeoudon; 28.01.2021

для iPhone Safari до iOS 10 "область просмотра" не является решением, мне не нравится этот способ, но я использовал этот код javascript, и он мне помог

 document.addEventListener('touchmove', function(event) {
    event = event.originalEvent || event;
    if(event.scale > 1) {
      event.preventDefault();
    }
  }, false);
person Arthur Tsidkilov    schedule 14.03.2017
comment
Это должно быть event.scale !== 1 - person aleclarson; 30.04.2017
comment
@aleclarson event.scale ›1 включает условие event.scale! == 1 - person Arthur Tsidkilov; 30.04.2017
comment
@aleclarson для предотвращения масштабирования в Mobile Safari, этого достаточно, я написал, что мне не нравится этот способ, обычно для него нужно использовать окно просмотра, но на IOS iphone 6 и выше он не работает (я думаю, ваш event.scale ! == 1 должно быть правильнее, но все это не правильно, это своего рода взлом) - person Arthur Tsidkilov; 03.05.2017
comment
@aleclarson Похоже, использование! == ломает собственный браузер в Android 4.4; event.scale не определен. - person James Pizzurro; 20.06.2017
comment
@JamesPizzurro Да, вы можете использовать event.scale !== undefined && event.scale !== 1 - person aleclarson; 20.06.2017
comment
iOS 13 измените false на {passive: false} - person wayofthefuture; 23.12.2019

Я заставил его работать в iOS 12 со следующим кодом:

if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {
  window.document.addEventListener('touchmove', e => {
    if(e.scale !== 1) {
      e.preventDefault();
    }
  }, {passive: false});
}

С первым оператором if я гарантирую, что он будет выполняться только в средах iOS (если он выполняется в Android, поведение прокрутки будет нарушено). Также обратите внимание, что для параметра passive установлено значение false.

person José Antonio Postigo    schedule 22.08.2019

user-scalable=0

Это больше не работает на iOS 10. Apple удалила эту функцию.

Вы не можете отключить веб-сайт масштабирования на iOS сейчас, если только вы не создадите приложение для общей платформы.

person angry kiwi    schedule 05.02.2017
comment
Такой облом ... Есть идеи, почему они удалили это? - person Stephen Tetreault; 06.02.2017
comment
@smt они не хотят, чтобы веб-опыт конкурировал с опытом приложений в магазине приложений. - person Marvin Danig; 06.04.2018
comment
@marvindanig да ... поскольку они берут 99 долларов за создание приложения, которое можно было бы легко сделать более доступным веб-приложением для любой платформы. Apple также не может любить веб-интерфейс, если это означает, что пользователи и разработчики могут избегать огороженного сада. Все дело в силе и деньгах Apple :( - person humanityANDpeace; 13.09.2018
comment
На самом деле возможно заставить это работать в более новых версиях iOS. См. Мой ответ: stackoverflow.com/a/62165035 - person Feross; 03.06.2020

Попробуйте добавить в свой заголовок следующее:

<meta name="viewport" content="width=device-width, initial-scale=1.0, 
minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">

Кроме того

<meta name="HandheldFriendly" content="true">

Наконец, либо в качестве атрибута стиля, либо в вашем файле css добавьте следующий текст для браузеров на основе webkit:

html {
    -webkit-text-size-adjust: none
}
person Lorenz Lo Sauer    schedule 12.02.2015

Мне удалось остановить это поведение, добавив в заголовок HTML следующее. Это работает на мобильных устройствах, поскольку настольные браузеры поддерживают масштабирование при использовании колесика мыши. Это не имеет большого значения для настольных браузеров, но важно это учитывать.

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />

и следующее правило к таблице стилей CSS

html {
	-webkit-text-size-adjust: none;
	touch-action: manipulation;
}

person imelgrat    schedule 16.07.2018

На самом деле Apple отключила user-scaleable = no в последних версиях iOS. Я пробовал как руководство, и этот способ может работать:

body {
  touch-action: pan-x pan-y;
}
person Pham Duc Toan    schedule 18.11.2020

Это отлично работает в IOS 10.3.2.

    document.addEventListener('touchmove', function(event) {
        event = event.originalEvent || event;
        if (event.scale !== 1) {
           event.preventDefault();
        }
    }, false);

спасибо @arthur и @aleclarson

person Nikhil Gowda    schedule 09.06.2017
comment
iOS 13 измените false на {passive: false} - person wayofthefuture; 23.12.2019

В Safari 9.0 и более поздних версиях вы можете использовать сжимать по размеру в метатеге области просмотра, как показано ниже.

<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
person ursuleacv    schedule 18.04.2016

иногда эти другие директивы в теге content могут испортить лучшее предположение / эвристику Apple о том, как разметить вашу страницу, все, что вам нужно, чтобы отключить масштабирование пальцем.

<meta name="viewport" content="user-scalable=no" />
person Alex Borsody    schedule 25.09.2014

Как уже упоминалось, это решение в основном работает с конца 2020 года:

document.addEventListener(
    'gesturestart', (e) => e.preventDefault()
);

Но обратная сторона заключается в том, что пока вы прокручиваете, вы все равно можете зажать, а затем он застревает. Решение - отключить прокрутку.

body {
    overflow: hidden;
}

Но что, если вы все еще хотите, чтобы страница прокручивалась? Вы все еще можете сделать это с другим <div>, установленным как overflow:auto:

<body>
    <div id='app'></div>
</div>

а потом

body {
    overflow: hidden;
}

 #app {
     -webkit-overflow-scrolling: touch;
      height: 100vh;
      height: -webkit-fill-available;
      overflow: auto;
 }
person amin    schedule 29.10.2020

У меня по глупости был div-обертка, ширина которого измерялась в пикселях. Другие браузеры оказались достаточно умными, чтобы справиться с этим. После того, как я преобразовал ширину в процентное значение, она отлично работала и на мобильном Safari. Очень назойливый.

.page{width: 960px;}

to

.page{width:93.75%}

<div id="divPage" class="page">
</div>
person Welshboy    schedule 20.05.2018

Чтобы соответствовать требованиям доступности WAI WCAG 2.0 AA, вы должны никогда не отключать масштабирование щипком. (WCAG 2.0: SC 1.4.4 Изменить размер текста на уровне AA). Подробнее об этом можно прочитать здесь: Доступность для мобильных устройств: как WCAG 2.0 и другие Рекомендации W3C / WAI для мобильных устройств, увеличение / масштаб 2.2

person haltersweb    schedule 26.05.2015
comment
Это не ответ .. и многие клиенты все еще просят заблокировать масштабирование .. поэтому я не могу принять это как общее правило - person ; 16.06.2015
comment
Масштабирование специальных возможностей не является обязанностью страницы (ни какого-либо приложения в этом отношении). Операционная система обязана предоставить доступный инструмент масштабирования. В настоящее время каждая ОС предоставляет такую ​​функцию, которая применяется как масштабирование экрана, и она не должна мешать масштабированию самой страницы, потому что это не предназначено для доступности. - person Bruno Finger; 19.06.2015
comment
Я не согласен с комментариями выше. Я думаю, что отключение масштабирования пальцем в iOS и Android является явным критерием отказа 1.4.4 для WCAG уровня AA. Но, как и многое другое с WCAG, это спорно. - person Lachlan McD.; 24.08.2015
comment
Для подобных вещей всегда есть допустимые варианты использования. По какой-то причине почти вся веб-литература, кажется, предполагает, что Интернет предназначен только для создания блогов. Так же, как существуют допустимые варианты использования JavaScript eval(), существуют также и варианты отключения масштабирования. Я использую его для веб-приложения, которое используется в сочетании со сканером Bluetooth, чтобы предотвратить масштабирование страницы при сканировании штрих-кода. - person user5670895; 30.09.2015
comment
Я полностью согласен с целями рекомендаций по доступности, но нет никаких сомнений в том, что бывают случаи, когда масштабирование нежелательно или необходимо, или даже может нарушить работу пользователя. Плюс, знаете, клиенты. - person Chuck Le Butt; 12.10.2015
comment
Я бы сказал, что в приложении html / javascript эти рекомендации не применяются. В конце концов, разве собственное приложение позволит вам увеличивать и уменьшать масштаб? - person Jörgen Sigvardsson; 30.12.2015
comment
Вы поднимаете интересный вопрос, Йорген. Все зависит от того, должен ли данный HTML-сайт соответствовать рейтингу W3C WCAG 2.0 AA. Вот интересное чтение W3C: w3.org/TR/ mobile-accessibility-mapping / # zoom-magnification. Это подчеркивает различие между функциями уровня ОС и функциями уровня браузера. В нем также рассказывается о том, как можно использовать другие методы помимо масштабирования, если соблюдается следующий критерий: размер текста должен изменяться без вспомогательных технологий до 200 процентов. - person haltersweb; 13.01.2016
comment
Всегда есть случаи, когда отключение масштабирования имеет смысл. Например, в веб-приложении, созданном с помощью нативного приложения, вы не хотите, чтобы ваши клиенты могли увеличивать масштаб. - person chazthetic; 29.01.2016
comment
Я только что построил средство увеличения изображения на странице, на которой нет текста; переопределение масштабирования по умолчанию для обеспечения расширенных функций масштабирования кажется подходящим моментом для отключения масштабирования щипком в браузере. - person Conan; 19.10.2016
comment
Это не ответ. Кроме того, можно отключить собственное масштабирование и повторно реализовать его программно, сохраняя или даже улучшая доступность. - person Paolo; 12.12.2016
comment
Обходные пути решают половину проблемы, но по-прежнему не являются на 100% неразрушаемыми, имо было бы разумно иметь параметр браузера, например, отключить javascript, если указанные люди захотят это сделать. клиенты! - person Paddy; 20.12.2016

Этот должен работать на iphone и т. Д.

<meta name="viewport" content="width=device-width, initial-scale=1 initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
person Cihan Zengin    schedule 09.07.2017