Flash и валидация HTML-страницы / Статьи / ControlStyle
Статьи

Flash и валидация HTML-страницы

W3C logoСоответствие HTML-кода страниц сайта стандартам организации W3C гарантирует правильное отображение сайта во всех интернет-обозревателях, поддерживающих эти стандарты, и является свидетельством профессионального подхода при разработке интернет-сайтов. Кроме того, «правильный» HTML-код в лучшей степени соответствует принципу разделения информационного наполнения страницы (контента) от ее представления (имеются ввиду последние строгие стандарты XHTML 1.0 Strict или XHTML 1.0 Transitional). К сожалению, многие разработчики интернет-сайтов (даже достаточно известные) попросту игнорируют любые стандарты, в лучшем случае ограничиваясь указанием стандарта в начале HTML-страницы... стандарта, которого впоследствии сами же не придерживаются. Впрочем, речь пойдет не об этом...

Как известно, при публикации flash-роликов в среде Macromedia Flash (здесь и далее рассматривается Macromedia Flash 2004 MX) создается HTML-файл с примером внедрения публикуемого ролика:

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml» xml:lang="en» lang="en">
...
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000» codebase="http://download.macromedia.com/pub/ shockwave/cabs/flash/swflash.cab#version=7,0,0,0» width="550» height="400» id="example» align="middle">
<param name="allowScriptAccess» value="sameDomain» />
<param name="movie» value="example.swf» />
<param name="quality» value="high» />
<param name="bgcolor» value="#ffffff» />
<embed src="example.swf» quality="high» bgcolor="#ffffff» width="550» height="400» name="example» align="middle» allowScriptAccess="sameDomain» type="application/x-shockwave-flash» pluginspage="http://www.macromedia.com/go/getflashplayer» />
</object>
...

Из заголовка страницы видно, что Macromedia Flash предлагает использовать стандарт XHTML 1.0 Transitional. Вместе с этим, разработчики Flash видимо забыли, что в DTD данного стандарта тэг embed отсутствует. Таким образом, вышеприведенный код никогда не пройдет тест на соответствие стандарту W3C.

Попробуем исправить ситуацию, удалив полностью тэг embed:

...
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000» codebase="http://download.macromedia.com/pub/ shockwave/cabs/flash/swflash.cab#version=7,0,0,0» width="550» height="400» id="example» align="middle">
<param name="allowScriptAccess» value="sameDomain» />
<param name="movie» value="example.swf» />
<param name="quality» value="high» />
<param name="bgcolor» value="#ffffff» />
</object>
...

Документ успешно проходит тест на соответствие стандарту, но... flash-анимация перестала отображаться в таких браузерах, как Mozilla Firefox и Opera, поскольку именно они работали с тэгом embed. Впрочем, последние версии названных браузеров вполне могут работать и с тэгом object. Необходимо лишь изменить атрибуты данного тэга:

...
<object type="application/x-shockwave-flash» data="example.swf» width="550» height="400» id="example» align="middle">
<param name="allowScriptAccess» value="sameDomain» />
<param name="movie» value="example.swf» />
<param name="quality» value="high» />
<param name="bgcolor» value="#ffffff» />
</object>
...

Приведенный выше код прекрасно работает, как в Microsoft Internet Explorer, так и в браузерах Mozilla Firefox, Opera. Кроме того, он стал более понятным и изящным, ну и, самое главное, он вполне соответствует стандартам XHTML 1.0 Transitional и XHTML 1.0 Strict.

Николай И. Яровой

Комментировать через

Вконтакте Facebook

К списку статей