Last updated: October 19, 2009
This document and its associated support tables apply to Opera products using the Opera Presto 2.2 rendering engine. Previous Opera Web specification support documents can be found at Web specifications supported in Opera [1].
For your reference:
Support tables are provided at the beginning of each topic if applicable. This section provides hyperlinks to all of them in one location for your convenience.
ARIA is a proposal/work in progress. Opera participates within this working group which will ultimately release the ARIA specification. Please see the ARIA Working Draft [2] and Editor's Draft [3] for details.
Opera supports the HTML implementation of ARIA according to the latest draft. Here is an example:
<div role="checkbox" aria-checked="true" tabindex="0"></div>
Support has been added for the following items.
Opera supports all of CSS1 [4].
CSS 2.1 [5] is currently a W3C Candidate Recommendation.
visibility: collapse property value — see
section 11.2 [6]CSS files must now be served with the correct MIME type ("text/css") in Strict mode, or they will be ignored.
Note that these properties are at an early stage of development and may be changed or removed from the specifications at any time. Use them as experimental. Support has been added for the following items:
box-sizing — see section 7.1 [12]color:transparent value: support has been improved.content is applicable on all elements, not just on the :before and :after pseudo-elements: see section 12.2 [13]currentColor: see section 4.4 [14]opacity: see section 3.2 [15]outline-offset — see section 8.5 [16]overflow-x — see section 11.1 [17]overflow-y — see section 11.1nav-up, nav-right, nav-down, nav-left, nav-index — see
section 10.2.2 [18]text-shadow, including multiple shadows — see
text-shadows, multiple shadows [19]-o-background-size see section 3.9 [20]
(uses vendor prefix)-o-table-baseline (proprietary to Opera)-o-text-overflow see section 9.3 [21] (uses vendor
prefix)@font-face CSS at-rules) with the font-family descriptorsrc descriptor with local and remoteSee this Opera reference [22] and demonstration [23].
Opera fully supports the CSS Mobile profile [24].
WAP CSS [25] is an extension of the CSS Mobile Profile. Opera fully supports WCSS versions 1.0 and 1.1.
In order to display an XML document, a CSS style sheet should be present. Authors can attach style sheets to their XML documents through a processing instruction. Here is a simple example:
<?xml version="1.0"?> <?xml-stylesheet href="shakespeare.css" type="text/css"?>
Opera has full support for the Fundamental interfaces of DOM 2 Core [26] , with minor exceptions. Opera does not support the following Extended interfaces on purpose, expecting a future revision of DOM Core will remove them:
Opera supports several carefully selected DOM 3 Core features. Several of these are:
compareDocumentPosition() methodtextContent attributeOpera has full support for DOM 2 HTML [27], with minor exceptions corresponding to HTML support exceptions.
Opera has full support of DOM 2 Events [28] with no exceptions.
Opera supports DOM 2 Style [30] with some exceptions.
Opera supports the DOM 2 Range [31].
Opera supports DOM 2 Traversal, with some exceptions.
Opera supports the Element Traversal specification (W3C Proposed Recommendation) [32].
Opera supports Load and Save [33], with some exceptions.
Opera supports DOM 3 XPath [34], with the same exceptions as with XSLT.
XMLHttpRequest (XHR)
XMLHttpRequest is a work in progress [35], and we expect
to fully support it when it becomes a recommendation.
ECMAScript is the standardized version of JavaScript Core. It is being standardized through the ECMA standards body. ECMAScript does not include browser and document related objects. Opera supports the following items.
<frame>/<iframe>/<object> elements before it is sent to the document.HTMLElement.focus() is called unless keyboard navigation is already activated.HttpURLConnection.setRequestMethod("PUT")cache_archive_ex parameter to appletsURLconnection.setAllowUserInteractionJSP_TYPE_EXPRESSION value typejspluginsjspluginsinnerHTML while script is loadingset and get attributes on native objectsOpera supports the entire ECMA-262 2nd and 3rd standards [36], with no exceptions. They are more or less aligned with JavaScript 1.3/1.5 Core.
Opera is actively participating with ECMA TC39 in developing successors to the current spec. Opera will support future editions of the language as consensus is reached and the specifications become finalized.
Opera supports the <canvas> [37]
element specification, which is currently a work in progress.
Opera supports the following items.
altGlyphopentype support for indic scripts
There is support for listening to any event in the svg module. Some events are not sent by core, for example: activate.
onkeyup, onkeydown and
onkeypress don't register a corresponding event listener for those events.element.addEventListener('keydown',
keyhandler-function, false).evt.preventDefault() to prevent any key-event that should be handled
only by the script from escaping upwards to the UI which may be listening for shortcut keys.SVGElement.currentFps and SVGElement.targetFps
properties. These properties respectively read and control SVG frames per second; see this
Opera reference [38].Opera supports the following SVG inclusion types.
<object> element<iframe> element<embed> element<img> elementbackground-image propertylist-style-image propertySome content may fail to render if sent with the wrong MIME-type, or if the namespace declarations are missing.
image/svg+xml.http://www.w3.org/2000/svg and xlink: http://www.w3.org/1999/xlink.font-size: 12; in CSS will mean the value is invalid, and thus it will be ignored.styleelements,
styleattributes and external stylesheets.
content property can also embed SVG.SVG is output as a bitmap image to the printer.
A new rasterizer core has been applied.
Opera fully supports:
Opera supports HTML 4.01 [41] with these exceptions:
option element.col width attribute does not support multilengths.object standby and declare attributes are not supported.char and charoff are not supported.Further support is provided for MIME types (in emails and mhtml):
application/vnd.wap.multipart.mixed (binary multipart)application/ms-tneftext/vnd.wap.wmltext/wmlapplication/vnd.wap.xhtml+xmlapplication/vnd.wap.multipart.relatedapplication/vnd.wap.wbxmlapplication/vnd.wap.wmlcimage/vnd.wap.wbmpOpera adds support for the next version of HTML: HTML 5. For your reference, the two preceding external hyperlinks are provided for HTML 5 drafts/works in progress by the W3C. Please note that changes to the draft specification and notes may be made at any time. HTML 5 is a work in progress and respectively, Opera considers its implementations for HTML 5 experimental until its specification has stabilized. Support is provided for the following:
<canvas> element/API — see
section 4.8.11
contenteditable attribute — see
section 6.7 [49]designMode DOM attribute — see
section 5.2.2 [50]innerHTML — see section 3.7.2 [51]
getElementsByClassName — see section
2.4 [52]embed element — see section 4.8.4 [53]
audio element/object — see section 4.8.8 [54]
Opera has experimental support for HTML 5 Forms [56] which is a work in progress. HTML 5 Forms replaces the separate Web Forms 2.0 specification which has been integrated into the HTML 5 specification.
Opera does not have a XHTML content-type mode of text/html. XHTML written as text/html is handled
just like HTML.
Opera supports XHTML 1.1 [57] with these exceptions:
col width attribute does not support multilengths.object standby and declare attributes are not supported.table cell attributes char and charoff are not supported.Opera supports XHTML Basic [58] with the following exceptions:
standby, declare attributes are not supported.inputmode attribute is supported, however
Opera supports the XHTML Mobile Profile 1.0 and 1.1 [59] and extensions to XHTML Basic with no exceptions.
declare attribute of object.With the IBM Voice component, Opera fully supports the XHTML+Voice profile 1.2 [61] (and the Mobile Profile subset).
application/xml,
application/xhtml+xml, application/x-xhtml+voice+xml) for XML Events to take effect.Wireless Markup Language versions 1.0 to 1.3, while based on an HTML subset, must be considered a separate markup language for most practical purposes. WML 2.0 can better be considered an extension of XHTML Basic with WML 1.3 features. Opera supports WML 1.3 and WML 2.0 [63] with the following exceptions:
columns attribute<lang:class>wml:getvar elementOpera supports the current working draft of the MathML for CSS profile [64] with the following exceptions:
mi, mn, mo, ms, mspace, mtext) are not discarded.Opera supports HTTP 1.0 (RFC 1945) [65] and HTTP 1.1 (RFC 2616) [66] protocols with the following exception:
Content-LocationOpera does support:
no-cache (always check for fresh document) and no-store (don't save to disk)Opera provides support for the following items:
Opera supports 128 and 256 bit encryption (RSA, DSA and DH key exchange methods) for the Secure Sockets Layer (SSL) version 3, and the successor Transport Layer Security (TLS) 1.0, 1.1, and 1.2.
A simple online newsreader with support for encrypted newsservers and newsserver with passwords is provided.
Opera can work with all the characters in the Unicode specification. RFC 1345 [85] specifies character mnemonics and character sets.
Opera implements the following writing system related functionality:
Opera relies on the operating system to perform:
Although Opera works with the Unicode character set and its character encodings of UTF-16 (RFC 2781) [87] and UTF-8 (RFC 3629) [88], most text on the Internet is encoded in legacy encodings, for instance:
Opera handles this by detecting the character encoding used, and converting it to UTF-16. The user has three options for how to handle these pages.
Opera supports bidirectional text as described in Unicode [89], HTML [90], and CSS [91].
Widgets are Web applications that run on a desktop, mobile or other device. Opera supports Widgets [92]. The Opera Widgets specification was submitted to the W3C Widgets 1.0 [93] and is currently a W3C working draft. Further information regarding Opera's widgets implementation will be posted here as it develops.
network="public"
A new security model has been intoduced for Opera 10 (Opera Presto 2.2) which among other things means that widgets
do not have network access on by default. In order to enable network access for non-intranet sites, add a network
attribute to the widget element in the config.xml of your widget with the value "public". For
example:
<widget network="public">
...
</widget>
This will make your widget work as intended in Opera 10, but will not affect previous versions. Older browsers will simply ignore the network attribute and give your widget access as per the existing security model.
network="private" and network="public private"
The widget element attributes network="private" and network="public private" can
enable network access for either private networks, public networks, or both. For example:
<widget network="private">
...
</widget>
<widget network="public private">
...
</widget>
Opera can parse and display XML documents.
text/xml, application/xml or with a subtype ending on +xml
will be treated as an XML document.content-type is not available, the ".xml" file extension will also make the document be treated as XML.text/xml, but otherwise follows
RFC3023 [94].
application/xml.application/xml instead of text/xml, and the use of an explicit character set
declaration such as charset=UTF-8.
Opera supports XSLT style sheets with the <?xml-stylesheet?> processing instruction; see
Associating Style Sheets with XML documents Version 1.0 [95].
Opera supports XSLT 1.0 and XPath 1.0 with the following exceptions:
namespace-alias element is not supported.Opera fully supports XML namespaces [96].
text/html was discontinued with Opera 9, and is not supported.xml:id attribute [97].Opera supports XML Events [98] and it is used in X+V.
script and VoiceXML form can
be handlers for XML Events.Need help? Hit F1 anytime while using Opera to access our online help files, or go here.