Когда даже в мобильных браузерах есть JavaScript, действительно ли нужно учитывать потенциальных пользователей без скриптов?
Полезна ли постепенная деградация при отсутствии JavaScript?
Ответы (15)
да. Ваши веб-страницы не просто потребляются людьми: они потребляются поисковыми системами, сканерами и программами для сканирования экрана. Большинство этих автоматических инструментов не поддерживают Javascript, и по сути ни один из них не будет генерировать события пользовательского интерфейса или просматривать глубоко вложенные данные AJAX. Вы хотите иметь простой статический резервный HTML-код, по крайней мере, чтобы ваши веб-страницы были хорошо проиндексированы поисковыми системами.
Забудьте сумасшедших, отключающих Javascript; подумайте о роботах!
да.
Люди могут (и делают) просмотр с отключенным javascript. Если ваш сайт будет работать без того, чтобы пользователи явно включали для вас javascript, это их порадовало.
Насколько актуально, конечно, зависит от вашей целевой аудитории.
Я бы сказал, что вам не следует сильно изо всех сил стараться приспособиться к пользователям, не использующим JS, по следующим причинам:
Все современные браузеры поддерживают JS
Это снимок использования браузера сегодня:
http://www.w3schools.com/browsers/browsers_stats.asp
Даже самый старый из распространенных браузеров IE6 поддерживает базовый JavaScript и AJAX. Если вы решите не интегрировать определенные функции b / c зависимости JS, это доказывает, что вы, по сути, делаете это для людей, которые начали с включенным JavaScript и явно решили отключить его. Я думаю, этим людям следует ожидать, что некоторые функции и, возможно, даже целые сайты, как следствие, не будут работать.
Некоторые люди охотно отключают JS
Основываясь на моей точке зрения выше, среднестатистические пользователи Интернета не знают или не заботятся о том, что JS можно отключить в браузерах. Это в основном технически подкованная толпа, которая знает, как это сделать (в том числе и я), и, как технически подкованные пользователи, мы также должны знать, когда включить ее снова.
Стоимость поддержки
В свете вышеизложенного учтите, что решение разместить пользователей, которые в первую очередь добровольно отключили JS, обходится очень дорого. Если вы управляете большим проектом с высокими требованиями к пользовательскому интерфейсу, вы можете легко сжечь много часов разработчика, приспособившись к очень маленьким пользовательским предпочтениям. Проверьте свой бюджет. Если для выполнения этого подвига потребуется 2 разработчика, каждый из которых будет работать над проектом по 40 дополнительных часов, вы легко потратите несколько тысяч долларов на то, что по сути не является проблемой для подавляющего большинства ваших пользователей. Как насчет того, чтобы использовать это время и инвестиции для дальнейшего повышения своей основной компетенции?
Приоритет
Я вполне могу ошибаться в этом, но я думаю, что было бы трудно найти крупные средства массовой информации или социальные сайты, которые
не полагаются на JavaScript в части своих функций для работы. Если крупные компании, которые полагаются
на работу и доступность своего сайта, чтобы оставаться в бизнесе, не делают этого, есть большая вероятность, что это потому, что он не нужен.
ПЕЩЕРЫ:
Знайте свой рынок. Продолжайте создавать семантический XHTML / CSS (желательно, используя рекомендацию RDFa W3C). По-прежнему стремитесь сделать свои сайты доступными для слабовидящих. Не верьте всему, что читаете. ;)
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:
Мой аргумент выше во многом зависит от того, как вы определяете «постепенную деградацию». Если вы имеете в виду, что все ссылки по-прежнему работают, это одно, но если вы имеете в виду, что все ссылки по-прежнему работают, как и игра вомбаты, это другое. Я не пытаюсь спорить с тем, чтобы сделать ваш сайт настолько зависимым от JS, чтобы пользователи, не использующие JS, не могли получить доступ к какой-либо его части. Я пытаюсь привести аргумент в пользу приемлемости определенных функций, даже некоторых основных функций, которые зависят от JS.
Это актуально и будет актуально даже через 10-20 лет, когда javascript можно будет поддерживать повсюду. заставить вещи работать без javascript - важный метод разработки, потому что он заставляет вас делать вещи простыми и declarative
. в идеале javascript следует использовать только для улучшения восприятия, но ваш веб-сайт не должен зависеть от этого.
есть явное преимущество с точки зрения обслуживания - иметь большую часть кода в декларативном формате (html + css) и как можно меньше в императивном (javascript).
Моя позиция:
Я просматриваю страницы с помощью NoScript, поэтому, если я зайду на ваш сайт, я не буду использовать Javascript. Я не ожидаю полноценного взаимодействия с пользователем.
Прежде чем включать JS, я хочу убедиться, что вы достаточно компетентны и не злонамеренны, и что мне действительно нужно то, для чего вы используете JS.
Это означает, что если вы действительно хотите, чтобы я использовал ваш сайт, вы должны позволить мне осмотреться, используя ссылки. (Если я вижу сайт, который совершенно бесполезен без Javascript, я обычно думаю, что дизайнеры были некомпетентны.) Вы должны сообщить мне, какие функциональные возможности я получу от включения Javascript, и вы должны представить сайт в правильном виде. .
Я не думаю, что это слишком много, чтобы спрашивать.
изящная дегадация / прогрессивное улучшение / ненавязчивый javascript абсолютно актуален!
как и со всеми проблемами доступности: просто представьте на одну секунду, каково это быть тем, кто не может использовать страницу.
представьте, что вы путешествуете по миру, вы находитесь в каком-то отеле или интернет-кафе с действительно старыми компьютерами, старым программным обеспечением, старыми браузерами, вы хотите найти свой рейс и понимаете, что не можете из-за некоторой несовместимости javascript в старый браузер, который вы используете. (попробуйте «старый мобильный телефон» или «застрял за корпоративным брандмауэром» для разных сценариев)
Представьте, какой мир возможностей открывается слепым людям с помощью программ чтения с экрана и Интернета, и представьте, каково это, когда эти возможности снова закрываются из-за JavaScript.
так много для обращения к вашей лучшей природе.
вы также можете сделать это, чтобы ваш сайт оставался доступным для поисковых систем.
Да, актуально. В мобильных браузерах, используемых сегодня, не включен Javascript. Конечно, это доступно на новых телефонах. Но есть миллионы и миллионы людей, подобных мне, у которых есть телефоны с более старыми браузерами, и для всех нас работа в браузере, требующая JS, просто нарушена.
Я даже не беспокоюсь о посещении сайтов, которые при написании кода не имели в виду прогрессивное улучшение. Технически я не отстал от времени. Моему телефону год. Но я не собираюсь продлевать срок своего контракта и покупать новый телефон из-за того, что веб-интерфейс не работает.
Это зависит от того, кто ваша целевая аудитория. У меня по умолчанию отключен JavaScript, и я включаю его, когда знаю, в чем смысл сайта.
Обычно намного быстрее просматривать с отключенным Javascript (digg.com без JS молниеносно), поэтому он популярен.
В Opera это действительно просто: вы просто нажимаете F12 и снимаете галочку с опции javascript. Я всегда просматриваю страницы без Flash, Java (не javascript), анимированных изображений и звука. Я включаю Flash для отдельных сайтов, например YouTube. Иногда я временно отключаю JS, если моя система тормозит.
И не забывайте про:
- Программы чтения с экрана (думаю, у них в основном отключен JS)
- Текстовые браузеры или другие очень старые системы
- Блокировщики рекламы (если имя вашего файла попадает под их радар)
- Любой старый браузер, который либо вообще не поддерживает JS, либо ломается (например, IE6 не поддерживает некоторые современные JS-файлы).
Решение состоит в том, чтобы использовать прогрессивное улучшение, а не постепенное ухудшение, то есть начать с базового HTML и добавить CSS. Затем добавьте Javascript и / или AJAX к частям сайта.
Например, если у вас есть такой сайт, как Stack Overflow, голосование за ответ может отправить форму обычным образом. Если JS включен, он выполнит запрос AJAX, обновит счетчик голосов и отменит отправку формы, не покидая страницы. ТАК этого не делает ...
Я, например, всегда включаю NoScript, если я не доверяю сайту по ряду причин, включая межсайтовый скриптинг, кликджекинг и HTML-инъекцию. Я не параноик, это потому, что я знаю много разработчиков и знаю, что большинство из них не имеют представления, что такое веб-безопасность, не говоря уже о том, как избежать уязвимостей.
Так что, пока я не доверяю сайту, я не позволю ему делать что-нибудь необычное.
Для незнакомых есть несколько интересных записей в блогах на эту тему:
- Защита файлов cookie: HttpOnly
- Подделка межсайтовых запросов и вы
- Грехи безопасности программного обеспечения
- 25 самых опасных ошибок программирования
Я собираюсь привести аргументы в пользу другой стороны. Причины, по которым люди создают сайты без javascript, в значительной степени идеалистичны. Если у вас достаточно времени и денег, и цель достижима, ваш сайт обязательно откроется для максимально возможного количества людей. Однако на самом деле это замедлит вашу разработку, увеличит количество тестовых примеров, с которыми вам придется иметь дело, и в конечном итоге повлияет на качество вашего приложения для тех пользователей, которые действительно используют javascript.
На мой взгляд, вполне разумно сделать свой сайт совместимым только с браузерами, поддерживающими js, и сообщить тем пользователям, у которых его нет, что они упускают его. Это позволяет вам сконцентрироваться на создании многофункционального контента, который сможет просматривать большинство пользователей.
Конечно, из этого правила есть исключения, но если вы хотите создать хороший веб-сайт для большинства пользователей или у вас есть клиент, которому нужен яркий веб-сайт с ограниченным временем или деньгами, тогда вы принимаете решение, что это браузеры с поддержкой js. только разумный поступок.
На самом деле вопрос не в том, актуально ли это, а в том, использовать ли в качестве стратегии создания сценариев Graceful Degradation или Progressive Enhancement.
На самом деле, когда дело касается постепенной деградации JS, я нахожусь в интересном положении. Я работаю над веб-приложением, в которое боты и сканеры не имеют никакого отношения. Там нет ничего, что можно было бы проиндексировать.
Информационный сайт, сопровождающий веб-приложение, однако, должен быть проиндексирован, и поэтому JS там изящно деградирует.
В веб-приложении, если у вас не включен JavaScript, вы, вероятно, не должны там присутствовать. Он предназначен для насыщенного интерактивного опыта. Веб-приложение на самом деле требует, чтобы JS был включен, и чтобы вы не сидели за корпоративным брандмауэром.
Мы не обслуживаем ничего вредоносного, это просто наши намерения и цели для веб-приложения. Цели нашего веб-приложения и нашего информационного сайта совершенно разные.
Я использую JavaScript. Я всегда обновляю свой браузер. Но иногда у меня такое плохое подключение к Интернету, что скрипты просто не загружаются.
Также бывают случаи, когда:
- Некоторые скрипты загружаются, а другие не работают, и в этом случае части веб-сайта перестают работать.
- Сценарии загружаются, но я хочу нажать кнопку «Отправить», не дожидаясь этого причудливого меню с оборками.
- Сценарий не работает, потому что он был частично загружен, а затем кэширован на этом полуэтапе.
- Я так тороплюсь, что просто решаю использовать Lynx.
Я не говорю, что у меня плохой Интернет все время или даже большую часть времени, но такое случается. Поскольку Интернет быстро распространяется во многих сельских районах по всему миру, я уверен, что я не единственный. Поэтому, помимо ботов, о которых упоминал выше Нельсон, это еще одна вещь, о которой следует помнить. (Подсказка: проверьте свои демографические данные).
Если вы не хотите, чтобы страница работала, когда Javascript выключен, просто оставьте это сообщение в html, а если javascript включен, используя ненавязчивый javascript, вы можете избавиться от этого сообщения и сделать видимой остальную часть приложения.
В зависимости от того, для чего вы пишете, с точки зрения версии javascript, вам может потребоваться деградация, если в браузере пользователя не установлена последняя версия, поэтому изящная обработка также важна.