This document and its associated support tables apply to Opera products using the Opera Presto 2.3 rendering engine. Opera 10.x scores 100/100, pixel perfect on the Acid3 compliance test; see our Opera reference. Previous Opera Web specification support documents can
be found at Web specifications supported in Opera.
If JavaScript is disabled in your browser, all topics in the page will immediately expand.
Before printing or searching this page, please click the "Expand all" button to open all topics.
Support tables
Opera Web specification support tables are provided at the beginning of each topic where applicable. This section provides hyperlinks to all of them
in one location for your convenience and reference.
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 and
Editor's Draft for details.
Opera supports the HTML implementation of ARIA according to the latest draft. Here is an example:
Full RGBA and HSLA opacity support is now supplied for an easier way to make Web page features transparent. This is accomplished
by the addition of a fourth argument to HSL and RGB, namely alpha transparency and results in RGBA and HSLA values. See
this Opera reference.
WAP CSS is an extension of the CSS
Mobile Profile. Opera fully supports WCSS versions 1.0 and 1.1.
XML and CSS
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:
Further capabilities have been added to the Opera Dragonfly DOM Inspector: doctype nodes and object-values; see Introduction to Opera Dragonfly.
DOM 2 Core
Opera has full support for the Fundamental interfaces of DOM 2 Core
[61], with minor exceptions. Opera does not support the following Extended interfaces on purpose,
expecting a future revision of DOM Core will remove them:
Notation
Entity
EntityReference
DOM 3 Core
Opera supports several carefully selected DOM 3 Core features. Several of these are:
compareDocumentPosition() method
textContent attribute
DOM 2 HTML
Opera has full support for DOM 2 HTML, with minor exceptions corresponding
to HTML support exceptions.
DOM 2 Events
Opera has full support of DOM 2 Events with no exceptions.
The work on DOM 3 Events has restarted at the W3C.
We expect to have no exceptions 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.
ECMA-262 2 and 3
Opera supports the entire ECMA-262 2nd and 3rd
standards, with no exceptions. They are more or less aligned with JavaScript 1.3/1.5 Core.
ECMAScript 3.x and beyond
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.
Graphics support
OpenGL
Support has been added for the OpenGL 2D/3D graphics API; see OpenGL API
Direct3D
Support has been added for the Direct3D device driver interface (DDI); see Direct3D
rotate: changed to use 1.2T / 1.1 errata:ed handling of rotate, so that the last used rotation value gets used for all remaining characters in that element; see SVG Profiles: Propagation of rotate in text
SVGAnimationElement.getStartTime(): now aligns with the SVG WG resolution stating if an interval has ended, then a value is not returned; see StartTime-return-value with testcase
svgfont: svgfont space glyphs are no longer drawn
text-anchor: text alignment with text-anchor on RTL text in SVG now matches SVGT12
visible: in SVG is now a valid value for the pointer-events property
Events
There is support for listening to any event in the svg module. Some events are not sent by core, for example: activate.
SVG 1.1 doesn't specify a key-event set, and thus the attributes onkeyup, onkeydown and
onkeypress don't register a corresponding event listener for those events.
In Opera it's possible to install listeners for key-events with DOM, for example: element.addEventListener('keydown',
keyhandler-function, false).
If key-events are used it's vital to use 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.
FPS
FPS (Frames Per Second) support: Opera enables you to manipulate the speed (frames per second) of your
SVG animations using JavaScript by supporting the SVGElement.currentFps and SVGElement.targetFps
properties. These properties respectively read and control SVG frames per second; see this
Opera reference.
Integration
Opera supports the following SVG inclusion types.
In HTML: <object> element
In HTML: <iframe> element
In HTML: <embed> element
In HTML: <img> element
In CSS: background-image property
In CSS: list-style-image property
Interoperability
Some content may fail to render if sent with the wrong MIME-type, or if the namespace declarations are missing.
The correct MIME-type for svg is image/svg+xml.
The namespaces to open are svg: http://www.w3.org/2000/svg and xlink: http://www.w3.org/1999/xlink.
For CSS it should be noted that you must specify length values with units. For example:
font-size: 12; in CSS will mean the value is invalid, and thus it will be ignored.
This applies to all style elements, style attributes and external stylesheets.
The CSS content property can also embed SVG.
Painting
Support has been added for the buffered-rendering property; see section 11.10.5.
Printing
SVG is output as a bitmap image to the printer.
The output is not sent in vector format, thus the clarity of the image may be blurred.
Opera adds support for the next version of HTML - HTML5. For your reference, the preceding two external hyperlinks are
provided for HTML5 drafts/works in progress by the W3C. Please note that changes to the draft specification and notes may
be made at any time. HTML5 is a work in progress and respectively, Opera considers its implementations for HTML5 experimental
until its specification has stabilized. Support is provided for the following:
HTML5 algorithms have been implemented for detecting charsets in HTML; see W3C HTML5 section
2.8 Character encodings
HTML5 end-tag and start-tag parsing, whitespace parsing, and DOCTYPE parsing have been added; see W3C HTML5 section 9.2 Parsing HTML documents
<audio>; and <video> elements are partially supported with the start and end attributes of these two elements being removed and replaced with the global loop attribute; see <audio>, and <video>
Opera has experimental support for HTML5 Forms [14] which
is a work in progress. HTML5 Forms replaces the separate Web Forms 2.0 specification which has been integrated into the
HTML5 specification.
XHTML 1.0 and XHTML Modularization
Opera does not have a XHTML content-type mode of text/html. XHTML written as text/html is handled
just like HTML.
XHTML 1.1 support
Opera supports XHTML 1.1 [15] with these exceptions:
The colwidth attribute does not support multilengths.
The objectstandby and declare attributes are not supported.
The table cell attributes char and charoff are not supported.
Ruby annotations are not supported.
XHTML Basic
Opera supports XHTML Basic [16] with the following exceptions:
The object standby, declare attributes are not supported.
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 2.0 with the following exceptions:
Opera supports 128 and 256 bit encryption (RSA,
DSA and
DH key exchange methods) for:
Secure Sockets Layer (SSL) version 3
Transport Layer Security (TLS) 1.0, 1.1, and 1.2
This is supported for HTTP (web), NNTP (news), POP and SMTP (e-mail).
Note: SSL 2 is obsolete and no longer supported.
Further support is provided for
Generating private keys and submitting certificate requests
EV (Extended Validation)
An indicator (green bar) for EV certificates acts as an identifier in the Address bar
News
A simple online newsreader with support for encrypted newsservers and newsserver with passwords is provided.
Supports decoding of single article attachments, MIME
or unencoded.
Text and internationalization support
Unicode character set support in Opera
Opera can work with all the characters in the Unicode specification.
All text communicated to Opera from the network is converted into Unicode.
In order for Opera to render Unicode characters, the needed glyphs have to be available in the fonts on your system. This might be a problem for older Windows systems. For information on available fonts, see Unicode fonts for Windows computers
[72].
Updated Unicode character data tables from Unicode v5.0.0 to v5.1.0.
Uniblocks table now supports ranges outside Unicode plane 0. This is needed to do proper font-switching of characters outside the Unicode plane 0.
Opera implements the following writing system related functionality improvements:
font-switching: needed in order to display characters that the current font does not include
line-breaking: needed in order to break scripts written without spaces, such as Chinese, Japanese, and Korean
CJK: improved line height and underlining in Chinese, Japanese, and Korean
KDDI emojis: improved support for KDDI emojis and special characters
Multistyle: improved default fonts for non-western Web pages
Opera relies on the operating system to perform:
character shaping: contextual glyph selection, ligature forming, character stacking, combining character
support, etc.
Although Opera works with the Unicode character set and its character encodings of UTF-16 and UTF-8, most text on the Internet
is encoded in legacy encodings, for instance:
ISO 8859-1
Windows-1251
Shift_JIS (MIME name)
EUC-KR
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.
Auto-detect: in this mode Opera will attempt to detect the encoding used by the page
If the transport protocol provides an encoding name, that is used
If not, Opera will look at the page for a charset declaration
If this is missing, Opera will attempt to auto-detect the encoding, using the domain name to see if the script is a CJK
script, and if so which one
Opera can also auto-detect UTF-8
Writing script auto-detect: In this mode the user can tell that this is a Japanese or Chinese page, but that the encoding
is unknown. Opera will then analyze the text in the page to determine which encoding is used.
Encoding override: In this mode the user selects an encoding. This encoding will be used by Opera, regardless of what the
page and transport protocol claims is the encoding for the page.
Support for bidirectional text
Opera supports bidirectional text as described in Unicode [73],
HTML [74], and CSS [75].
Opera supports both the W3C Widget family of specifications and the legacy Opera Widgets format. The formats are different and not compatible. Opera Presto supports the proprietary Opera Widgets format for legacy reasons:
The Opera Widgets format predates the W3C's effort to standardize widgets.
Significant aspects of the W3C Widgets family of specifications are based on Opera Widgets.
Further information regarding Opera Presto support for the W3C Widgets family of specifications and the Opera proprietary Widgets format will be posted here as it is implemented.
New security model for widgets
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>
XML support
Overview
Opera can parse and display XML documents.
Opera can be both a validating and non-validating processor.
Documents with Content-type text/xml, application/xml or with a subtype ending on +xml
will be treated as an XML document.
If a content-type is not available, the ".xml" file extension will also make the document be treated as XML.
Opera does not use US-ASCII
as the default character set for text/xml, but otherwise follows
RFC3023 [21].
Opera follows the rules for application/xml.
We recommend using application/xml instead of text/xml, and the use of an explicit character set
declaration such as charset=UTF-8.