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.
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.
Opera has full support for the Fundamental interfaces of DOM 2 Core
, with minor exceptions. Opera does not support the following Extended interfaces on purpose,
expecting a future revision of DOM Core will remove them:
DOM 3 Core
Opera supports several carefully selected DOM 3 Core features. Several of these are:
DOM 2 HTML
Opera has full support for DOM 2 HTML, with minor exceptions corresponding
to HTML support exceptions.
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.
Support has been added for the OpenGL 2D/3D graphics API; see OpenGL API
Support has been added for the Direct3D device driver interface (DDI); see Direct3D
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
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',
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 (Frames Per Second) support: Opera enables you to manipulate the speed (frames per second) of your
properties. These properties respectively read and control SVG frames per second; see this
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
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.
Support has been added for the buffered-rendering property; see section 11.10.5.
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:
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,
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
A simple online newsreader with support for encrypted newsservers and newsserver with passwords is provided.
Supports decoding of single article attachments, MIME
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
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
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:
Shift_JIS (MIME name)
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 ,
HTML , and CSS .
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
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
attribute to the
element in the config.xml of your widget with the value
"public". For example:
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.
can enable network access for either private networks, public networks, or both. For example:
<widget network="public private">
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
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.