Как Opera «ремонтирует» веб-сайты

Original author: Hallvord R. M. Steen
  • Translation
image


Пожалуй, чаще всего разработчиков браузера Opera обвиняют в их принципиальности, когда дело касается соблюдения веб-стандартов. Как это ни странно. Основной довод при этом звучит примерно так: «Ну вот другие же могут подстраиваться под несовершенство интернета, чем вы лучше?». На самом деле — почти ничем. Правда, за этим «почти» скрывается такая простая вещь, как желание сделать интернет-мир лучше. Обычная житейская логика подсказывает, что идя на поводу у недобросовестных веб-разработчиков изменить ситуацию вряд ли получится, но и слишком принципиальный подход делу особо не поможет. Выход один — искать золотую середину. И нужно сказать, что норвежские программисты оказались, наверное, ближе всех к этому компромиссному решению. Более того, их метод по многим статьям идёт на голову впереди всех остальных участников рынка. Как такое может быть? Читаем перевод статьи Холлворда Стеена.


Как Opera «ремонтирует» веб-сайты

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

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

— IE8 отображает веб-сайты из списка несовместимых в режиме IE7
— Google Chrome представляется другим браузером для Hotmail
— Safari содержит некие тайные недокументированные хаки, специфичные для некоторых сайтов
— Firefox, вероятно, имеет только расширение для переключения User Agent, весьма популярное у определённой аудитории
— Opera обладает встроенным переключателем идентификации браузера и корректирующим browser.js

Обрабатывать каждый сайт отдельно? Звучит безумно. На самом деле это просто невозможно. Для справки: сущестуют миллиарды сайтов, и все они отличаются друг от друга. Более того — они постоянно изменяются, ведь ежедневно миллионы строк кода добавляются в них или редактируются. Кто способен с этим справиться? На самом деле решать данную проблему должны стандарты, не так ли?

Стандарты

Я одобряю усилия по стандартизации, активную работу евангелистов The Web Standards Project и всех остальных, кто пропагандирует веб-стандарты. Вполне возможно, что именно вам удастся изменить будущее — всё больше сайтов проходят валидацию и избавляются от «нестандартного» наследия прошлого. Сила пребывает с вами!

Надо отметить, что в Opera также есть несколько команд, которые пытаются изменить мир к лучшему, занимаясь обучением или делясь своим опытом. Наш отдел Open the Web постоянно связывается с владельцами веб-сайтов, давая советы по кросс-браузерной совместимости и соответствию стандартам.

Но браузер представляет интересы пользователя. Поэтому мы должны сделать всё возможное, чтобы пройдя через все хитросплетения нестандартного кода веб-сайтов, наш браузер смог предоставить пользователю максимально правильный результат. Как это ни грустно осознавать, но несмотря на то, что в неправильности сайтов нет нашей вины, зачастую это — наша головная боль. И мы должны решать её сейчас, а не в 2022 году.

Что мы, собственно, и делаем.

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

Сильные стороны

Опыт

По сравнению с другими браузерами, Opera обладает наибольшим опытом в добавлении специфических для каждого веб-сайта исправлений, ведь мы начали это делать ещё во времена версии Opera 8.01. Также беру на себя смелость заявить, что наше решение является наиболее передовым. Набор специальных команд пользовательских JavaScript создают простой, но мощный API для изменения и исправления веб-сайтов. С методами получения и присвоения переменных, а также используя интерфейс DOM мы можем изменить поведение Opera в соответствии с большинством стандартных операций, выполняемых скриптом. Иногда мы добавляем недостающий стиль или даже удаляем некоторые объекты и правила, приводящие к некорректному отображению страниц. В результате если какой-то сайт проверяет версию браузера, мы часто можем просто найти и исправить ту строку кода, которая это делает! Несколько наглядных примеров:

— Мы можем добавить одно отсутствующее имя класса, когда AOL Japan неправильно определяет браузер и отправляет неправильные стили, а так же исправить ошибку в AOL webmail, когда они используют ошибочное написание dojoType вместо dojotype.
— Мы можем воспользоваться изящным вызовом postMessage(), когда E*Trade пытается нарушить политику безопасности в плане навигации по фрейму другого веб-сайта в то время, когда идет загрузка закодированного содержимого.
— Мы можем также переопределить то, каким браузером мы представляемся веб-сайту и какой режим отображения страниц (адаптированный к веб-сайту или соответствующий стандартам) надлежит использовать для данного сайта через загружаемые настройки.

Исправления ошибок

Получая возможность изменения веб-сайтов и работу Opera, мы иногда можем даже исправлять собственные баги.

— Когда меню на weather.com перестаёт отображаться по причине неверной обработки событий мыши, мы можем исправить это
— Когда результаты поиска на Google Codesearch отображаются белым шрифтом на белом фоне, мы можем применить другой стиль

Только подумайте: Opera — браузер, который может не мешая пользователю исправлять свои ошибки. Это напоминает машину времени: мы можем исправлять свои старые огрехи даже в тех версиях, которые уже были загружены пользователем до того, как эти ошибки были обнаружены.

В долгосрочной перспективе, это очень важное и тонкое свойство browser.js: оно позволяет веб-разработчикам сократить число специфичных для Opera поправок к коду. Правда нужно отметить, что и проблемы обновления IE8, и наш собственный опыт говорят о том, что работа над своими старыми ошибками является одной из наибольших наших проблем. Мы делали неправильные вещи, и веб-сайты также становились неправильными в ответ. Мы исправляли свой браузер, но всемирная сеть никогда не забывает наших старых ошибок.

В чём отличие механизма, использующего browser.js? Когда мы выпускаем новую версию браузера с исправленными ошибками, соответствующие куски кода browser.js незаметно помечаются, как устаревшие. То, что работало с помощью browser.js, теперь начинает работать само собой в связи с исправлениями в браузере, делая процесс обновления Opera более гладким для пользователей и веб-разработчиков, а также значительно более простым для нас. Порой я, кажется, даже чувствую через всю Атлантику огромную зависть команды разработчиков IE8.

Другой интересный момент — мы можем таким образом добавлять в браузер поддержку новых стандартов с минимальными проблемами. Например, если входящий в спецификации HTML5 тэг <input required> ломает процесс входа на Barnes & Noble по причине того, что поле с именем пользователя на самом деле не требует заполнения, в момент нажатия кнопки «создать учётную запись» мы можем сначала применить свои корректировки, чтобы регистрация прошла успешно, а уж потом встретиться с редактором спецификаций и обсудить с ним за чашкой кофе, как нам сделать новую технологию более совместимой с существующим интернетом.

Прозрачность

С самого начала одной из главных проблем было то, что наши корректировки будут позволять веб-разработчикам не заниматься поиском и исправлением ошибок в их коде. Более того — таким образом мы бы даже способствовали появлению ошибок, продолжая сохранять корректировки в то время, как веб-сайт уже исправлен.

Для обеспечения максимальной прозрачности все корректировки документируются, а также мы стараемся сохранять файл максимально читабельным и хорошо откомментированным (естественно — не в ущерб общему размеру загружаемых данных). Кроме того, каждая произведённая корректировка отображается в консоли ошибок Opera, сообщая пользователю о том, что происходит.

Охват

Корректировка веб-сайтов — задача кросс-платформная. Но данный термин слишком слабо описывает действительное положение вещей. Знаете ли вы о том, что мы корректируем веб-сайты для Nintendo Wii? А для DSi? Для Opera на платформах Windows Mobile, Symbian, BREW и на портативных медиа-плейерах Archos? Кроме шуток, мы даже применяем корректировку для Opera Mini!

— Когда для создания почтовых сообщений на Hotmail и Yahoo mail требуется редактирование со сложным форматированием, мы можем имитировать его поддержку даже на устройствах с весьма ограниченными аппаратными возможностями, для которых подобная функция невозможна в принципе
— Если обработка причудливой анимации на Facebook занимает слишком много времени на сервере Opera Mini — а отправка контента клиенту возможна только когда всё «отпляшет» — мы можем просто урезать её и хотя бы завершить наиболее важные функции сервиса Facebook, затребованные конечным пользователем

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

— На игровой приставке Wii мы должны ограничивать минимальный размер шрифта для сохранения удобочитаемости — но зачастую это приводит к непредсказуемым изменениям ширины, компоновки и позиционирования элементов веб-страниц, приводящим к результату, который просто невозможен в браузере для настольных компьютеров. Поэтому мы корректируем несколько веб-сайтов со слишком жёсткими характеристиками элементов для сохранения возможности использовать шрифты чуть большего размера.
— Использование экранной клавиатуры на Wii и множестве мобильных телефонов подразумевает изменение размера окна браузера каждый раз, когда вам нужно ввести текст в поле формы — для клавиатуры тоже требуется некоторое пространство на дисплее. Но, к примеру, сайт British Airways производит обновление страницы оформления заказа при каждом изменении габаритов окна, что делает покупку билетов с использованием виртуальной клавиатуры задачей нетривиальной…
— … или когда eBay in France пытается сосчитать нажатия клавиш чтобы убедиться, что вы не жулик и вставляете свой адрес электронной почты в поле регистрационной формы «Повторите ввод E-mail» — это также не будет работать с экранными клавиатурами. Большинство из них просто не поддерживает клавиатурные события. Пойдёмте на eBay — я реально делал это. Я не шучу — РЕАЛЬНО! На устройстве, для которого операция вырезать-вставить в принципе НЕВОЗМОЖНА!..

Когда имеешь дело с таким диапазоном проблем, истинный и магический потенциал browser.js становится ещё более очевидным.

Инфраструктура

Чтобы поддерживать всё это хозяйство, мы имеем несколько небольших серверов, отправляющих по запросу клиента именно тот файл, который для него предназначен. У нас есть база данных корректировок и набор мета-данных, содержащих записи о том, к каким платформам и устройствам эти корректировки могут применяться. Но знаете ли вы, что у нас также есть специальный «шпионский» скрипт, постоянно проверяющий веб-сайты — не исправлены ли там корректируемые нами ошибки? Если такое чудо всё-таки происходит, было бы неплохо знать об этом. Я люблю системный звук, сопровождающий каждое удаление очередной «устаревшей» корректировки в Корзину.

Слабые стороны

Время

Так много возможностей, так мало времени… Анализ веб-сайтов и создание корректировок отнимает уйму времени. Мы даже близко не подходим к внушительному списку несовместимых с IE8 веб-сайтов, содержащему более 2400 записей (на самом деле исследование этого списка напоминает Дежа Вю: так много знакомых названий, так много веб-сайтов, которые нужно корректировать или с авторами которых нужно налаживать контакт по тому или иному поводу).

Однако, наш список заметно короче — к счастью! Технический анализ с таким уровнем детализации, который необходим для нашей системы корректировки веб-сайтов, может быть весьма трудоёмким, поэтому я надеюсь, что мы сможем сохранить наш список по-прежнему гораздо меньшим, чем у IE, и, как следствие, сможем лучше фокусировать своё внимание на качестве корректировок. Однако, мы готовы к более широкому охвату: в нашей базе данных более 600 записей и места ещё предостаточно — ждём ваших сообщений о некорректно отображаемых веб-сайтах.

Производительность

Я лишь сказал, что для новых корректировок место имеется. Но каких масштабов можно достичь прежде, чем это заметно скажется на производительности браузера?

Очевидно, что мы можем сохранять рост базы данных ещё довольно продолжительное время. Некоторые наши недавние эксперименты показали, что мы можем обрабатывать до 10000 различных веб-сайтов, замедляя работу Opera лишь на доли процента. Также я искренне верю, что к тому времени, как наша база записей разрастётся до 10000, вы уже купите более производительный компьютер…

Безопасность

А так ли это безопасно? Не может ли вирус или «враждебный» сервер фальсифицировать ваш browser.js и тем самым мгновенно получить контроль над вашим использованием Opera?

Короткий ответ: нет.

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

Выводы

Одна из наиболее поразивших меня вещей, связанных с работой над browser.js, заключается в том, как быстро изменяется всемирная сеть. Уделяя столь пристальное внимание к определённым веб-сайтам мы видим, что в целом интернет совершенствуется, и происходит это гораздо быстрее, чем я мог ожидать. И вопреки, возможно, вашим опасениям, мы часто видим, что веб-сайты исправляются и становятся более лояльными к браузерам Opera после того, как мы выпустим к ним корректировки!

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

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

Об авторе
Hallvord R. M. Steen работает в «ядерной» команде Opera над проверкой качества, тестированием и веб-совместимостью. Он является разработчиком файла browser.js и может сломать все сайты во всём мире с помощью небольшой опечатки.

Благодарности:
данный перевод стал возможен благодаря melnichuck и arestov
Opera
Браузер Opera — больше возможностей в интернете
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 136

    –21
    все не осилил :(

    на опере с 6 версии.

    отдельное спасибо за родное управление мышью.
      +21
      Признайся, ты просто хотел запостить невтемный оперофагный комментарий первым.
        –2
        да-да, в точку!
          0
          Ам! Я съел твою хабрасилу.
      +6
      Очень интересный материал. Единственно, хотелось бы более подробное освещение деталей реализации. Из текста понятно, что исправления делаются для определенных сайтов, а ведь сайтов миллионы, а ошибок, которые на них допускают разнообразны и их еще больше. Так с чем же именно борются с помощью browser.js?
        +1
        По тексту сказано, что в базе данных «кривых» сайтов более 600 записей. Вот вам и приблизительный порядок цифр, сколько веб-сайтов в мире действительно криво отображается в Opera ;)
          +4
          600 — это как-то мало. Я думаю, что речь идёт о 600, известных разработчикам, популярных сайтах, которые очень плохо работают или не работают вообще.
          В разной степени криво отображаются ещё тысячи других.
            +3
            Что значит вообще не работают? Посмотрите список сайтов, кстати приведённый в статье, и посмотрите какие исправления вносит браузер для их корректного отображения.
            А то что тысячи других криво отображаются, всё-таки проблемы веб-мастеров. По большому счёту и эти 600 сайтов не должны исправляться, раз неправильно сделаны. Но Opera и тут идёт на встречу пользователям.
              +2
              Я поправил Илью (хотя, может он пошутил — там подмигивающая рожица в конце), что цифра 600 — это какие-то довольно важные исправления, раз были включены в browser.js, а не киска, появляющаяся в неправильном месте (несмотря на то, что это ошибка Оперы).
                –2
                я тоже считаю, что стандарты надо соблюдать, для того чтобы видеть есть валидатор в виде плагина, например, к фаерфоксу. и именно потому я забросил в свое время пользоваться оперой, что часто некорретно отображались сайты, причем не всегда в связи с кривой версткой(во всяком случае раньше, давно не смотрел, но говорят ситуация та же). Если хочешь вносить свою лепту в поддержку стандартов — пожалуйста, но это несколько станно, что делают это таким способом. Потому как в результате получается, что оперой неудобно пользоваться, в отличие например от фаерфокса в виду неотображения некоторых страниц и это все сводят как огрехи разработчиков, а не как поддержку стандартов. В результате — меньшее количество народу использует этот браузер. Жесткое соответствие одним веб стандартам было бы хорошо, если бы все и сразу стали этим заниматься. А так… общий стереотип сложился не в пользу оперы.
                  +4
                  немного очепяток, жаль не поправить… до сих пор удивляюсь, почему не ввести эдит комментов, хотябы первые 5 минут после постинга.:)
                    +3
                    Как вы в таком случае видите популяризацию и развитие стандартов?

                    P.S. А в Opera, чтобы отправить страницу на валидацию, достаточно нажать Ctrl+Shift+Alt+U и никаких плагинов не нужно. Да, это дольше получается, чем HTML Validator в FF, но тот, в свою очередь, не всегда правильно анализирует страницы.
                      0
                      Мда? На главной странице W3C висит рекомендация — пользуйтесь Tidy www.w3.org/People/Raggett/tidy/ Тот что встроен в плагин FF
                      Да не в Норвегии живем. Хреново со связью в нашем отечестве.

                      >не всегда правильно анализирует страницы.
                      Пока что я встречал только обратный случай — Tidy более строг по части warnings чем W3C. Например его тошнит из-за отсутствия summary в таблицах или пустых строчных элементов. Но уж если Tidy дал зеленый свет — то все ок.
                        +4
                        Гм, есть тут какое-то несоответствие. К примеру, не так давно мне пришла жалоба от пользователя, что в Opera не отображается страница www.kubuntu.org/getkubuntu (сейчас поправили — всё работает). При этом в других браузерах страница отображалась отлично (Firefox, IE, etc). Начали разбираться. Оказалось, что веб-дизайнеры забыли (!) закрыть тэг-ссылку в заголовке «Latest update: 9.04 Beta ready for testing». Естественно, таких ляпов Opera не прощает и просто не показывает всё содержимое страницы, что практически вошло в незакрытую тэгом область.

                        Но возникает вопрос: а почему Firefox пошёл на поводу у разгильдяев и «проглотил» этот грубейший баг веб-кодинга? И если бы не Opera, то сколько времени этот баг имел бы место быть и, возможно, продолжал бы вершить каверзы в самых непредсказуемых местах?
                          +1
                          Простите, но речь идет о валидации двумя разными способами через w3c-online и tidy-offline. Какой из двух пропустил незакрытый тег???
                            +2
                            Я проверял валидатором, встроенным в Quanta (т.е. — Tidy). Но вопрос не о том, какой валидатор пропустил, а о том, что Firefox, как браузер, пропустил этот баг. Уверен, что и валидатор W3C отработал бы эту ошибку без проблем. Отсюда можно сделать вывод, что валидатор, встроенный в Firefox, и собственно движок Firefox — это две большие разницы.
                              0
                              К сожалению не могу проверить вашу гипотезу. Т.к. не пользуюсь Quanta. Но никогда не встречал чтобы tidy (куда бы он не был встроен) пропускал битый тег. Никогда. Поэтому не склонен вам верить. Совсем.

                              Но если вас интересует мнение относительно лояльности броузера к ошибкам, то таки я скажу свое мнение. Броузер — это не валидатор, как утверждает Тема Лебедев. Это средство для просмотра сайтов. Поэтому ошибкой было бы затачивать броузер как средство борьбы с нерадивыми верстальщиками или дурным софтом. То что разработчики оперы очень любят стандарты и боятся уйти от них на шаг в сторону давно приводили их к потерям. Google- сервисы, построенные на Ajax и designMode — тому пример. Об этом кто-то отписался выше.
                                +2
                                «К сожалению не могу проверить вашу гипотезу. Т.к. не пользуюсь Quanta. Но никогда не встречал чтобы tidy (куда бы он не был встроен) пропускал битый тег. Никогда. Поэтому не склонен вам верить. Совсем.»

                                Ну дык, проверить ведь несложно. Вот мои браузеры:
                                Opera 9.64 Linux
                                Firefox 3.0.8 Linux
                                Konqueror 3.5.9
                                А вот тестовая страница с удалённым закрывающим тэгом:
                                ilya.homelinux.org/getkubuntu.html

                                Opera страницу не отображает, остальные два браузера — отображают.

                                Попробуйте сами открыть её же в своём Firefox.

                                «Поэтому ошибкой было бы затачивать броузер как средство борьбы с нерадивыми верстальщиками или дурным софтом. То что разработчики оперы очень любят стандарты и боятся уйти от них на шаг в сторону давно приводили их к потерям.»
                                А я могу сказать, что в краткосрочной перспективе такая принципиальность, может, и приводила к потерям, а в долгосрочной оказалась правильной — интернет меняется, причём — в лучшую сторону. И заслуга Opera в этом несомненно тоже есть. И то, что когда-то упустили, сейчас навёрстываем с лихвой.
                                  –2
                                  >Ну дык, проверить ведь несложно.
                                  Проверил конечно. Tidy FF осообщение о незакрытом теге дал. Tidy голый ошибку тоже обнаружил. Tidy встроенный в php ошибку тоже обнаружил. До кучи обнаружилось еще 48 предупреждений.
                                  Т.ч. возможны два варианта — вы не проверяли документ, либо вы отключили warning, ну тогда вы сами себе злобный буратино.

                                    +3
                                    Вы читать умеете? Мне всё равно, насколько точно определяет эту ошибку валидатор. Любой. Мне интересно, почему Firefox при наличии такого грубого косяка всё равно отображает страницу, тем самым вводя в заблуждение. Что за молчаливое потакание криворуким веб-дизайнерам?

                                    Про 48 предупреждений уже обсудили — в отличие от Firefox, который показал лишь 48 предупреждений, W3C валидатор выдал 61 полноценную ошибку.

                                    По поводу отключения чего-либо. Я для проверки использую Firefox, установленный по умолчанию в OpenSUSE. Расширений никаких нет, чистый браузер. Никаких дополнительных настроек не делал. Так что эксперимент чище некуда. Да даже и не в этом дело. Какая мне разница, находит валидатор или нет эту ошибку и как он её классифицирует (ошибка или предупреждение). Факт тот, что при реальном веб-сёрфинге обычных пользователей Firefox не обращает внимания на ошибку и отображает весь контент, тем самым нарушая, нивелируя стандарты. Почему так?
                                    • UFO just landed and posted this here
                                        0
                                        Оформление слетело только в моём примере, т.к. он оторван от всего сайта и от соответствующих CSS таблиц. На оригинальном сайте при удалении закрывающего тэга страница отображается без косяков. Именно в этом и заключается введение в заблуждение: разработчики, пользователи думают, что страница без изъянов, раз браузер её отображает. А на самом деле присутствует вот такой грубый косяк. И я теперь не уверен, только ли такие косяки может «проглатывать» Firefox.
                                        • UFO just landed and posted this here
                                            0
                                            Видимо, что незакрытые тэги следует закрывать ;)

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

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

                                            В то же время, отношение к нерадивым веб-разработчикам у Firefox более либеральное, в связи с чем грубая ошибка превращается в лёгкий недочёт. И, естетсвенно, браузер не склонен из-за такого пустяка портить отношения со своим драгоценным пользователем и отображает всю страницу как ни в чём ни бывало.
                                            • UFO just landed and posted this here
                                                0
                                                В смысле — как правильно? Пока тэг не закрыт — весь контент является частью текстового фрагмента, используемого для отображения ссылки в тексте документа.

                                                Насколько я понимаю, дальше начинаются различия. В частности — в вопросе правомерности использования тэга DIV внутри ссылки. Opera это дело не позволяет, а Firefox вполне допускает. В результате Opera не отображает весь последующий контент страницы, т.к. он заключён в DIV'ы, что не соответствует правилу использования ссылок. Firefox же допускает такое использование DIV'ов внутри ссылки и отображает контент.

                                                Как результат, Firefox отходит от общепринятых правил, в итоге «скрывает» более серьёзную ошибку в коде страницы. Opera относится более жёстко к порядку использования ссылок, в итоге позволяет сразу обнаружить «косяк».

                                                Другими словами, отходя от стандартов (пусть даже из лучших побуждений), очень легко получить массу проблем с обнаружением действительно серьёзных ошибок.
                                      • UFO just landed and posted this here
                                          –5
                                          >Мне интересно, почему Firefox при наличии такого грубого косяка
                                          >всё равно отображает страницу
                                          Потому что разработчики позаботились об этом. Они смогли сделать сиистему устойчивую к ошибкам. И это хорошо.

                                          >Что за молчаливое потакание криворуким веб-дизайнерам?
                                          Для вас «потакание», для Мозиллы — лояльность, толерантность, терпимость, в общем human centerd technology. В России, это все ругательные слова (см «терпила» и «толераст»), на западе к этим понятиям другое отношение. Мне больше нравится западное понимание. А вам?

                                          >то при реальном веб-сёрфинге обычных пользователей Firefox
                                          > не обращает внимания на ошибку
                                          Обычные пользователи идут в Сеть за контентом. И если броузер отдает контент он выполняет свою задачу. Если нет — не выполняет.

                                          >в отличие от Firefox, который показал лишь 48 предупреждений, W3C валидатор выдал 61 полноценную ошибку.
                                          Ругая криворуких веб-мастеров, вы сами пропагандируете криворукость. Самая большая ошибка начинающих программистов — игнорирование предупреждений.

                                          Офтопик
                                          Очень люблю Русский язык. Воистину он велик и могуч. Слово «ремонт» взятое в кавычки как у вас в заголовке в словарях арго означает — шантаж/ограбление/избиение гомосексуалиста. Для тех кто знаком с такими лингвистическими тонкостями заголовок носит любопытный подтекст, сопряженный именно с такими понятиями как «толерантность» и «терпимость»

                                            0
                                            «И кто говорит — плагиат, я говорю — традиция» © Мульт-опера «Вышел зайчик погулять».

                                            www.youtube.com/watch?v=ye7ZqIJckx8
                                              –1
                                              Что-то я не понимаю… Вроде текст про то что Опера старается исправлять ошибки «криворуких» А ваши ответы про то как это плохо. Налицо расхождение позций двух официальных представителей фирмы. Вы уж как нибудь там определитесь. А?
                                                0
                                                Firefox не исправляет ошибку, он её игнорирует. Иначе при сохранении страницы тэг был бы закрытым. Opera же добавляет «костыли» не по каждому случаю (и уж тем более не по такому разгильдяйскому), а лишь в особых случаях, когда по-другому проблему не решить на данный момент.

                                                А вообще — пошёл флуд. Вы по вам одному понятным причинам не желаете понимать то, о чём я говорю. Не вижу смысла давать подробные пояснения ещё раз — всё уже сказано и определено.
                                        –3
                                        >Попробуйте сами открыть её же в своём Firefox.
                                        Он не мой. Он мозиллин. К тому же на моем компьютере всего два FF, три IE, Safari с Хромом и четыре Оперы.

                                        >И заслуга Opera в этом несомненно тоже есть.
                                        У нас с вами принципиально разные взгляды. Я считаю что Опера своей позицией неприятия всего что исходит от MS тормозила развитие основных технологий, которые реально изменили интернет — Ajax(iframe), designMode, XML/XSLT. Фишки придуманные в лаборатории Оперы в чем-то удобны, но принципиально не изменили WEB.
                                        А то что все приходит к какому-то единому стандарту — естественный исторический процесс.
                                          +1
                                          «Он не мой. Он мозиллин.»

                                          Какое-то неадекватное восприятие моих ответов. Я подразумевал — ваш, который установлен в вашей системе.

                                          «К тому же на моем компьютере всего два FF, три IE, Safari с Хромом и четыре Оперы.»

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

                                          «У нас с вами принципиально разные взгляды. Я считаю что Опера своей позицией неприятия всего что исходит от MS тормозила развитие основных технологий, которые реально изменили интернет — Ajax(iframe), designMode, XML/XSLT.»

                                          Вы слишком плохо знаете историю. Точнее даже не саму историю, не её внешнее проявление, а ту невидимую борьбу, которую вели MS с конкурентами с помощью монопольного положения.

                                          Вы что считаете, что вот MS такая хорошая, придумала новую технологию, опубликовала все спецификации и сказала всем остальным: во, смотрите, какую классную штуку сделали — давайте её пользовать все и делать интернет круче! А, типа, злобная Opera всё это не имплементировала и тем самым ставила палки в колёса развивающемуся интернету? Да фиг там. Особенно учитывая, что тот же XMLHttpRequest был придуман в MS ещё десять лет назад, и практически всё это время IE занимал более 90% рынка, а норвежский браузер по мировой статистике даже сейчас не превышает 5%. Так что не нужно валить на Opera. Вы просто плохо знаете MS.

                                          Они никогда не раскрывали и не будут раскрывать разработанные внутри своей компании технологии, дающие хоть какое-то преимущество перед конкурентами. Причём, делают это наиболее мерзким способом: вместо того, чтобы получить патент и сказать — всё, больше никому не дадим, они наоборот имитируют весьма активную дружелюбность, даже какие-то спеки предлагают иногда. Только при этом, якобы давая всем остальным воспользоваться своими наработками, внутри IE реализуют эти же функции слегка по-другому. В итоге IE работает, а все остальные — нет. Точнее — остальные браузеры тоже работают, но у MS это происходит лучше, быстрее и с небольшим набором «бонусных» опций.

                                          Не менее активны в MS и тогда, когда кто-то другой создаёт нечто интересное. Но тут тактика немного другая — называется «Embrace, extend and extinguish» ( ru.wikipedia.org/wiki/Embrace,_Extend,_and_Extinguish ). Почитайте об этом на досуге, очень познавательно.

                                          «Фишки придуманные в лаборатории Оперы в чем-то удобны, но принципиально не изменили WEB.»

                                          Вот вам ссылочка — посмотрите, в каком году и м каком месяце появлялись в Opera новые технологии, без которых сегодня уже просто невозможно представить веб-сёрфинг ( www.opera.com/docs/history/ ).

                                          «А то что все приходит к какому-то единому стандарту — естественный исторический процесс.»

                                          Это, знаете, из области рассуждений «Бытиё определяет сознание или сознание определяет бытиё».
                                            0
                                            >«Он не мой. Он мозиллин.»
                                            > Какое-то неадекватное восприятие моих ответов. Я подразумевал >— ваш, который установлен в вашей системе.
                                            Я же написал — у меня их десяток.

                                            >Вы что считаете, что вот MS такая хорошая, А, типа, злобная Opera
                                            Спецификация XML/XSLT была описана в середине 90х. И это была не спецификация MS. Тем не менее Опера реализовала ее с опозданием почти на десять лет по сравнению с MS. Не так ли?

                                            >Вот вам ссылочка — посмотрите, в каком году и м каком месяце >появлялись в Opera новые технологии, без которых сегодня уже >просто невозможно представить веб-сёрфинг
                                            Вы про серфинг, я про веб-технологии.

                                            >Это, знаете, из области рассуждений
                                            >«Бытиё определяет сознание или сознание определяет бытиё».
                                            Ошибаетесь. Это закон перехода количества в качество.
                                              0
                                              «Спецификация XML/XSLT была описана в середине 90х. И это была не спецификация MS. Тем не менее Опера реализовала ее с опозданием почти на десять лет по сравнению с MS. Не так ли?»>/i>

                                              Не так. Для начала по датам.
                                              Спецификации XSL v1.0 были выпущены комитетом W3C 15 октября 2001 года, XSLT v1.0 — 16 ноября 1999 года.
                                              Поддержка этих технологий в Opera появилась начиная с 9 версии — 20 июня 2006 года.

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

                                              И в-третьих, ещё раз повторю: обладая среднемировой рыночной долей мене 5 процентов, браузер Opera физически не мог тормозить развитие интернета. Вся ответственность ложится на тот браузер, который продолжительное время был монополистом — IE.

                                              «Вы про серфинг, я про веб-технологии.»
                                              А вы там просто не читаете Changelog'и. И, видимо, не в курсе, сколько народа из Opera Software работает исключительно над развитием и совершенствованием открытых стандартов.

                                              Так, для справки — в создании CSS принимает участие Хокон Ли, MathML для CSS — Георгий Чавчанидзе, даже для XMLHttpRequest, утвердить который стандартом в MS не почесались, одним из главных редакторов является Анне ван Кестерен. И это только то, что на виду. На самом деле, если не ошибаюсь, не менее 15 человек получает зарплату в Opera Software, на полностью заняты созданием стандартов в W3C.
                                                +1
                                                Вот видите насколько важно не делать ошибок: неверное использование всего ОДНОГО символа в начале текста может повлиять на ВЕСЬ последующий текст.
                                  0
                                  Оказалось, что веб-дизайнеры забыли (!) закрыть тэг-ссылку в заголовке «Latest update: 9.04 Beta ready for testing». Естественно, таких ляпов Opera не прощает и просто не показывает всё содержимое страницы, что практически вошло в незакрытую тэгом область.

                                  Только пользователю (которому даже не известно понятие открывающийся/закрывающийся тег) от этого не лучше :)) И если от вместо страницы увидит белый фон, скорее всего решит, что плох браузер (который ему возможно посоветовали)

                                  Но возникает вопрос: а почему Firefox пошёл на поводу у разгильдяев и «проглотил» этот грубейший баг веб-кодинга? И если бы не Opera, то сколько времени этот баг имел бы место быть и, возможно, продолжал бы вершить каверзы в самых непредсказуемых местах?


                                  Наверно потому что сайт должен делаться для посетителя, а не для браузера (еще бы самому в это поверить… :)).

                                    0
                                    «Только пользователю (которому даже не известно понятие открывающийся/закрывающийся тег) от этого не лучше :)) И если от вместо страницы увидит белый фон, скорее всего решит, что плох браузер (который ему возможно посоветовали)»

                                    Э нет. Не перекладывайте с больной головы на здоровую. Если бы автор той страницы при проверке в своём Firefox увидел ВЕРНЫЙ результат, косячная страница никогда бы не предстала перед пользователем.

                                    «Наверно потому что сайт должен делаться для посетителя, а не для браузера»

                                    Естественно. И для того, чтобы не зависеть от браузера, она должна содержать минимум ошибок и максимально следовать стандартам. В данном же случае добрый Firefox поспособствовал нарушению этих самых стандартов.
                                    +3
                                    Илья, я тут в комментариях давно тусуюсь, только вот в эту ветку не лез. Решил, вот, почитать… 8-O
                                    Специально не комментирую внизу, т.к. вы ушли в неведомые дали в споре. Дело обстоит совсем не так, и валидаторы тут ни при чём.

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

                                    Итак, в чём там дело было.

                                    Для начала сделаем простой тест: заходим на страничку с незакрытым тегом, которую сохранил Илья, и отключаем стили. Что видим — всё содержимое появилось. Т.е. текст никуда не делся, он просто скрывался стилями. Теперь, надо решить вопрос почему.

                                    Любой современный браузер обрабатывает исходный текст HTML-страницы и переводит его во внутреннее представление — дерево DOM, в котором уже оперирует не тегами, а элементами. Так, вот, на этапе генерации DOM браузер должен разобрать любую HTML-кашу или выдать ошибку и вообще ничего не показывать. Второй подход применяется сейчас только к XML документам. HTML всегда разбирается и исправляется перед тем как превратится в DOM. Но, естественно, каждый браузер делает это по-своему — тут пока не существует каких-то стандартов.

                                    Так вот, Опера, в отличие от других браузеров (IE, Safari, Firefox) генерирует в данном случае очень неправильный DOM, элементы которого, по стечению обстаятельств скрываются затем натянутыми стилями.

                                    Продолжение следует…
                                    А, пока предлагаю господам спорщикам загрузить страничку в Опере и Фоксе и посмотреть на неё с помощью Dragonfly и Firebug соответственно. Найдите 10 отличий, как говорится.
                                      +1
                                      Ай :) В чем это версталось? Кошмар…
                                        0
                                        Это не версталось — так сохраняет «страницу со всеми файлами» Firefox ;) Т.е., все стили куда-то ухнули. Щас поменяю на вариант, сохранённый в Opera — он, кстати, и размером меньше. Тоже сюрприз для меня.

                                        А по поводу «разбора полётов» — если убрать тэг A HREF вообще из заголовка, вся страница отображается в Opera нормально (за исключением этой ссылки, конечно). Что, в общем, естественно. Про то, что DIV в ссылках не всеми браузерами обрабатывается читал давно где-то в инете.
                                          0
                                          Кстати, уж не знаю, как там обрабатывает страницу перед показом Opera и Firefox, но если сравнивать два сохранённых в разных браузерах варианта, то вариант Firefox я бы врагу не посоветовал.

                                          После просмотра в Dragonfly выяснилось, что вся та каша, которая видна в Dragonfly в DOM, при сохранении страницы через FF помещается в код HTML. Так что я тут теряюсь утверждать, какой браузер правильней обрабатывает данные.
                                    +2
                                    Я постоянно сталкиваюсь с тем, что HTML Validator в FF и W3C Validator по-разному некоторые моменты интерпретируют. Всё-таки склонен доверять больше валидатору от W3C.

                                    А при чём тут Норвегия и связь — извините, я не понял.
                                      0
                                      >Я постоянно сталкиваюсь с тем, что HTML Validator в FF и W3C Validator по-разному некоторые моменты интерпретируют.
                                      Ну если вы _постоянно_ сталкиваетесь, приведите пример ошибки, которую кто-то из них пропускает. Пожалуйста.

                                      >А при чём тут Норвегия и связь — извините, я не понял.
                                      Сорри… А у нас в России не везде хорошо. А кое где оень плохо. Поэтому предложение поверять процесс верстки онлайн сложно. Удобнее это делать встроенными средствами.
                                      В норвегии проблемы со связью очень хорошо понимают, и постоянно пиарят здесь свои достижения в части всяческих приблуд для своего броузера.

                                      А у вас в Беларуси Интернет всюду безлимитен и бесперебоен? Да?
                                        +2
                                        google.com/
                                        W3C Validator: 43 Errors, 8 warning(s)
                                        HTML Validator в FF: 0 Errors, 58 warning(s)

                                        А про интернет… У нас с ним не очень всё хорошо. Но при вёрстке я не проверяю каждую строчку кода. А в конце работы, не смотря на наличие HTML Validator в FF, всё равно лезу на w3.org.
                                          0
                                          И, похоже, правильно делаешь ;)

                                          Честно говоря, не ожидал, что то, что W3C расценит как ошибки, FF ласково назовёт «предупреждениями». Вот она и разница в подходе к стандартам.
                                            +3
                                            Это не совсем FF называет, это всё-таки плагин на основе HTML Tidy, про который типа рекомендуется W3C.
                                              +2
                                              Илья, с валидаторами тоже не всё так гладко, в них тоже бывают ошибки, которые не исправляются годами.
                                              Надо доверять только себе, прочитавши спецификацию. ;)
                                              0
                                              Простите, но 58 warnings — маразм. К тому же они на 100% пересекаются с ошибками указанными в w3c
                                                –1
                                                Может вы как Шпанков (см.выше) на warnings внимание не обращаете? Зря.
                                                  0
                                                  Про «пересечение» уже обсудили выше. Ошибки и варнинги — это, знаете ли, слегка разные вещи.

                                                  И не надо переходить на личности. К слову, в моём ЧИСТОМ Firefox вообще никакие варнинги не вылазят. Никогда. Если же для этого нужно ещё ставить какое-то расширение — то увольте. Я тестирую браузер, а не расширения. Беру установленные по умолчанию Firefox, Opera и проверяю их работу. Без каких-либо дополнительных настроек или «улучшений».
                                          • UFO just landed and posted this here
                                +1
                                с популярными штуками, ради которых (если они не работают) пользователь готов бы был отказаться от оперы в пользу, скажем, фаерфокса :) gmail например был таким сервисом… (не знаю как сейчас)
                                  +1
                                  Данный перевод делался в Opera 9.64 для Linux с помощью Google Docs. Сервис, конечно, глючный, но Opera работала без проблем.

                                  P.S. Предупреждая инсинуации: глюки были исключительно ГуглДоковские. Например, при каждом автосохранении документа куда-то удалялись пропущеные строки между абзацами. Также совершенно непредсказуемо вела себя функция выбора семейства и размера шрифта.
                                    0
                                    Не подскажете, как сейчас обстоит дело с WYSIWYG?
                                    Я уже как-то привык что Опера глючит при работе в designmode. Может все-таки удалось совместить какой-нибудь редактор с текущей версией вашего броузера. Посоветуйте пожалуйста какой-нибудь редактор.

                                    Да! Я знаю что designmode нет в стандарте. Но ведь это не объяснишь пользователям. Они хочут.
                                      +1
                                      Да никаких инсинуаций :) я вообще, честно говоря, был ошеломлён, когда узнал про такую вещь, как browser.js… произошло это случайно когда была еще 9.2 линейка, но само решение меня несколько поразило :)
                                  –1
                                  Хороша статья, понравилось:) По правде говоря даже и не знал о таких деталях роботы:(
                                    +2
                                    Надеюсь Опера не забросит реальное исправление ошибок в движке браузера, и не будет злоупотреблять заплатками.
                                    После выпуска 9,5 версии браузера появились десятки значительных огрех, которые не исправлены до сих пор.
                                      +2
                                      Насколько я понял, это не заплатки для движка, а как раз для сайтов, которые выполнены без соблюдения стандартов. Видимо разработчики не хотят засовывать в ядро не стандартизированные вещи, хотят оставить его идеально чистым. И это правильно =)
                                        +1
                                        Это совершенно верно, но они бывает засовывают туда и заплатки на свои баги. Я видел сам и читал об этом у самих разработчиков. Потом, если ошибку исправляют, то естественно, из browser.js заплатку вычищают.
                                        +6
                                        Кстати, никто не хочет почитать эту длинную статью в Опере? А, господа минусующие? Проблеме почти год уже, а товарищи разработчики всё пинают балду…
                                        На Лепре заметки с множеством комментариев тоже испытывают аналогичнок недомагание.

                                        Ну, это так, один из множества примеров глюков Оперы, с которыми я сталкнулся сам, сделал тесты и отослал разработчикам…
                                          +1
                                          @fatal: «Кстати, никто не хочет почитать эту длинную статью в Опере?»

                                          Кстати, почитал. Opera 9.64 Linux, страница отображается идеально от начала до конца, включая все хедеры и футеры.
                                            +4
                                            А вот, на Винде, и, я почти уверен, что и на Маке (завтра ещё раз проверю) прокрутить статью нельзя. Никак нельзя.
                                            Пробел на этой страничке сработает как переход на другую статью меньшего размера, где прокрутка уже будет работать.

                                            Илья, заведи себе там Wine или ещё чего, чисто для проверок. Большинство пользователей же под Виндой всё-равно.
                                            Кстати, если действительно, под Линухом эта страничка прокручивается, то попробуй увеличить маштаб, хотя бы на пару десятков процентов. Возможно, в Линуксе более мелкий шрифт используется, и страница не достигает, нужные для глюка, 65535 пикселей.
                                              +1
                                              Да, увеличение шрифта ломает сайт.
                                                +3
                                                Там не увеличение шрифта, там скроллинга нет вообще. И высота элемента body>form равна 0 пикселей. У оперы проблемы с тем, что размеры объектов хранятся в 2-х байтах, из-за чего содержимое выше или шире 65535 пикселей глючит. Еще один пример можно увидеть здесь: lradio.ru/photo-video/albums/images_7567.html если прокрутить плашку с фотками ближе к концу (извините что я в качестве примера привожу это сайт не в первый раз, это не пиар, не ходите туда кроме как для примера) И это не косяк скрипта, можно отключить яву и увидеть что все печально.
                                                  0
                                                  У меня при любых действиях выше проблемы не было. Всегда был скроллер, если его не отключить галочкой в настройках.
                                                  Что я делал не так? Вроде и в линуксе последнее должен был увидеть.

                                                  Или чем таким линукс отличается в этих случаях понять не могу.
                                                    +1
                                                    Я не знаю что вы делаете не так, что не видете проблем, но они явно есть, проверил на 9.64 и 10а на 32-х и 64-х битной ос сборки под qt3 и qt4 (все на дебиане 5), везде проблема есть.
                                                    +1
                                                    Проверил ваш пример. Действительно, в Опере с давних времён (проверял даже в Опере 6) есть горизонтальное ограничение в 32768 пикселей.
                                                    Простой пример:
                                                    <div style="white-space:nowrap"><img src="..любая...картинка..." width="32768" height="100"/>!</div>
                                                    Восклицательный знак должен быть далеко слева, сразу после растянутой на 32768 пикселей картинки. В Опере восклицательный знак перенесётся вниз на следующую строчку, не подчинившись nowrap.
                                                    Кстати, поведение Opera 9.2 и 9.5+ отличается. Опера 9.2 не позволяла задать изображению ширину 32768, так что такая картинка отображалась не растянутой вообще.

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

                                                    Если в этом же примере убрать обрамляющую таблицу и оставить одни картинки, поместив их в контейнер с nowrap, то Опера, опять же, перенесёт лишние картинки на следующую строчку.
                                                    Далее если контейнеру ещё дать стиль overflow:hidden, то Опера лишит нас горизонтальной прокрутки, все равно расположив картинки в две строчки.

                                                    Я нашел в форумах Оперы уже открытую в 2006 году тему на этот счёт и дополнил её новой информацией.
                                                +1
                                                Version 10.00 alpha
                                                Build 1345
                                                Platform Win32

                                                Скроллера нету пока сильно не уменьшишь страницу.
                                                  0
                                                  Version 9.64
                                                  Build 2480
                                                  Platform Linux
                                                  System i686, 2.6.29-ARCH
                                                  Qt library 4.2.2

                                                  Страница глючит, как и описано в комменте выше. :((

                                                  Под линуксом отображение страниц в браузерах (по-крайней мере в Fx, Opera) еще зависит от сборки браузера, вроде.
                                                  Пример: в Google Reader в Fx'е до недавних апдейтов у меня работели не все функции в Arch'е (некоторые визуальные эфекты), но вполне нормально работали (под той же версией) в Ubuntu.
                                                  +1
                                                  Отписал разработчикам ещё раз, вдруг увидят.
                                                    0
                                                    Это уже исправили???
                                                    У меня при любых действиях выше проблемы не было. Всегда был скроллер, если его не отключить галочкой в настройках.

                                                    Вот не верю что так быстро поправили…
                                                      0
                                                      Версия: 9.62
                                                      Сборка: 2466
                                                      Платформа: Linux
                                                        +1
                                                        1. Вы, возможно, перескочили на другую статью, нажав кнопку пробел по привычке, чтобы прокрутить страницу.
                                                        Статья называется «Жизненный цикл программиста».

                                                        2. Увеличте маштаб, т.к., похоже, на Линуксе шрифты поменьше. У Ильи Шпанькова всё получилось (смотрите его комментарий выше).
                                                          0
                                                          По ходу вы правы. Скорей всего сразу перескочил на другую статью.
                                                    +1
                                                    Подитожим:

                                                    Bill Gates:
                                                    "640 K ought to be enough for anyone".

                                                    Opera:
                                                    "32768 x 65536 px ought to be enough for any page".

                                                    ;)
                                                      +1
                                                      Между тем я уже докопался зо корня проблемы.
                                                        0
                                                        А вот тебе ещё на заметку.

                                                        Вне зависимости, закрыт DIV или нет, при указании высоты страницы в 65508px прокрутка работает. Далее, уже при 65509px полоса прокрутки пропадает. Правда, время от времени возникает и другой вариант — полоса прокрутки отображается, но без ползунка. Чётко зафиксировать, при какой последовательности действий так происходит, не получилось.

                                                        Opera 9.64 Linux, Opera 10 Linux, размер минимального шрифта не влияет.
                                                          0
                                                          Пардон, погорячился. При _правильном_ закрытии DIV баг пропадает ;)

                                                          Но вот что любопытно: опять баг получается не совсем чистый: ведь DIV не закрыт, налицо ошибка кодирования. Она приводит к неверному отображению. Это я к тому, что, например, в таком случае довольно трудно убедить разработчиков Opera заняться этой проблемой в первую очередь: ведь, по сути, если страница написана без ошибок, то всё работает.

                                                          И вообще, по логике с данным вопросом нужно использовать пункт «Справка»-«Сообщить о проблемных сайтах».
                                                            +1
                                                            Есть тесты вполне валидные, сделанный ещё год назад.
                                                            Просто хотелось разобраться в чём проблема в конкретном случае. Тут налицо опять некоректная обработка Оперой незакрытых тегов.
                                                              0
                                                              Во втором валидном тесте интересная деталь: если включить подгонку по ширине, то прокрутка появляется.
                                                              +1
                                                              «Справка»-«Сообщить о проблемных сайтах».
                                                              Я не раз слышал от разрабов, что это самый худший способ сообщать об ошибках. Сам удивилялся не раз такому «раскладу».
                                                              Такое впечатление, что у них это всё шло в другую базу, а в основную базу работы над ошибками (BTS) надо всё ручками переносить.
                                                              Может уже всё поменялось, ты уточни у них, если можешь…

                                                              Пока прямее способа, чем через bugs.opera.com/wizard/ нету. ;)
                                                                0
                                                                Нет, тут просто разные зоны ответственности.

                                                                Когда ты пишешь баг-репорт — он сразу и попадает в BTS. И ждёт своей очереди на рассмотрение.

                                                                Если же сообщаешь о проблемном сайте, то инфа идёт непосредственно в отдел веб-стандартов, которым руководит Дэвид Стори. Вот они уже и разбираются, чей это баг. Если баг страницы — они списываются с авторами сайта и тычут тех носом в косяк. Чтобы поправили. Если же получается, что баг в Опере — тогда уже они сами заносят инфу в базу по стандартной схеме.
                                                                  0
                                                                  Ну, я, если честно, косяки разработчиков сайтов пропускаю. ;)
                                                                  Или создаю тему в ветке форума «Open the Web & Take Action», если Оперу тупо заворачивают (browser sniffing).
                                                                    0
                                                                    Ну, а в данном случае у нас «два в одном». ;)
                                                                    Косяк в сайте (незакрытый тег) и ошибки в Опере (неправильная интерпритация незакрытого тега и ошибка с «переполнением длины страницы»).
                                                        +2
                                                        Как-то смотрел, что же там валяется в папках оперы. Обнаружил browser.js. Зачитался. :) Был удивлён тому, как опера гибко подстраивается под сайты.

                                                        И это на самом деле круто.
                                                          +1
                                                          Очень люблю Оперу — довольно давно ей пользуюсь. Но о таких подробностях я естественно и не знал.
                                                          Статья очень познавательная, с удовольствием прочитал «от и до». Могу сказать лишь одно — дальнейшего успеха в развитии. Надеюсь, что со временем Опера станет ещё лучше.
                                                            0
                                                            Делать глядя в оперу не всегда приятно. Переваривает CSS наравне с Safari — вроде то, да не всегда. Больше всего, например, раздражает отсутствие overflow-x, overflow-y. Лучший в этом смысле конечно же FF.
                                                              +2
                                                              Сравните overflow-x, overflow-y для разных браузеров.
                                                                +2
                                                                overflow-x, overflow-y уже поддерживается начиная с Opera 9.5 (Presto 2.1)
                                                                  0
                                                                  Не «уже», а «наконец-то».
                                                                  +2
                                                                  > Больше всего, например, раздражает отсутствие overflow-x, overflow-y.
                                                                  Мужики то и не знали :) На самом деле поддержка появилась в версии 9.5. Там правда был один незначительный баг, который я нигде не встречал кроме как на своем сайте и был приятно удивлен, что в десятке нет и его.
                                                                  0
                                                                  Блин, теперь ясно почему Browsr.js переставал работать, когда я пытался править его вручную :)
                                                                    +3
                                                                    >Мы исправляли свой браузер, но всемирная сеть никогда не забывает наших старых ошибок.
                                                                    За одну эту фразу разработчики вызывают уважение, а за то что они делают — им просто цены нет
                                                                      0
                                                                      Представьте, что вы ведёте автомобиль, при этом вам необходимо настраивать что-то в двигателе или менять колёса каждый раз, когда вы поворачиваете за угол или выезжаете на новую улицу. Текущее состояние разработки браузеров чем-то напоминает именно такую ситуацию.

                                                                      Ага. Но тогда можно сказать и так:

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

                                                                      Вы захотите такой автомобиль?
                                                                        0
                                                                        Кого-то мне твой ник напоминает…
                                                                          0
                                                                          привет, землянин
                                                                            –1
                                                                            круто. минус лишь за то, что поздоровался с человеком.

                                                                            господа минусующие, если вам раздать красные и зеленые стикеры и пустить в оффлайн, вы тоже начнете клеить красные стикеры на всех проходящих мимо людей, которые не с вами разговаривают?
                                                                              0
                                                                              Это же интернет! :)
                                                                              • UFO just landed and posted this here
                                                                            +1
                                                                            Вы из крайности в крайность прыгаете.
                                                                            Автомобиль вам показывает то, что вы и так должны видеть.
                                                                            А вот меняет колеса и настраивает что-то в двигателе он сам.
                                                                              0
                                                                              Ну так пусть браузер занимается, я не знаю, оптимизацией картинок на лету, и все такое. А визуальное отображение — тонкая материя, не всегда можно однозначно определить, баг это или фича. Тот же белый шрифт на белом фоне — может это задумка гениального дизайнера?
                                                                                +1
                                                                                Оптимизацией картинок на лету? Вот это уже будет сродни украшению. Зачем их оптимизировать-то? Их отображать надо корректно
                                                                                • UFO just landed and posted this here
                                                                                    +1
                                                                                    Ну да :) И то, что белый шрифт на белом фоне – тоже пример? Не спорю, если в стилях описано #fff для обоих элементов – тут любой браузер *обязан* отобразить фон и текст белым. Чего тут тонкого-то? Визуальное отображение, как раз, и не тонкая материя. Для этого есть стандарты, разного рода тесты и прочее.
                                                                              +2
                                                                              Это не совсем верное сравнение.
                                                                              Если принять, что browser.js используется исключительно для исправления проблем сайтов, то можно представить автомобиль, который знает расположение открытых люков на наиболее оживлённых улицах, и автоматически будет их закрывать перед собой или объезжать — в обеих случаях вы не заметите ничего плохого… пока не заедете на улочку потемнее и поуже. ;)
                                                                                0
                                                                                Землянин. Ты совершаешь один из грехов неписаного Хабракодекса. Пользователи Оперы — очень религиозные люди. И какая-либо критика тут моментально затыкаетс…
                                                                                  +2
                                                                                  Холивор-кошмар: пользователи Оперы под MacOS.
                                                                                  +2
                                                                                  Как-то вы пример привели неудачный, по-моему… Опера (да и другие браузеры) не украшает сайты с помощью browser.js, а устраняет пролемы, блокирующее его НОРМАЛЬНОЕ отображение.
                                                                                  –6
                                                                                  ну тогда, когда опера начнет поддерживать кроме html стандартов, еще и http, например, запрашивать страницу с Cache-Control: no-store в случае с нажатием кнопки back, она будет интересным браузером.
                                                                                    +12
                                                                                    Отвечу вам от лица всех пользователей для всех разработчиков (коим я тоже являюсь): идите на фиг со своим запросом при перемещении по хистори. Вам завидно, что я могу сходить на 3 страницы назад, скопировать там текст, вернуться на последнюю, вставить его и все меньше чем за 3 секунды?
                                                                                      –1
                                                                                      этот топик о том, как опера круто соблюдает стандарты, или не соблюдает. или мне это только кажется?
                                                                                        +2
                                                                                        Пользователь должен контролировать (если он желает этого), то что его браузер уже загрузил.
                                                                                        По умолчанию Опера (начиная с 9.0, по-моему) подчиняется HTTP заголовкам на кэширование. Но есть настройки, чтобы «сделать серфинг быстрее».
                                                                                          +7
                                                                                          А вы обязуетесь соблюдать стандарты, ставя Cache-Control: no-store только на тех страницах, которые ни в коем случае не нужно кешировать, или ставите его на всех страницах, потому что вам так проще а на пользователей плевать? Даже если и да, много ли таких разработчиков? Много ли прокси, которые будут без этого заголовка правильно работать, если вы не будете отдавать этот заголовок? Вопрос сложнее, чем вы озвучили.
                                                                                            –4
                                                                                            отнюдь. вопрос ощутимо проще. и ответ на него тоже.

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

                                                                                            и перестаньте тупить, я не обсуждаю достоинства и недостатки оперы, мне вообще наплевать на оперу и ее пользователей, равно как на файрфокс, ие и все остальные браузеры. вы просто троллите, так как мой комментарий не отображает мое мнение к опере, а отражает мое мнение относительно неудачного и лживого пиара, а вы ему подмахиваете.
                                                                                      +3
                                                                                      вот почему я и люблю Оперу. Сайт будет выглядеть именно так, как был задуман.
                                                                                        0
                                                                                        но не сразу, сначао милионы по граблям пройдутся, потом может быть ж)
                                                                                        –1
                                                                                        На рисунке пропущены запятые после «yes» и «no», а также написано «thankyou» слитно
                                                                                          –1
                                                                                          Хмм… а если баг на сайте пофиксят? Причем теперь из-за «самопального фикса» опера теперь его неправильно отображает. Эти базы обновляются?
                                                                                            +3
                                                                                            Я знаю, что перед тем как добавить в browser.js какой-то ресурс, ребята из Оперы пытаются достучаться дл разработчиков сайта, и если по прошествии времени ничего не сдвигается, то гора идёт к Магомету.
                                                                                            Довольно часто, заплатка пишется так, чтобы срабатывать только в случае определённых обстоятельств. Запоатки для Оперы пишут очень толковые и ответственные товарищи, в отличие от бездельников, пишущих ядро последние года 3. ;)
                                                                                              +1
                                                                                              ну тогда претензий нет. :)
                                                                                              Хотя как по мне так лучше бы шло голосование кошельком.

                                                                                              Опера говорит разрабам, что мол можете не чинить, у нас ваш сайт работает отлично. А если жалуються пользователи и уходят с сайта, вот это я и называю «голосование кошельком»
                                                                                            +1
                                                                                            до этого не знал о существовании подобного файла.
                                                                                            тем не менее в меру возможностей пользуюсь только Оперой и было очень интересно прочесть.
                                                                                            Спасибо.
                                                                                              –1
                                                                                              Единственное что мне больше всего не нравится, это то, что разработчики сами делают хаки в своих браузерах, причем новые версии браузера Opera(к примеру) отличаются от старых координальным образом! Ну и о каких ошибках в сайтах можно говорить? Виноват разработчик сайта конечно же… который подстраивая сайт под n-ную версию браузера (не только IE, под ту же Opera) забывает добавить какой-то стиль…
                                                                                              Если честно мне кажется что разработчики браузера должны позаботиться о том, чтобы сайт отображался в соответствии со стандартом и позволить веб мастеру самостоятельно добавлять хаки, а уж веб мастер сам найдет где у него ошибка и исправит её. Подстраиваясь под наибольшую совместимость с сайтом браузер дает возможность разработчику не указывать необходимые стили порождая ошибки.
                                                                                                +1
                                                                                                Если честно мне кажется что разработчики браузера должны позаботиться о том, чтобы сайт отображался в соответствии со стандартом

                                                                                                По-моему, как раз этим и занимаются в Opera. А эти 600 сайтов — небольшое исключение для наиболее пуленепробиваемых веб-мастеров…
                                                                                                +1
                                                                                                Давно тут было
                                                                                                habrahabr.ru/blogs/opera/18017/
                                                                                                  +2
                                                                                                  Сайты не требуют своего режима отображения ;) разработчики подстраиваются под браузеры, а вот браузеры зачастую по своему относятся к стандартам. Так что ребята из Opera Software удачи, все от вас зависит :)
                                                                                                    –4
                                                                                                    В опере есть всё, кроме браузера.
                                                                                                      0
                                                                                                      Бред
                                                                                                        0
                                                                                                        Ирония
                                                                                                          +1
                                                                                                          А по-моему, и вправду ляп. Уж извините.
                                                                                                            0
                                                                                                            я вам как автор первого комментария в ветке говорю — ирония :)
                                                                                                    • UFO just landed and posted this here
                                                                                                        +1
                                                                                                        Мазохизмом увлекаетесь? ;)
                                                                                                          +1
                                                                                                          Можно сознательно загнать себе карму в минуса, чтобы не напрягаться по поводу одобрения сообществом своих комментариев.
                                                                                                        +1
                                                                                                        Каждый файл содержит электронную подпись и Opera проверяет, является ли данный файл подлинным и не вносились ли в него изменения.

                                                                                                        Еще есть файл user.js который делает тоже самое, но при этом не подписан.

                                                                                                        Его используют сами пользователи для коррекции тех же сайтах, которые неправильно отображаются но при этом недостаточно популярны для того чтобы быть включенными в browser.js (вроде codesearch.google.com)
                                                                                                          0
                                                                                                          «тех же» => «тех»

                                                                                                        Only users with full accounts can post comments. Log in, please.