Я пользовался Интернетом целый день с отключенным JavaScript

Опубликовано: 2022-03-10
Краткое резюме ↬ Задумывались ли вы когда-нибудь, можно ли что-нибудь сделать в Интернете без JavaScript? Сколько сайтов используют прогрессивное улучшение на практике? Крис Эштон провел эксперимент, чтобы выяснить это.

Эта статья является частью серии, в которой я пытаюсь использовать Интернет с различными ограничениями, представляя определенную демографическую группу пользователей. Я надеюсь привлечь внимание к трудностям, с которыми сталкиваются реальные люди, которых можно избежать, если мы проектируем и разрабатываем с учетом их потребностей. На этой неделе я отключу JavaScript.

Почему noscript имеет значение

Во-первых, чтобы уточнить, есть разница между поддержкой noscript и использованием тега noscript . Обычно мне не нравится тег noscript , так как он фрагментирует вашу веб-страницу на версии JavaScript и не-JavaScript, а не работает с одним и тем же базовым контентом, из-за чего опыт становится беспорядочным, а вещи упускаются из виду.

У вас может быть много полезного контента внутри ваших тегов noscript , но если я использую браузер с поддержкой JavaScript, я не увижу ничего из этого — я застряну в ожидании загрузки интерфейса JS. Когда я говорю об опыте «noscript», я обычно имею в виду опыт использования веб-страницы без JavaScript , а не явное использование тега.

Веб-MIDI API: начало работы

Можно ли использовать цифровые музыкальные инструменты в качестве входных данных для браузера? С Web MIDI API ответ — да! Самое приятное то, что это довольно быстро и легко реализовать и даже создать действительно забавный проект. Читать статью →

Итак, кого волнуют пользователи, у которых нет JavaScript? Существуют ли вообще такие пользователи noscript ?

Что ж, они существуют, хотя и в небольшом количестве: примерно 0,2% пользователей в Великобритании отключили JavaScript. Но если посмотреть на количество пользователей, явно отключивших JavaScript, то это не так.

Мне вспоминается эта цитата Джейка Арчибальда:

«Все ваши пользователи не используют JS, пока скачивают ваш JS».

Подумайте о тех пользователях, у которых включен JavaScript, но которые не получают возможности JavaScript по ряду причин, включая корпоративную или локальную блокировку или удаление элементов JavaScript, существующие ошибки JavaScript в браузере из надстроек и панелей инструментов браузера, сеть ошибки и тд. BuzzFeed недавно сообщил, что около 1% запросов на их JavaScript истекает по таймауту, что соответствует 13 миллионам неудачных запросов в месяц.

Еще после прыжка! Продолжить чтение ниже ↓

Иногда проблема не в пользователе, а в CDN, доставляющем JavaScript. Помните февраль 2017 года, когда серверы Amazon вышли из строя? Миллионы сайтов, которые полагаются на JavaScript, доставляемый через CDN Amazon, столкнулись с серьезными проблемами, которые обошлись компаниям из индекса S&P 500 в 150 миллионов долларов из-за четырехчасового простоя.

Подумайте также о развивающихся мировых рынках; страны все еще борются за создание сети быстрого интернета, а население не может позволить себе быстрое оборудование для запуска JavaScript, интенсивно использующего ЦП. Или подумайте об устоявшихся рынках, где даже iPhone X с подключением 4G не застрахован от последствий частично загруженной веб-страницы, прерванной поездом, въезжающим в туннель.

Сеть — враждебная, непредсказуемая среда, поэтому многие разработчики следуют принципу прогрессивного улучшения, создавая свои сайты на базе семантического HTML, наслаивая CSS и ненавязчивый JavaScript поверх этого. Я хотел посмотреть, сколько сайтов применяют это на практике. Что может быть лучше, чем вообще отключить JavaScript?

Как отключить JavaScript

Если вы хотите воссоздать мой эксперимент для себя, вы можете отключить JavaScript, покопавшись в настройках Chrome:

  • Откройте Инструменты разработчика (Chrome -> Вид -> Инструменты разработчика или ⌥⌘I на клавиатуре)
  • Откройте подменю разработчика (три точки рядом со значком закрытия в инструментах разработчика).
  • Выберите «Настройки» в этом подменю.
  • Найдите раздел «Отладчик» и установите флажок «Отключить JavaScript».

Или, как и я, вы можете использовать отличное расширение Toggle JavaScript для Chrome, которое позволяет отключить JS одним щелчком мыши.

Создание поста WordPress с отключенным JavaScript

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

WordPress на самом деле очень дружелюбен к NoScript, поэтому я смог без труда начать писать этот пост, хотя в нем отсутствовали некоторые функции форматирования текста и встраивания мультимедиа, к которым я привык.

Давайте сравним экран сообщений WordPress с JavaScript и без него:

Noscript-версия страницы сообщений WordPress, которая состоит из двух основных вводов текста.
noscript -версия страницы сообщений WordPress, состоящая из двух основных вводов текста.
Версия JavaScript содержит ярлыки для форматирования текста, встраивания цитат и мультимедиа, а также предварительного просмотра содержимого в формате HTML.
Версия JavaScript содержит ярлыки для форматирования текста, встраивания цитат и мультимедиа, а также предварительного просмотра содержимого в формате HTML.

Я чувствовал себя вполне комфортно без панелей инструментов, пока мне не понадобилось вставлять скриншоты в свой пост. Без кнопки «Добавить медиа» мне приходилось переходить на отдельные экраны, чтобы загружать свои файлы. Это имеет смысл, так как контент для «фоновой загрузки» требует Ajax, для которого требуется JavaScript. Но меня очень удивило, что для отдельного медиаэкрана также требовался JavaScript!

К счастью, был запасной вариант:

Представление сетки мультимедиа WordPress (требуется JS)
noscript -версия раздела «Медиа» в админке. Меня предупредили, что представление сетки не поддерживается без JavaScript.
Представление списка медиафайлов WordPress (запасной вариант)
Кому вообще нужны сетки? Представление в виде списка идеально подходило для моих нужд.

После загрузки изображения мне пришлось вручную написать HTML-тег img в своем сообщении, а затем скопировать и вставить в него URL-адрес изображения. Не было никакого способа определить URL-адрес эскиза загруженного изображения, и любые подписи, которые я написал, также должны были быть скопированы вручную. Вскоре мне надоел этот подход, и я планировал вернуться на следующий день и повторно вставить все изображения, когда снова позволю себе использовать JavaScript.

Я решил посмотреть, как работает интерфейс моего сайта.

Просмотр моего сайта без JavaScript

Я был приятно удивлен, что мой сайт без JS выглядел почти так же:

С JavaScript
Персональный сайт с JavaScript.
Без JavaScript
Персональный сайт без JavaScript. Только вставка в Twitter выглядит иначе.

Давайте внимательнее посмотрим на эту вставку Twitter:

Твитнуть с помощью JavaScript
Обратите внимание на информацию об авторе, статистику вовлеченности и информационную ссылку, которых нет в версии noscript . «Тик» — это внешний PNG. (Источник)
Твит без JavaScript
Отсутствуют стили, но есть весь контент, включая ссылку на хэштег и ссылку на твит. «Тик» — это символ ASCII: .

В нижней части моего сайта я также встроил некоторый контент из Instagram, который хорошо подходит для работы с noscript .

Встраивание в Instagram с помощью JavaScript
Обратите внимание на точки слайд-шоу под изображением, указывающие на наличие дополнительных изображений в галерее.
Встраивание в Instagram без JavaScript
В версии noJS таких точек нет. Помимо отсутствующей функциональности слайд-шоу, это неотличимо от версии JS.

Наконец, у меня есть вставка GitHub на моем сайте. GitHub не предлагает нативное встраивание, поэтому я использую неофициальные карты GitHub от Hsiaoming Yang.

Встроить GitHub с помощью JavaScript
Неофициальная карта дает небольшой снимок и ссылки на ваш профиль GitHub.
Встраивание на GitHub без JavaScript
Я предоставляю резервную ссылку на GitHub, если JavaScript недоступен.

Я наполовину надеялся шокировать вас статистикой до и после ( мегабайты JS для небольшого встраивания! Конец света! Откажемся от JavaScript! ), наполовину надеялся, что будет очень небольшая разница ( прогрессивное улучшение! На собственном примере !Я хороший разработчик! ).

Давайте сравним вес страниц с JavaScript и без него. Во-первых, с помощью JavaScript:

Вес страницы с JavaScript
51 HTTP-запрос, передано 1,9 МБ.

Теперь без JavaScript:

Вес страницы без JavaScript
18 HTTP-запросов, передано 1,3 МБ.

Ради стилизованного твита, вставки на GitHub и полной вставки в Instagram мой сайт увеличился на 600 КБ. У меня также есть отслеживание Google Analytics и некоторые занудные скрытые интерактивные функции. Учитывая все обстоятельства, 600 КБ не кажутся чрезмерными — хотя я немного удивлен количеством дополнительных запросов, которые браузер должен сделать, чтобы все это произошло.

Весь контент по-прежнему присутствует без JavaScript, все меню по-прежнему доступны для навигации, и, за исключением встроенного Twitter, вам будет трудно понять, что JavaScript отключен. В результате мой сайт проходит уровень проверки NOSCRIPT-5 — самый лучший из возможных рейтингов без использования JavaScript.

noscript рейтинг ashton.codes: NOSCRIPT-5.

Что это такое? Вы не слышали о системе классификации noscript ? Я был бы очень удивлен, если бы вы это сделали, потому что я только что это выдумал. Это мой удобный маленький показатель удобства использования сайта без JavaScript, и, в более широком смысле, это довольно хороший показатель того, насколько хорош сайт в постепенном улучшении своего контента.

система классификации noscript

Веб-сайты — или, точнее, их отдельные страницы — обычно попадают в одну из следующих категорий:

  • НОСКРИПТ-5
    Сайт практически неотличим от версии сайта с поддержкой JavaScript.
  • НОСКРИП-4
    Сайт обеспечивает паритет функциональности для noscript, но для достижения этого ссылается или перенаправляет на отдельную версию сайта.
  • НОСКРИПТ-3
    Сайт в основном работает без JavaScript, но некоторые неключевые функции не поддерживаются или выглядят неработающими.
  • НОСКРИПТ-2
    Сайт предлагает сообщение о том, что их браузер не поддерживается.
  • НОСКРИП-1
    Сайт загружается, но пользователь вообще не может использовать ключевые функции.
  • НОСКРИПТ-0
    Сайт вообще не загружается и не дает обратной связи пользователю.

Давайте посмотрим на некоторые популярные сайты и посмотрим, как они оцениваются.

Амазонка

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

На первый взгляд, Amazon отлично справляется со своим решением, не поддерживающим JavaScript, хотя изображение основного продукта отсутствует.

Амазон без JavaScript
Отсутствует основное изображение, но безошибочно Amazon.
Амазон с JavaScript
С помощью JavaScript мы получаем основное изображение. Посмотрите на этот милый маленький пылесос.

При ближайшем рассмотрении оказалось, что в версии noscript довольно много вещей было сломано. Я хотел бы пройтись по ним один за другим и предложить решение для каждого.

Нет изображений в галерее

Я хотел увидеть некоторые фотографии продуктов, но нажатие на миниатюры ничего не дало.

Проблема

Проблема
Я нажал на эти миниатюры, но ничего не произошло.

Возможное решение

Было бы неплохо, если бы эти миниатюры были ссылками на полное изображение, открывающееся в новой вкладке. Затем их можно было бы постепенно добавлять в галерею изображений с помощью JavaScript:

  • Перехватить событие клика по ссылке эскиза;
  • Возьмите атрибут href ;
  • Обновите атрибут src основного изображения со значением атрибута href .

Ссылка «Сообщить о неверной информации о продукте» предназначена только для JavaScript

Действительно ли эта функция настолько широко используется, что стоит загружать дополнительные байты JavaScript для всех ваших пользователей, чтобы она открывалась как интегрированное модальное окно на странице?

Проблема
Интегрированное модальное окно Amazon (версия JavaScript)

Проблема

Возможное решение
Хорошо, что информация о продукте показалась мне точной, потому что я не мог сообщить о каких-либо проблемах! Атрибут `href` имел значение javascript:// , которое открывает встроенную модальную форму.

Возможное решение

Для работы интегрированной модальной формы Amazon требуется JavaScript. Я бы сделал «функцию отчета» отдельной формой на отдельном URL -адресе, например, /report-product?product-id=123 . Это может быть постепенно расширено до интегрированного модального окна с использованием Ajax для отдельной загрузки HTML.

По умолчанию обзоры видны только частично

Проблема

Возможное решение
Ссылка Читать дальше ничего не делает.

Возможное решение

Почему бы не показать весь обзор по умолчанию, а затем использовать JavaScript, чтобы обрезать текст обзора и добавить ссылку «Подробнее»?

Стоит отметить, что заголовок обзора является ссылкой на обзор на отдельной странице, так что, по крайней мере, все еще можно прочитать его содержимое.

В целом, я был приятно удивлен тем, насколько хорошо сайт работает без JavaScript. С тем же успехом это могла быть чистая белая страница. Однако отсутствие изображений продукта означает, что мы упускаем действительно ключевую функцию — я бы сказал, что очень важно иметь возможность видеть, что вы покупаете! — очень жаль, что мы не смогли добавить вишенки на торт и присвоить рейтинг NOSCRIPT-5.

noscript рейтинг Amazon: NOSCRIPT-3.

Я все еще не решил, какой продукт я хочу купить, поэтому я обратился к Camel Camel Camel, системе отслеживания цен Amazon.

Верблюд Верблюд Верблюд

Я хотел выбрать между iLife V3s Pro и iLife A4s, поэтому перешел на https://uk.camelcamelcamel.com/. Сначала сайт выглядел неотличимо от версии с поддержкой JavaScript.

Возможное решение
Верблюд Верблюд Верблюд, выглядит красиво и профессионально — без JavaScript.
нет проблем с JavaScript
Вы можете запустить git diff на этих скриншотах и ​​изо всех сил пытаться увидеть разницу!

К сожалению, график ценовой истории не отобразился. Он предоставил альтернативный текст, но альтернативный текст не дал мне никакого представления о том, идет ли ценовой тренд вверх или вниз.

Noscript версия
В альтернативном тексте указано «График истории цен Amazon», но данные не раскрываются.
версия JavaScript
Посмотрите на эту прекрасную диаграмму, которую вы получите, когда включен JavaScript.

Общее предложение: всегда добавляйте осмысленный замещающий текст . Мне не обязательно видеть диаграмму, но я был бы признателен за краткое изложение того, что она содержит. Возможно, в данном случае это может быть «диаграмма истории цен Amazon, показывающая, что цена на этот товар практически не изменилась с марта 2017 года». Но автоматическая генерация такой сводки, по общему признанию, сложна и подвержена аномалиям.

Конкретное предложение для этого варианта использования: покажите изображение . Диаграмма в скриптовой версии сайта на самом деле представляет собой отдельное изображение, поэтому нет никаких причин, по которым она не может быть отображена в версии noscript !

Тем не менее, основной контент под диаграммой дал мне информацию, которую мне нужно было знать.

Кому нужен график? У нас есть стол!
Кому нужен график? У нас есть стол!

В таблице представлен паритет функций, необходимый для обеспечения рейтинга NOSCRIPT-5. Снимаю шляпу перед тобой, Camel Camel Camel!

Верблюд Верблюд Верблюд noscript рейтинг: NOSCRIPT-5

Продукты Google

В этот момент в моем дне, я получил телефонный звонок ни с того ни с сего: друг позвонил мне и спросил о встрече на этой неделе. Поэтому я пошел в Календарь Google, чтобы проверить свою доступность. У Google были другие идеи!

Проблема
Удивительно, но Календарь Google ничего не предлагает пользователям noscript .

Я был разочарован тем, что не было запасного noscript — Google обычно довольно хорош в таких вещах.

Я не ожидаю, что обязательно смогу добавлять/редактировать/удалять записи в свой календарь, но должна быть возможность обеспечить представление моего календаря только для чтения в качестве основного содержимого .

Рейтинг noscript в календаре Google: NOSCRIPT-0

Заинтересовавшись тем, как Google управляет другими продуктами, я быстро взглянул на Google Spreadsheets:

Проблема
Таблицы Google показывают мою электронную таблицу, но содержат большое предупреждающее сообщение о том, что «JavaScript не включен» и не позволяют мне редактировать ее содержимое.

В этом случае сайт выходит из строя намного изящнее. По крайней мере, я могу прочитать содержимое электронной таблицы, даже если не могу его редактировать. Почему в календаре нет такого же запасного решения?

У меня нет предложений по улучшению Таблиц Google! Он хорошо информирует пользователя об отсутствии основных функций в работе с noscript .

Рейтинг noscript в электронных таблицах Google: NOSCRIPT-2

Этот рейтинг на самом деле не так уж и плох! Не все сайты смогут предложить noscript опыт, но, по крайней мере, если они искренние и честные (то есть они скажут «да, мы не собираемся пытаться дать вам что-либо»), что подготовит вас — пользователь noscript — на случай сбоя. Вы не будете тратить несколько драгоценных секунд, пытаясь заполнить форму, которая никогда не будет отправлена, или начать читать статью, которая затем должна использовать Ajax для извлечения остального ее содержимого.

Теперь вернемся к моей потенциальной покупке на Amazon. Я хотел посмотреть на некоторые сторонние обзоры, прежде чем совершить покупку.

Поиск Google отлично работает без JavaScript. Он просто выглядит немного устаревшим, как те старые сайты только для настольных компьютеров с фиксированным разрешением.

Noscript версия
версия noscript имеет дополнительные параметры поиска слева (в противном случае они спрятаны в настройках версии JS) — и нет баннера конфиденциальности (возможно, потому, что «отслеживание» не имеет отношения к пользователям noscript ?)
версия JavaScript
Версия JavaScript имеет возможность поиска с помощью голосового ввода и сообщения «напоминание о конфиденциальности».

Представление изображений выглядит еще более по-другому, и я на самом деле предпочитаю его по нескольким причинам — эта версия загружается очень быстро и перечисляет размеры и размер изображения в килобайтах под каждой миниатюрой:

Noscript версия
noscript без сценария: обратите внимание на метаинформацию изображения, которая не предоставляется в версии со сценарием!
версия JavaScript
Версия JavaScript: обратите внимание на область «связанные условия поиска», которая отсутствует в версии noscript .

Рейтинг noscript в Google Поиске: NOSCRIPT-5

Один из результатов поиска привел меня к обзору на YouTube. Я нажал, не ожидая многого. Я был прав, что не горячился:

Проблема
YouTube не предлагает большого опыта работы с noscript .

Я бы не стал ожидать, что такой сайт, как YouTube, будет работать без JavaScript. YouTube требует расширенных возможностей потоковой передачи, не говоря уже о том, что он откроется для кражи копий, если предоставит автономную загрузку MP4 в качестве запасного варианта. В любом случае ни один сайт не должен выглядеть сломанным. Я смотрел на этот экран несколько секунд, прежде чем понял, что больше ничего не произойдет.

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

noscript рейтинг YouTube: NOSCRIPT-0

Который?

Я нажал еще пару обзорных ссылок. Который? сайт советов подвел меня полностью.

Проблема
На сайте написано, что есть 10 хороших пылесосов на выбор, но список явно заполнен Ajax или чем-то еще, так как я ничего не вижу.

Это была страница, которая выглядела так, как будто она загружалась нормально, но только когда вы читали содержимое, вы понимали, что на самом деле вам не хватает какой-то ключевой информации. Эта ключевая информация абсолютно соответствует цели страницы, и я не могу ее получить. Поэтому, к сожалению, это нарушение NOSCRIPT-1.

Предложение : если контент вашего сайта использует Ajax, этот контент существует по другому URL-адресу. Предоставьте ссылку на этот контент для ваших пользователей noscript . Вы всегда можете скрыть ссылку, если успешно выполнили Ajaxing с помощью JavaScript.

Который? обзор сайта noscript рейтинг: NOSCRIPT-1

Фейсбук

В конце концов, я признаю, что сейчас не могу позволить себе пылесос. Итак, я решил зайти в социальные сети.

Facebook говорит, что для продолжения требуется JavaScript, или мы можем перейти по ссылке на мобильный сайт.
Facebook говорит, что для продолжения требуется JavaScript, или мы можем перейти по ссылке на мобильный сайт.

Facebook категорически отказывается загружаться без JavaScript, но предлагает запасной вариант. Вот наш первый пример NOSCRIPT-4 — сайта, который предлагает отдельную версию своего контента для пользователей noscript или обычных телефонов.

Мобильная версия сайта Facebook.
Мобильная версия сайта Facebook.

Мобильная версия загружается мгновенно. Это выглядит уродливо, но кажется, что я получаю тот же контент, что и обычно. Важно отметить, что у меня паритет функций : здесь я могу делать то же самое, что и на основном сайте.

noscript рейтинг Facebook: NOSCRIPT-4

Страница загружается молниеносно:

50,8 КБ. Страница загружается за 1,39 секунды
50,8 КБ. Страница загружается за 1,39 секунды

Я мог видеть только 7 элементов в ленте новостей одновременно, но я мог щелкнуть «Посмотреть больше историй», чтобы перейти на новую страницу, используя традиционные методы разбиения на страницы.

Я впечатлен тем, что у меня есть возможность «отреагировать» на комментарий в Facebook, хотя это задача на нескольких экранах:

Реагирование сначала требует, чтобы вы нажали «Реагировать»…
Реагирование сначала требует, чтобы вы нажали «Реагировать»…
…что затем переводит вас на отдельный экран, где вы можете выбрать свою реакцию.
…что затем переводит вас на отдельный экран, где вы можете выбрать свою реакцию.

Ничто не мешает Facebook создать меню «реакции» при наведении на не-JavaScript, но, честно говоря, оно нацелено на мобильные устройства, которые не могут наводить курсор.

Предложение : проявите творческий подход с помощью CSS. Вы можете обнаружить, что вам вообще не нужен JavaScript.

Вскоре в моей ленте новостей появилось видео. (В этот момент меня осенило, насколько меньше видеоконтента я видел в мобильной версии по сравнению с обычным Facebook, а это означало, что я фактически видел статусы людей, а не случайное видео, которое им «понравилось» — значительное улучшение. как по мне!)

Я полностью ожидал, что видео не сработает, когда я нажму на него, но нажатие на миниатюру открыло видео в новой вкладке:

Вам не нужен JavaScript для воспроизведения файлов MP4
Вам не нужен JavaScript для воспроизведения файлов MP4.

Я приятно удивлен, что все функциональные возможности присутствуют в этой версии сайта noscript . В конце концов, однако, я нашел одну функцию, которая была слишком неуклюжей и громоздкой, чтобы доводить ее до конца: создание альбома.

Я хотел загрузить фотоальбом в Facebook, но в noscript -land это зверская задача. Это включает в себя загрузку одной фотографии за раз, проходя через два или три экрана для каждой загрузки. Я отчаянно пытался и не смог найти опцию массовой загрузки.

Трудоемкость этого до меня дошла после фотографии номер три (в моем альбоме будет еще много других), поэтому я решил закончить и вернуться завтра, когда у меня будет JavaScript.

Твиттер

Все стало странно, когда я залетел в Твиттер.

Твиттер при первой загрузке
При первой загрузке я получил то, что выглядело как обычный настольный сайт.
Сайт перенаправления в Твиттере
Через пару секунд меня автоматически перенаправили на мобильный сайт.

Я был заинтригован этим механизмом, поэтому покопался в исходном коде, который оказался на удивление простым:

 <noscript><meta http-equiv="refresh" content="0; URL=https://mobile.twitter.com/i/nojs_router?path=%2F"></noscript>

Каким бы красивым и простым ни было это решение, я нашел этот опыт довольно неуклюжим, потому что во флэш-памяти перед тем, как меня перенаправили, я увидел, что один из людей, за которыми я следил в Твиттере, обручился. Его твит не появился в верхней части «мобильной» версии, поэтому мне пришлось искать его.

Предложение : Встройте льготный период в свою логику на стороне сервера, чтобы перенаправления и неосторожные обновления не теряли интересные твиты до того, как вы их прочтете.

Я не мог вспомнить ник своего друга в Твиттере. Поиск был немного сложным — я начал скучать по предложениям автозаполнения!

Скриншот, на котором я ввожу «энди» в качестве условия поиска, но по мере ввода не появляются предложения автозаполнения.
Пока я печатал, не появлялись предложения автозаполнения.

К счастью, на странице результатов поиска сразу появился его аккаунт, и я смог найти его твит. Я даже успел ответить.

Рейтинг noscript в Твиттере: NOSCRIPT-4

Это может показаться щедрой оценкой, учитывая неуклюжее ощущение, но помните, что ключевым моментом здесь является паритет функций. Это не должно выглядеть красиво.

Я попробовал еще пару сайтов социальных сетей, которые, в отличие от Twitter, не достигли головокружительных высот соответствия NOSCRIPT-4.

Другие социальные сети

LinkedIn имеет приятный, сделанный на заказ загрузочный экран. Но он никогда не загружается, поэтому мне оставалось только смотреть на логотип.

LinkedIn

Рейтинг noscript в LinkedIn: NOSCRIPT-0

Инстаграм мне буквально ничего не дал. Пустая страница. Совершенно другой вкус NOSCRIPT-0.

Инстаграм

noscript рейтинг в Instagram: NOSCRIPT-0

Я был удивлен, что Instagram так эффектно потерпел здесь неудачу, учитывая, что встраивание Instagram работало безупречно на моем сайте-портфолио. Я полагаю, что с встраиванием вы никогда не знаете, каковы ожидания поддержки браузера от третьей стороны, но, поскольку я посещаю сайт напрямую, Instagram с радостью звонит, чтобы отказаться от поддержки.

Новости BBC

Я направился на BBC, чтобы узнать новости.

Би-би-си без JavaScript
В версии noscript обратите внимание на узкую колонку и единственную историю с миниатюрой.
Би-би-си с JavaScript
Версия JavaScript: обратите внимание на полное использование экрана рабочего стола и несколько эскизов статей.

Меню немного смещено, а колонка довольно узкая (определенно такая же картина, которую я вижу на многих сайтах — почему «без JavaScript» означает «мобильное устройство»?), но я могу получить доступ к содержимому.

Я нажал на вкладку «Самые читаемые», и я перешел на другую часть страницы. С помощью сценариев эта якорная ссылка постепенно улучшается, чтобы обеспечить фактическое поведение вкладок, что является прекрасным примером создания прочного ядра HTML.

Проблема

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

Хотя это выглядит немного странно, упорядоченный список CSS означает, что у нас здесь ошибка двойной нумерации. Я нажимаю на одну из историй.

Статья должна содержать видео, но вместо этого гласит: «Воспроизведение мультимедиа не поддерживается на вашем устройстве». Расшифровки нет.
Статья должна содержать видео, но вместо этого гласит: «Воспроизведение мультимедиа не поддерживается на вашем устройстве». Расшифровки нет.

Я не могу получить доступ к видеоконтенту, но из-за проблем с правами я подозреваю, что BBC не может предоставить отдельное видео, как это делает Facebook. Хотя расшифровка стенограммы была бы неплохой — и полезной не только для пользователей noscript .

Предложение : Обеспечьте текстовые запасные варианты для аудиовизуального контента.

Справедливости ради, содержание статьи в основном суммирует содержание, которое появляется в видео, так что я действительно не упускаю информацию.

Страницы статей и указателей загружаются молниеносно, около 300 КБ (в основном изображения). Мне не хватает миниатюрных изображений для других статей на странице и возможности в полной мере использовать пространство моего экрана, но это не должно мешать рейтингу.

noscript рейтинг BBC: NOSCRIPT-5

Гитхаб

GitHub выглядит почти так же , как и его аналог с поддержкой JavaScript. Ух ты! Но я предполагаю, что это сайт, разработанный разработчиками для разработчиков.

Гитхаб с JavaScript
Единственное отличие, которое я вижу, это то, как GitHub работает со временем. При включенном JavaScript обратите внимание на надпись "2 дня назад"...
Гитхаб без JavaScript
В версии без сценария вместо этого написано «1 марта 2018 г.».

Я провел небольшую уборку на GitHub, просмотрев репозитории и удалив старые ветки. На какое-то время я действительно забыл, что использую версию без JavaScript, пока не наткнулся на одну маленькую ошибку:

Раздел «Извлечение последней фиксации…» будет вращаться вечно…
Раздел «Извлечение последней фиксации…» будет вращаться вечно…

Затем я задумался: «Как GitHub собирается применять ярлыки к задачам?» так что я дал, что идти.

Эти поля не реагируют, когда вы нажимаете на них.
Эти поля не реагируют, когда вы нажимаете на них.

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

Рейтинг noscript на GitHub: NOSCRIPT-3

Хотя GitHub выглядит невероятно — я бы никогда не узнал, что мой JavaScript отключен — невозможность использовать ту же ключевую функциональность, что и в версии со сценарием, — это облом. Даже безобразно выглядящий сайт noscript получит более высокий балл, потому что функциональность важнее формы.

Онлайн банкинг

Если и есть место, где я ожидал, что потребуется JavaScript, так это веб-сайт банка NatWest. Я был неправ.

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

noscript рейтинг NatWest: NOSCRIPT-5

Разнообразный

В течение дня я наткнулся еще на несколько сайтов.

FreeAgent — сайт налогового программного обеспечения, который я использую для своего фриланса — даже не пытается использовать запасной вариант noscript . Но эй, это лучше, чем показывать сломанный сайт.

FreeAgent показывает сообщение об отсутствии JavaScript.
FreeAgent показывает сообщение об отсутствии JavaScript.

noscript рейтинг FreeAgent: NOSCRIPT-2

И CodePen, по понятным причинам, тоже должен быть NOSCRIPT-2.

CodePen показывает сообщение об отсутствии JavaScript и предполагает, что было бы довольно глупо ожидать, что сайт будет работать без JavaScript!

noscript рейтинг CodePen: NOSCRIPT-2

Тоник, поставщик энергии, не пускает меня в систему, но это скорее недосмотр, чем обдуманное решение:

Я вижу слова «встроенная область» там, где я должен видеть форму входа.
Я вижу слова «встроенная область» там, где я должен видеть форму входа.

Тоник noscript рейтинг: NOSCRIPT-1

M&S Energy разрешает мне войти в систему — только для того, чтобы сказать, что для выполнения чего-то отдаленно полезного требуется JavaScript.

Для работы M&S требуется JavaScript, но вам придется приложить больше усилий, чтобы добиться этого.
Для работы M&S требуется JavaScript, но вам придется приложить больше усилий, чтобы добиться этого.

noscript рейтинг M&S: NOSCRIPT-1

Теперь я перехожу к моему любимому скриншоту дня.

Один из моих коллег однажды порекомендовал курс «Доступность для веб-дизайна», который я добавил в закладки. Я решил взглянуть на него сегодня и посмеялся над иронией альтернативного текста:

Альтернативный текст «Персонажи: доступность для веб-дизайна». Тааак… что я упускаю?
Альтернативный текст «Персонажи: доступность для веб-дизайна». Тааак… что я упускаю?

С замещающим текстом «Персонажи: доступность для веб-дизайна» я не совсем уверен, что мне здесь не хватает — это изображение? Видео? PDF? Сам курс?

Подсказка : на самом деле это видео, хотя для его просмотра необходимо войти в систему.

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

Резюме

Я начал этот эксперимент с целью посмотреть, сколько сайтов реализовано с использованием прогрессивного улучшения. Я посетил здесь лишь небольшую горстку сайтов, большинство из них громкие имена с большими бюджетами, поэтому интересно увидеть широкий спектр поддержки без JavaScript.

Интересно видеть, что относительно простые сайты — особенно Instagram и LinkedIn — имеют такую ​​плохую поддержку noscript . Я считаю, что это отчасти связано с постоянно растущей популярностью фреймворков JavaScript, таких как React, Angular и Vue. Разработчики теперь создают «веб-приложения», а не «веб-сайты», с целью воссоздания внешнего вида нативных приложений, и использование JavaScript для управления DOM является наиболее управляемым способом создания такого опыта.

Существует опасность того, что все больше и больше сайтов будут требовать JavaScript для отображения любого контента. К счастью, обычно можно создавать контент таким же удобным для разработчиков способом, но отображать его на сервере, например, используя Preact вместо React. Принятие сознательного решения позаботиться о noscript дает преимущества основного опыта, описанного в начале этой статьи, а также может сократить воспринимаемое время загрузки.

Может быть довольно сложно думать о приложении с нуля, но приличный основной опыт обычно возможен и на самом деле во многих случаях включает в себя только простые настройки. Хороший основной опыт свидетельствует о хорошо структурированной веб-странице, что, в свою очередь, обычно является хорошим знаком для SEO и доступности. Обычно это хорошо спроектированная веб-страница, так как дизайнер и разработчик потратили время и усилия на размышления о том, что действительно важно для взаимодействия. Прогрессивное улучшение означает более надежную работу с меньшим количеством ошибок в производственной среде и меньшим количеством особенностей отдельных браузеров, потому что мы позволяем платформе выполнять работу, а не пытаемся написать все с нуля.

Какому рейтингу noscript соответствует ваш сайт? Дайте нам знать об этом в комментариях!