![](https://habrastorage.org/storage/1690479e/35c7b3a5/2609ac4f/8b4ff240.png)
Тема «кривости» браузеров часто поднимается, в этом топике я предлагаю рассмотреть браузер не с точки зрения визуального агента пользователя, а как «черный» ящик, на вход которого подаётся один документ, а на выходе (после сохранения) получается другой.
Входные данные
Чтобы не было как в поговорке «Чем поливали, то и выросло» на вход будем подавать валидный XHTML 1.0 Strict документ, таблицу стилей, и одно изображение в формате PNG.
sample.html
![](https://habrastorage.org/storage/4de89764/f52e4754/b39c39f8/2cdaf63b.png)
sample.css
![](https://habrastorage.org/storage/f6a04c08/378e093d/8ffe4b61/c87e4c16.png)
image.png
![](https://habrastorage.org/storage/38212134/f2fb1d70/b0353ce2/06bbaff4.png)
Архив с этими файлами можно скачать тут.
Методика эксперимента
1. Открываем файл с жесткого диска в браузере
2. Сохраняем
3. Смотрим что получилось
Все браузеры были последних релизных версий на момент эксперимента (пару недель назад).
Результаты
Opera
![](https://habrastorage.org/storage/9f3c3b21/97525b84/67dd9dab/dec15424.png)
Файл остался валидным XHTML 1.0 Strict документом. В конце дописана строчка, откуда сохранен документ.
CSS и PNG аккуратно сложены в отдельной папке.
Придраться не к чему.
Firefox
![](https://habrastorage.org/storage/eb4c48c9/7da73312/a07744da/f207ae78.png)
Файл перестал быть валидным (5 ошибок на validator.w3.org) – не закрыл теги meta и link.
CSS сохранил, про PNG забыл — фон потеряли.
Chrome
![](https://habrastorage.org/storage/ab4a2431/d6e39c31/3f8ef5eb/67295444.png)
Файл перестал быть валидным (18 ошибок на validator.w3.org) – оставил тип документа, но привел все теги к верхнему регистру. Meta и link не закрыты, т.е. можно посчитать, что Chrome попытался сохранить документ в старом добром HTML 4.01. После DOCTYPE добавил комментарий, откуда сохранена страничка.
CSS сохранил, про PNG забыл.
Internet Explorer
![](https://habrastorage.org/storage/0d623c2a/e8c70243/3659d6c0/d90b2ee9.png)
Файл перестал быть валидным (4 ошибки на validator.w3.org). Изменил DOCTYPE на HTML 4.0. Привел все теги к верхнему регистру, meta и link не закрыты. Добавил «от себя» мета тег. После DOCTYPE добавил комментарий, откуда сохранена страничка.
CSS сохранил, про PNG забыл.
Моя среда разработки :)
Валидный код
![](https://habrastorage.org/storage/618f759e/90c2b235/5bc300ce/66050e3e.png)
Невалидный код
![](https://habrastorage.org/storage/11c1b7c7/33031c89/7e2f490e/56170326.png)
Заключение
На «отлично» с задачей справилась только Opera, остальные занялись всякого рода «самодеятельностью», что привело к тому, что сохраненный документ не будет отображаться аналогично исходному.
Chrome, FF, IE – получают «двойку» за то, что не сохранили картинку из CSS.
Ещё, если я не ошибаюсь, из всех вышеперечисленных браузеров только Opera имеет в контекстном меню пункт «Соблюдены ли веб-стандарты».
Надеюсь, это топик привлечет внимание разработчиков браузеров и они сделают так, что их творения будут сохранять красивые, валидные документы.