Это предложение является продолжением краткого обсуждения о отключении встраивания (onebox) YouTube, Instagram и других сервисов: Disabling youtube and other embeds
Я считаю, что имеет смысл предоставить пользователям настройку для отключения onebox и отображения вместо него исходной ссылки. Встраивания onebox приносят большую пользу в общем случае, но отдельные пользователи могут желать их отключить. На данный момент есть только два варианта: отключить onebox для всего форума (см. ссылку выше) или использовать каждому пользователю расширение браузера, например uBlock Origin, чтобы блокировать определённые домены или iframe целиком. Подход с расширением функционален, но непрактичен. Он оставляет большие пустые области там, где обычно отображается iframe, не даёт никакого представления о том, что должно быть там, и если пользователь хочет увидеть содержимое, ему приходится искать URL, изучая исходный код страницы.
Мое предложение — дать пользователям возможность отказаться от (или, возможно, выбрать) отображение встраиваний onebox, чтобы в сообщении отображалась исходная ссылка. Это сохранит единообразный вид, лучше укажет на содержание ссылки и устранит необходимость искать ссылку в исходном коде страницы.
(Я публикую это как новичок на форуме meta, не изучая код, поэтому не знаю, насколько это реализуемо, но подумал, что стоит обсудить — спасибо!)
Спасибо за ответ. Обеспокоенность вызывает конфиденциальность и безопасность, а также меры, которые пользователи принимают для решения этих проблем.
Как отмечает @hellcx9rv4, фреймы (iframes) могут стать уязвимостью в системе безопасности. Как указано в статье из связанного поста, сайты, которые часто предоставляют встроенный контент (Google, Meta и т. д.), следует считать ненадёжными, и эта тенденция усиливается.
Утешительно знать, что разработчики задумываются об этом, но обеспокоенные пользователи всё равно будут с подозрением относиться к фреймам на сайтах Discourse, как и на других сайтах, и будут использовать те же механизмы для решения своих проблем.
Например, согласно данным их официальных сайтов расширений, uBlock Origin насчитывает 6,4 миллиона пользователей Firefox и 10 миллионов пользователей Chrome. Хотя блокировка фреймов не включена по умолчанию, и, вероятно, невозможно точно узнать, сколько пользователей её активировали, эти цифры показывают, что значительное число пользователей интернета обеспокоены этой проблемой. Если даже 0,1% пользователей Discourse, которые также используют uBO для блокировки фреймов (или доменов поставщиков фреймов), составляют лишь часть от этих чисел, это всё равно означает около 16 000 затронутых пользователей Discourse.
По собственному признанию, такие параноидальные пользователи, скорее всего, уже используют какое-либо решение для блокировки на своём локальном компьютере? У этих 16 тысяч пользователей уже есть решение, которое работает для всех веб-сайтов, а не только для Discourse?
Решение обрабатывает iframe, предотвращая отправку его запросов (по крайней мере, в случае uBO). Когда iframe заблокирован, либо отсутствует какой-либо контент, либо отображается пустое пространство, что означает отсутствие части содержимого обсуждения. Проблема в том, что iframe появляется потому, что Discourse заменил ссылку автора на него, и я предлагаю механизм, позволяющий оставить этот контент «как есть» для заинтересованных пользователей. (Также было бы полезно что-то вроде альтернативного текста, но, насколько я знаю, для iframe такой функции не существует.)
Возможно, но это не главная проблема. Многие обнаружили, что блокировщики контента — это их идеальное сочетание ценности и усилий.
Текст-заглушка может оказаться более подходящим подходом, поскольку он не требует настройки предпочтений пользователем (и будет работать прозрачно в случаях, когда iframe не загружается по другим причинам, например, если домен src заблокирован сетью). Если удастся найти хорошее решение, оно может быть и проще в поддержке. Одна из идей реализации: отображать исходный URL в тексте поста, создавать iframe для onebox в отключенном от DOM виде, а затем заменять URL на iframe, как только станет ясно, что он загрузится.
Тогда для меня это настройка администратора сайта, хотя согласен, было бы неплохо иметь более надежные резервные варианты на случай неудачной загрузки iframe.