~~NOTOC~~ ====== Веб-спецификации, поддерживаемые в Opera 9 ====== Эта странице применима к Opera версии 9 для Mac, Linux и Windows. Для Opera версии 8 — смотрите [[http://www.opera.com/docs/specs/opera8/|Спецификации для Opera 8]]. * [[docs:webspecs#podderzhka_html_i_xhtml_v_opera|Поддержка HTML и XHTML]] * [[docs:webspecs#podderzhka_xhtml_mobile_profile|Поддержка XHTML Mobile Profile]] * [[docs:webspecs#podderzhka_xhtml+voice|Поддержка XHTML+Voice]] * [[docs:webspecs#podderzhka_wml|Поддержка WML]] * [[docs:webspecs#podderzhka_xml|Поддержка XML]] * [[docs:webspecs#podderzhka_css|Поддержка CSS]] * [[docs:webspecs#podderzhka_ecmascript|Поддержка ECMAScript]] * [[docs:webspecs#podderzhka_dom|Поддержка DOM]] * [[docs:webspecs#podderzhka_raboty_s_setjami|Поддержка работы с сетями]] * [[docs:webspecs#tekst_i_internacionalizacija|Текст и интернационализация]] * [[docs:webspecs#podderzhka_grafiki|Поддержка графики]] ===== Поддержка HTML и XHTML в Opera ===== * [[http://www.opera.com/docs/specs/html/|Полная таблица поддержки HTML, XHTML и WML]] ==== HTML 4.01 ==== Opera поддерживает [[http://www.w3.org/TR/html401/|HTML 4.01]] с этими исключениями: * Не поддерживаются атрибуты событий для элемента '' 'option' '' * Не поддерживает MultiLength для атрибута '' 'width' '' элемента '' 'col' '' * Не поддерживаются атрибуты '' 'standby' '' и '' 'declare' '' элемента '' 'object' ''. * Не поддерживаются атрибуты ячейки таблицы '' 'char' '' и '' 'charoff' ''. ==== Web Forms 2.0 ==== Opera экспериментально поддерживает [[http://whatwg.org/specs/web-forms/current-work/|Web Forms 2.0]]. Web Forms 2.0 — в процессе разработки. ==== Модуляризация XHTML 1.0 и XHTML ==== Есть два "режима" поддержки XHTML, первый — это когда документ имеет тип содержимого '' 'text/html' '', и второй — это когда тип содержимого один из '' 'text/xml' '', '' 'application/xml' '' или '' 'application/xhtml+xml' ''. В первом случае управление документом происходит также, как и любым другим документом HTML (фактически поддерживаются XHTML 1.0, XHTML Basic и XHTML 1.1). Во втором случае — XHTML будет обработан как XML с предопределенной функциональностью для элементов и атрибутов HTML. Opera поддерживает оба режима. ==== Поддержка XHTML 1.1 ==== Opera поддерживает [[http://www.w3.org/TR/xhtml11/|XHTML 1.1]] с этими исключениями: * Не поддерживаются атрибуты событий для элемента '' 'option' ''. * Не поддерживает '' 'MultiLength' '' для атрибута '' 'width' '' элемента '' 'col' ''. * Не поддерживаются атрибуты '' 'standby' '' и '' 'declare' '' элемента '' 'object' ''. * Не поддерживаются атрибуты ячейки таблицы '' 'char' '' и '' 'charoff' ''. * Не поддерживаются аннотации '' 'Ruby' ''. ==== XHTML Basic ==== Opera поддерживает [[http://www.w3.org/TR/xhtml-basic/|XHTML Basic]] без исключений. ==== OMA XHTML Mobile Profile ==== Opera без исключений поддерживает расширения [[http://www.openmobilealliance.com/omacopyrightNEW.asp?doc=OMA-WAP-XHTMLMP-V1_1-20020904-p.PDF|XHTML Mobile Profile 1.0]] и [[http://www.openmobilealliance.org/release_program/docs/CopyrightClick.asp?pck=Browsing&file=V2_2-20040816-C/OMA-WAP-XHTMLMP-V1_1-20040816-C.pdf|1.1]] для XHTML Basic. Она поддерживает XHTML Mobile Profile 1.2 за исключением атрибута '' 'declare' '' элемента '' 'object' ''. ==== Поддержка XHTML+Voice (X+V) ==== С компонентом "IBM Voice" Opera полностью поддерживает [[http://www.voicexml.org/specs/multimodal/x+v/12/|XHTML+Voice profile 1.2]] (и подмножество Mobile Profile). Поддержка X+V включает поддержку CSS3 Speech (с префиксом ''-xv-'' поскольку этот модуль — в процессе разработки). Чтобы был эффект, X+V должен быть представлен в качестве XML-медиа типа (''application/xml'', ''application/xhtml+xml'', ''application/x-xhtml+voice+xml'') для XML Events. Дополнительную информацию можно получить просмотрев [[http://my.opera.com/community/dev/voice/|документацию разработчиков X+V]]. ==== Поддержка WML 1.3 и 2.0 ==== Wireless Markup Language (WML) версий от 1.0 до 1.3, который базируется на подсистеме HTML, нужно рассматривать как отдельный язык разметки для большого количества практических применений. WML 2.0 может лучше считаться расширением XHTML Basic с возможностями WML 1.3. Opera поддерживает WML 1.3 and 2.0 со следующими исключениями: * Атрибуты колонок * Входящий код форматирования '' '' '' * Элемент '' 'wml:getvar' '' ==== Поддержка виджетов ==== Opera поддерживает HTML-виджеты так, [[http://my.opera.com/community/dev/widgets/|как описано здесь]]. Формат виджетов в настоящее время не стандартизован, но по существу он является незначительным расширением HTML и ECMAScript с упакованными свойствами. ===== Поддержка XML ===== Opera может осуществлять синтаксический анализ и отображение XML-документов. Opera может быть и проверяющим (validating) и непроверяющим (non-validating) процессором. Документы с типом содержимого ''text/xml'', ''application/xml'' или с подтипом, оканчивающимся на ''+xml'' будут обрабатываться как XML-документы. Если тип содержимого не указан, то расширение файла ''.xml'' так же приведет к тому, что документ будет обрабатываться как XML. Opera не использует US-ASCII как набор символов по-умолчанию для ''text/xml'', но в остальном следует [[http://www.ietf.org/rfc/rfc3023.txt|RFC3023]]. Мы рекомендуем использовать ''application/xml'' вместо ''text/xml'' или использовать явное объявление набора символов. ==== XSLT, XPath, и XSL-FO ==== Opera поддерживает XSLT 1.0 и XPath 1.0 со следующими исключениями: * Элемент '' 'namespace-alias' '' не поддерживается * Атрибуты '' 'Nan' '', '' 'per-mille' '', '' 'minus-sign' '', и '' 'percent' '' для элементов с десятичными значениями не поддерживается * Атрибут '' 'case-order' '' для элемента '' 'sort' '' не поддерживается Opera не поддерживает XSL-форматированные объекты. ==== Области имен XML и XML ID ==== Opera полностью поддерживает области имен [[http://www.w3.org/TR/REC-xml-names/|XML]]. Поддержка областей имен для ''text/html'' прекращена начиная с Opera 9. Opera поддерживает [[http://www.w3.org/TR/xml-id/|атрибут ''xml:id'']]. ==== XML Events ==== Opera поддерживает XML Events и они используются в X+V. HTML '' 'script' '' и VoiceXML '' 'form' '' могут быть обработчиками для XML Events. ===== Поддержка CSS ===== [[http://www.opera.com/docs/specs/css/|Таблица поддержки CSS]] ==== CSS версия 1 ==== Opera поддерживает все [[http://www.w3.org/TR/REC-CSS1|CSS1]]. ==== CSS версия 2 ==== Opera поддерживает все [[http://www.w3.org/TR/REC-CSS2|CSS2]] за исключением: * Этих свойств: * '' 'font-size-adjust' '', * '' 'font-stretch' '', * '' 'marker-offset' '', * '' 'marks' '', и * '' 'text-shadow' '', * Типов стилей списка '' 'cjk-ideographic' '', '' 'hebrew' '', '' 'hiragana' '', '' 'hiragana-iroha' '', '' 'katakana' '', '' 'katakana-iroha' ''. * Этой комбинации свойств/значений: * ''"display: marker"'', * ''"text-align: "'', * ''"visibility: collapse"''. * Именованных страниц (как описано в [[http://www.w3.org/TR/REC-CSS2/page.html#named-pages|разделе 13.3.2]]). * Конструкции ''"@font-face"''. * Селектора '' ':lang()' ''. ==== CSS версия 2 редакция 1 ==== [[http://www.w3.org/TR/CSS21/">CSS 2.1]] — в настоящее время является W3C Candidate Recommendation, соответствие определено с последней версией, но финальная версия рекомендации может отличаться. Opera поддерживает все [[http://www.w3.org/TR/REC-CSS2|CSS2.1]] за исключением: * Значений параметров '' 'visibility: collapse' '' и '' 'white-space: pre-line' '' ==== CSS Mobile profile ==== Opera полностью поддерживает [[http://www.w3.org/TR/css-mobile|CSS Mobile profile]]. ==== WAP CSS ==== [[http://www1.wapforum.org/tech/terms.asp?doc=WAP-239-WCSS-20011026-a.pdf|WAP CSS]] является расширением CSS Mobile Profile. Opera полностью поддерживает WCSS версий 1.0 и 1.1. ==== Предлагаемые свойства CSS 3, поддерживаемые Opera ==== Примите во внимание, что эти своства находятся в ранней стадии разработки, их могут изменить или удалить из спецификации в любое время. Используйте их в качестве эксперимента. * Частичная поддержка [[http://www.w3.org/TR/css3-mediaqueries/|Media Queries]] * '' 'content' '' применимо во всех элементах, не применимо только для псевдоэлементов '' ':before' '' и '' ':after' '' * '' 'box-sizing' '' * '' 'opacity' '' ==== Расширения со ссылками CSS в Opera ==== Opera использует CSS-подобные свойства для присоединения информации к XML-элементам, которые не могут быть представленными иначе. Три свойства расширения были осуществлены, чтобы позволить гиперссылкам и рисункам быть включенными в XML-документы. Чаще всего авторам лучше использовать XHTML вместо свойств, описанных ниже, для того, чтобы представить семантику документа, но они описаны здесь для справкии. === CSS-расширения для XML === ^Свойство: ^-o-link ^ |Values: |%%none | attr()%% | |Initial: |none | |Inherited: |no | |Description: |Эта настройка определяет значение переменной '' 'link' '', которая может впоследствии использоваться для генерации ссылки через свойство ' ''-o-link-source' ''. | ^Свойство: ^-o-link-source ^ |Values: |%%none | current | next%% | |Initial: |none | |Inherited: |no | |Description: |Эта настройка определяет элементу быть source anchor и, если так, объявляет которое значение переменной '' '-o-link' '' должно быть использовано: текущее или следующее. | '' '-o-replace' '' — больше не поддерживается. Это, как ожидают, будет заменено эквивалентным механизмом CSS3. ==== XML и CSS ==== Чтобы отображать XML-документ, должна быть представлена таблица стилей CSS. Автор может присоединить таблицу стилей к своим XML-документам как выполняемые инструкции. Здесь приведен небольшой пример: Если таблица стилей не представлена и страницы не озаглавлены как HTML, Opera 9 будет использовать начальные значения во всех свойствах CSS для отображения документа. Все элементы будут действующими, и весь текст будет представлен в том же самом шрифте. ===== Поддержка ECMAScript ===== * [[http://www.opera.com/docs/specs/js/ecma/">Полная таблица поддержки ECMAScript]] ECMAScript — это стандартизованная версия JavaScript Core. Он был стандартизован стандартом ECMA. ECMAScript не содержит объекты, связанные с браузером или документами. Opera поддерживает все 2-е и 3-и стандарты ECMA-262, без исключений. Они более или менее совпадают с JavaScript 1.3/1.5 Core. ===== Поддержка DOM ===== * [[http://www.opera.com/docs/specs/js/dom/|Полная таблица поддержки DOM 2 Core]] * [[http://www.opera.com/docs/specs/js/dom/html/|Полная таблица поддержки DOM 2 HTML]] * [[http://www.opera.com/docs/specs/js/dom/events/|Полная таблица поддержки DOM 2 Events]] * [[http://www.opera.com/docs/specs/js/dom/css/|Полная таблица поддержки DOM 2 Style]] * Полная таблица поддержки DOM 2 Range и Traversal * Полная таблица поддержки DOM 3 Load и Save * Полная таблица поддержки DOM 3 XPath * Полная таблица поддержки XMLHTTPRequest * Полная таблица поддержки Canvas * [[http://www.opera.com/docs/specs/svg/|Полная таблица поддержки DOM SVG]] ==== DOM 2 Core ==== Opera полностью поддерживает Основные (Fundamental) интерфейсы [[http://www.w3.org/TR/DOM-Level-2-Core/|DOM 2 Core]], за небольшим исключением. Opera не поддерживает его Расширенные (Extended) интерфейсы: ''Notation'', ''Entity'', и ''EntityReference''. ==== DOM 2 HTML ==== Opera полностью поддерживает [[http://www.w3.org/TR/DOM-Level-2-HTML/|DOM 2 HTML]], с небольшими исключениями, касающимися расширений поддержки HTML. ==== DOM 2 Events ==== Opera 9 полностью поддерживает [[http://www.w3.org/TR/DOM-Level-2-Events/|DOM 2 Events]], без исключений. Работа над [[http://www.w3.org/TR/DOM-Level-3-Events/|DOM 3 Events]] возобновлена в W3C, и мы ожидаем, что там не будет исключений, когда он станет рекомендацией. ==== DOM 2 Style ==== Opera поддерживает [[http://www.w3.org/TR/DOM-Level-2-Style/|DOM 2 Style]] с некоторыми исключениями. Этот модуль находится в стадии разработки в W3C и мы ожидаем полную поддержку обновленной версии. ==== DOM 2 Range ==== Opera поддерживает [[http://www.w3.org/TR/DOM-Level-2-Traversal-Range/|DOM 2 Range]]. ==== DOM 2 Traversal ==== Opera поддерживает [[http://www.w3.org/TR/DOM-Level-2-Traversal-Range/|DOM 2 Traversal]], с некоторыми исключениями. ==== DOM 3 Load and Save ==== Opera поддерживает [[http://www.w3.org/TR/DOM-Level-3-LS/|Load and Save]], с некоторыми исключениями. ==== DOM 3 XPath ==== Opera поддерживает [[http://www.w3.org/TR/DOM-Level-3-XPath/|DOM 3 XPath]], с некоторыми исключениями. Это в настоящее время является примечанием W3C. ==== XMLHTTPRequest (XHR) ==== XMLHTTPRequest находится [[http://www.w3.org/TR/XMLHttpRequest/|в процессе разработки]], и мы надеемся полностью поддерживать его, когда он станет рекомендацией. ==== Canvas ==== Opera в качестве эксперимента поддерживает [[http://www.whatwg.org/specs/web-apps/current-work/#scs-dynamic|Canvas]]. Спефикация Canvas находится в стадии разработки. ===== Поддержка сетевых протоколов ===== Opera полностью поддерживает HTTP 1.0 и HTTP 1.1. Здесь приведены некоторые основные факты: * Постоянные подключения (многократный запрос/ответ через одно подключение). * Cachecontrol для режима без кэша (всегда проверяется наличие свежего документа), и no-store (без сохранения на диск). * Basic Authentication (пароли). Поддерживается Digest Authentication, за исключением проверки целостности в теле. * Возобновление загрузки, применимое в том случае, если сервера поддерживают это. * Поддержка SSL/TLS (так же через прокси/файервол). * Прокси для HTTP, FTP, Gopher и WAIS. Шифрование: 128-битное шифрование (только обмен ключами RSA) для Secure Sockets Layer (SSL) версий 2 и 3, и приемника Transport Layer Security (TLS) 1.0 и 1.1. SSL 2 является устаревшим и по-умолчанию не поддерживается. Шифрование поддерживается для HTTP (веб), NNTP (новости), POP и SMTP (e-mail). Поддержка сгенерированных секретных ключей и передачи сертификатов запросов. Новости: простая сетевая программа чтения конференций с поддержкой зашифрованных новостных серверов и новостных серверов с паролями. Может декодировать отдельные вложения статьи, MIME или кодируемые программой uuencode. Поддержка FTP, включая возобновления загрузки. Возможно загружать файл и через FTP и через HTTP. ===== Текст и интернационализация ===== ==== Поддержка Unicode в Opera ==== Opera может работать со всеми символами в кодировке Unicode. Весь текст, поступающий в Opera из сети, конвертируется в Unicode. Для того, чтобы Opera могла отображать символы Unicode, необходимые глифы должны быть доступными в шрифтах, установленных в Вашей системе. Это может быть проблемой для старых систем Windows. Информацию о доступных шрифтах можно получить просмотрев [[http://www.alanwood.net/unicode/fonts.html|Шрифты Unicode для компьютеров с Windows]]. Opera 9 осуществляет следующую запись функциональности, связанной с системой: === переключение шрифтов === Требуется для отображения символов, которые текущий шрифт не содержит. === перенос строки === Требуется для переноса строк скриптов, не содержащих пробелов, например на Корейском, Китайском или Японском. Opera полагается на операционную систему, чтобы выполнить: === формирование символов === Контекстный выбор глифа, формирование лигатуры, накопление символа, комбинированная поддержка символов и т.д. ==== Поддержка устаревших кодировок ==== Хотя Opera работает с кодировкой ''Unicode'' (''UTF-16'' и ''UTF-8''), большинство текста в Интернете закодировано в устаревших кодировках, например — ''ISO 8859-1'', ''Windows-1251'', ''Shift-JIS'', ''EUC-KR''. Opera управляет ими путем определения используемой кодировки символов и конвертирования их в ''UTF-16''. У пользователя есть три опции для управления такими страницами. == Автоопределение == В этом режиме Opera попытается определить используемую на странице кодировку. Если транспортный протокол предоставляет название кодировки — она будет использована. Если нет, то Opera просмотрит страницу на наличие указания кодировки символов. Если и это не удастся — Opera попытается автоопределить кодировку используя имя домена для просмотра если скрипт является скриптом CJK, и если так — который. Opera может также автоопределять ''UTF-8''. == Написание скрипта автоопределения == В этом режиме пользователь может сказать, что это Японская или Китайская страница, но что кодировка неизвестна. Opera затем анализирует текст на странице для определения используемой кодировки. == Назначение кодировки == В этом режиме пользователь выбирает кодировку. Эта кодировка будет использоваться Opera, независимо от того, какая кодировка заявлена страницей и протоколом транспортировки. === Устаревшие кодировки === Эта таблица показывает все устаревшие кодировки, поддерживаемые Opera в дополнение к Unicode: ^Кодировка ^Категория ^Комментарии ^ |ISO 8859-1 |Latin | | |ISO 8859-2 |Latin |Используется в Восточной Европе | |ISO 8859-3 |Latin |Редкая | |ISO 8859-4 |Latin |Саамские и балтийские страны | |ISO 8859-9 |Latin |Турецкая | |ISO 8859-10 |Latin |Эскимосы, Саамы и Исландия | |ISO 8859-13 |Latin |Редкая | |ISO 8859-14 |Latin |Кельтская | |ISO 8859-15 |Latin |Предназначенная для замены 8859-1 | |Windows-1250 |Latin |Используется в Восточной Европе | |Windows-1252 |Latin | | |Windows-1254 |Latin |Турецкая | |Windows-1257 |Latin |Балтия | |Windows-1258 |Latin |Вьетнамская | |VISCII |Latin |Вьетнамская | |IBM 866 |Cyrillic | | |ISO 8859-5 |Cyrillic | | |koi8-r |Cyrillic | | |koi8-u |Cyrillic |Украинская версия koi8-r | |Windows-1251 |Cyrillic | | |ISO 8859-6 |Arabic | | |Windows-1256 |Arabic | | |ISO 8859-7 |Greek | | |Windows-1253 |Greek | | |ISO 8859-8 |Hebrew | | |Windows-1255 |Hebrew | | |ISO 8859-11 |Thai |Также известная как TIS-620 | |Windows-874 |Thai |Расширение ISO 8859-11 | |utf-8 |Unicode | | |utf-16 |Unicode | | |Shift-JIS |Japanese | | |ISO-2022-JP |Japanese | | |EUC-JP |Japanese | | |Big 5 |Chinese | | |EUC-CN |Chinese |Также ошибочно известная как GB 2312 | |HZ-GB-2312 |Chinese |Прежде всего используемый в e-mail | |EUC-TW |Chinese | | |GBK |Chinese |Расширение EUC-CN | |EUC-KR |Korean | | ===== Поддержка двунаправленного текста ===== Opera поддерживает двунаправленный текст как описанно в Unicode, [[http://www.w3.org/TR/html401/struct/dirlang.html#h-8.2|HTML]], и [[http://www.w3.org/TR/CSS2/visuren.html#direction|CSS]]. ===== Поддержка графики ===== ==== Масштабируемая векторная графика (SVG) ==== [[http://www.opera.com/docs/specs/svg/|Полная таблица поддержки SVG]] Opera поддерживает расширенный набор SVG 1.1 Basic и SVG 1.1 Tiny с некоторыми исключениями. Это относится к частичной поддержке SVG 1.1. Событие, обращенное к другому событию — поддерживается, но некоторые события не отправляются приложениями, например, '' 'focusin' '', '' 'focusout' '' и '' 'activate' ''. Определяемые Adobe события '' 'keyup' '' и '' 'keydown' '' — не поддерживаются. Шрифты — поддерживаются, включая '' 'font-family' '', но если он является отсутствующим глифом в выбранном шрифте, то используется определенный в платформе по-умолчанию переход на аварийный режим вместо того, чтобы выбрать этот глиф из следующего шрифта в строке, определенной в свойстве '' 'font-family' ''. SVG могут использоваться в '' 'object' '', '' 'embed' '', и '' 'iframe' '' в HTML, и как автономные документы. Это не поддерживается для элементов '' 'img' '' или в значениях свойств CSS (например, '' 'background-image' ''). Элемент '' 'image' '' SVG может содержать другую поддерживаемую растровую графику, но не другие SVG-изображения. SVG-изображения распечатываются как точечные рисунки. SVG обрабатывается как XML и применяются те же самые правила, что и для well-formedness и областей имен. Opera также следует правилам соответствия SVG — это требуется для того, чтобы остановить обработку, если встретилась какая-нибудь неизвестная функция. === Выполнение === Эти функции — сильно нагружают процессор и должны использоваться с осторожностью при применении на машинах с более медленными процессорами: фильтры, уровни прозрачности (непрозрачность группы) и маски. ==== Растровая графика ==== Opera полностью поддерживает ''GIF89a'', ''JPEG'', ''BMP'', ''ICO'', ''WBMP'', и [[http://www.libpng.org/pub/png/pngs-img-opera.html|полностью поддерживает PNG]], включая альфа-канал (степень прозрачности) и поддержку гаммы (независимые от устройств цвета). -------------- **Оригинал статьи:** [[http://www.opera.com/docs/specs/|Web Specifications Supported in Opera 9]] [[http://www.opera.com/|Copyright Opera Software ASA]]. Все права зарезервированы [[http://www.operafan.net/|OperaFan.net]], 2007. Ermir, неофициальный перевод.