Web specifications supported in Opera Presto 2.1.1

This document and its associated tables apply to all versions of Opera 9.6x on FreeBSD, Mac, Linux, Solaris, Windows, plus Opera Mobile running on the Opera Presto 2.1.1 user agent engine. Web specifications support in previous Opera versions can be found at Web specifications supported in Opera [1].

Support tables

HTML and XHTML support

Support tables
DOCTYPE Switches

HTML 4.01

Opera supports HTML 4.01 [2] with these exceptions:

  • The longdesc attribute of the img element is not supported.
  • Event attributes are not supported for the option element.
  • The col width attribute does not support multilengths.
  • The object standby and declare attributes are not supported.
  • The table cell attributes char and charoff are not supported.

HTML 5 (a draft in development)

W3C References
W3C: Draft of the HTML 5 Specification (multipage version) [3]
W3C: Draft of the Web Developer’s Guide to HTML 5 [4]

Opera adds support for the next version of HTML - HTML 5. For your reference, the following two 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:

HTML 5 Forms

Support table
HTML 5 Forms

Opera has experimental support for HTML 5 Forms [14] 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.

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:

  • Event attributes are not supported for the option element.
  • The col width attribute does not support multilengths.
  • The object standby and declare attributes are not supported.
  • The table cell attributes char and charoff are not supported.
  • Ruby annotations are not supported.


Opera supports XHTML Basic [16] with the following exceptions:

  • The object standby, declare attributes are not supported.
  • The inputmode attribute is supported, however
    • its implementation is platform-dependant
    • it is not enabled by default
    • it is not in the Opera 9.6 Desktop version

OMA XHTML Mobile Profile

Opera supports the XHTML Mobile Profile 1.0 and 1.1 [17] and extensions to XHTML Basic with no exceptions.

XHTML+Voice Profile (X+V)

With the IBM Voice component, Opera fully supports the XHTML+Voice profile 1.2 [19] (and the Mobile Profile subset).

  • The support of X+V includes support of CSS3 Speech (with an -xv- prefix as this module is under preparation).
  • X+V needs to be served as an XML media type (application/xml, application/xhtml+xml, application/x-xhtml+voice+xml) for XML Events to take effect.
  • For more information see the X+V developer documentation [20].

WML 1.3 and 2.0

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:

  • the columns attribute
  • the input formatting code <lang:class>
  • the wml:getvar element

XML support

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.

XSLT, XPath and XSL-FO

Opera supports XSLT style sheets with the <?xml-stylesheet?> processing instruction; see Associating Style Sheets with XML documents Version 1.0 [22].

Opera supports XSLT 1.0 and XPath 1.0 with the following exceptions:

  • The namespace-alias element is not supported.
  • Opera does not support XSL-FO.

XML namespaces and XML ID

Opera fully supports XML namespaces [23].

  • Namespace support for text/html was discontinued with Opera 9, and is not supported.
  • Opera supports the xml:id attribute [24].

XML Events

Opera supports XML Events [25] and it is used in X+V.

  • HTML script and VoiceXML form can be handlers for XML Events.

MathML Support

MathML for CSS profile

Support table
MathML for CSS profile elements/attributes

Opera supports the current working draft of the MathML for CSS profile [26] with the following exceptions:

  • Radicals and some fences do not inherit text color from document.
  • White space characters between token elements (mi, mn, mo, ms, mspace, mtext) are not discarded.
  • Class and style attributes are not supported.

CSS support

Support tables
CSS At-rules
CSS Properties
CSS3 Media Features/Queries
CSS Selector Tests
CSS Selectors

CSS Level 1

Opera supports all of CSS1 [27].

CSS Level 2

Opera supports CSS2 [28] with the following exceptions:

CSS Level 2 Revision 1

CSS 2.1 [41] is currently a W3C Candidate Recommendation.

  • Its compliance is measured against the latest version, but the final Recommendation may differ.
  • Opera supports CSS2.1 with the exception of:
    • the visibility: collapse property value — see section 11.2 [42]

CSS3 - proposed properties supported by Opera

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.

CSS Mobile profile

Opera fully supports the CSS Mobile profile [55].


WAP CSS [56] 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"?>

If no style sheet is present and the page is not namespaced to HTML, Opera will use the initial values on all CSS properties to display the document.

  • all elements will be inline
  • all text will be rendered in the same font

WAI-ARIA support

Opera's participation

WAI-ARIA is a proposal/work in progress. Opera participates within this working group which will ultimately release the WAI-ARIA specification. Please see the WAI-ARIA Working Draft [57] for details.

Opera supports the HTML implementation of WAI-ARIA according to the latest draft. Here is an example:

<div role="checkbox" aria-checked="true" tabindex="0"></div>

Other markup language implementations are experimental at this stage.

Widgets support

Widgets are Web applications that run on a desktop, mobile or other device. Opera supports Widgets [58]. The Opera Widgets specification was submitted to the W3C Widgets 1.0 [59] and is currently a W3C working draft.

ECMAScript support

Support table

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 [60], 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.

DOM support

Support tables
DOM 2 Core and XML modules
DOM 2 HTML Objects
DOM 2 UI, Mouse and Mutation Event modules
DOM 2 View, Style, CSS1 and CSS2 modules
XMLHttpRequest ('Ajax')

DOM 2 Core

Opera has full support for the Fundamental interfaces of DOM 2 Core [61], with minor exceptions. Opera does not support these Extended interfaces:

  • Notation
  • Entity
  • EntityReference


Opera has full support for DOM 2 HTML [62], with minor exceptions corresponding to HTML support exceptions.

DOM 2 Events

Opera has full support of DOM 2 Events [63] with no exceptions.

  • The work on DOM 3 Events [64] has restarted at the W3C.
  • We expect to have no exceptions when it becomes a recommendation.

DOM 2 Style

Opera supports DOM 2 Style [65] with some exceptions.

  • This module is under development in the W3C and we expect to fully support the updated version.

DOM 2 Range

Opera supports the DOM 2 Range [66].

DOM 2 Traversal

Opera supports DOM 2 Traversal [67], with some exceptions.

DOM 3 Element Traversal specification (Working Draft)

Opera supports the Element Traversal specification (W3C Proposed Recommendation) [68].

  • The ElementTraversal interface allows script navigation of the elements of a DOM tree, excluding all other nodes in the DOM, such as text nodes.
  • It also provides an attribute to expose the number of child elements of an element.

DOM 3 Load and Save

Opera supports Load and Save [69], with some exceptions.

DOM 3 XPath

Opera supports DOM 3 XPath [70], with the same exceptions as with XSLT.

  • This DOM specification is currently a W3C note.

XMLHttpRequest (XHR)

XMLHttpRequest is a work in progress [71], and we expect to fully support it when it becomes a recommendation.

Networking protocols support


Opera has full support for HTTP 1.0 and HTTP 1.1. Here are some highlights:

  • Persistent connections (multiple request/response through one connection)
  • Cachecontrol for no-cache (always check for fresh document) and no-store (don't save to disk)
  • Basic Authentication (passwords).
    • Supports Digest Authentication, excepting integrity check on body.
  • Resume download, provided the server supports it
  • SSL, TLS support (also through proxy/firewall)
  • Proxy for HTTP, FTP, Gopher and WAIS
  • bittorrent, IRC, IMAP, POP, SMTP and NNTP
  • FTP, including resume download is supported.
    • It is possible to download to file for both FTP and HTTP.


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 and 1.1.

  • This is supported for HTTP (web), NNTP (news), POP and SMTP (e-mail).
  • Note: SSL 2 is obsolete and no longer supported.
  • Support for generating private keys and submitting certificate requests.
  • Support for 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 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].

Opera implements the following writing system related functionality:

  • 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, Korean, and Japanese

Opera relies on the operating system to perform:

  • character shaping: contextual glyph selection, ligature forming, character stacking, combining character support, etc.

Legacy encoding support

Support table
Legacy encodings in addition to Unicode

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
  • 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].

Graphics support

<canvas> element

Support table
<canvas> element

Opera supports the <canvas> [76] element specification, which is currently a work in progress.

Scalable Vector Graphics (SVG)

Support tables
SVG attributes
SVG CSS properties
SVG DOM interfaces
SVG elements

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.

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.

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.

Raster Graphics

Opera fully supports:

  • GIF89a
  • JPEG
  • BMP
  • ICO
  • WBMP
  • PNG [77] including alpha channel (degrees of transparency) and gamma support (device independent colors)
  • APNG

Appendix A: Abbreviations and acronyms

Abbreviations and acronyms are referenced directly in the document and are also defined here.

Application Progamming Interface
Animated Portable Network Graphics
Bitmap graphic filename extension
Chinese Japanese Korean (unicode UTF-8 encoding standard)
Cascading Style Sheets
Document Object Model
Digital Signature Algorithm
Diffie-Hellman (public key encryption algorithm)
European Computer Manufacturers Association
Korean Character Encoding Standard
File Transfer Protocol
Graphic Interchange Format filename extension
Hypertext Markup Language
Hypertext Transfer Protocol
International Business Machines
Icon graphic filename extension
Internet Message Access Protocol
Internet Relay Chat
International Organization for Standardization
Joint Photographic Experts Group graphic filename extension
Mathematical Markup Language
Multimedia Internet Message Extensions
Network News Transport Protocol
Open Mobile Alliance
Post Office Protocol
Portable Network Graphics
Rivest, Shamir and Adleman (public key encryption technology)
Shift Japanese Industrial Standard (character encoding system)
Simple Mail Transfer Protocol
Secure Sockets Layer
Scalable Vector Graphics
Transport Layer Security
United States of America Standard Code for Information Interchange
Unicode Transformation Format
Voice eXtensible Markup Language
Web Accessibility Initiative-Accessible Rich Internet Applications
Wide Area Information Server
Wireless Application Protocol
Wireless Bitmap (WAP) graphic filename extension
Wireless Markup Language
XHTML+Voice Profile
eXtensible Hypertext Markup Language
Extensible Markup Language
XML Path Language
Extensible Style sheet Language Format Objects
Extensible Style sheet Language Transformation


Opera Help

Need help? Hit F1 anytime while using Opera to access our online help files, or go here.