Web specifications supported in Opera 9.5
Overview
This page applies to Opera 9.5 on FreeBSD, Mac, Linux, Solaris and Windows, as well as Opera Mobile. For Opera, version 9, see Specifications for Opera 9.
This Web document has been transformed into portable document format (.pdf) for your convenience. Note that a .pdf reader installed in your computer is required to view it.
HTML and XHTML support
Complete table of HTML, XHTML and WML support
HTML 4.01, XHTML 1.0 and XHTML 1.1
Opera supports HTML 4.01, XHTML 1.0 and XHTML 1.1 with these exceptions:
- The
longdescattribute of theimgelement is not supported. - Event attributes are not supported for the
optionelement. - The
colwidthattribute does not support multilengths. - The
objectstandbyanddeclareattributes are not supported. - The table cell attributes
charandcharoffare not supported. - The
defer=""attribute onscriptelements is not supported. - The
basefontelement is not supported. - Ruby annotations are not supported.
Opera uses the HTML parser for text/html resources and the XML parser for resources with a XML MIME-type such as application/xhtml+xml. Please note that namespaces are not supported for text/html; this practice was discontinued with the release of Opera 9.
HTML 5 (a draft in development)
Opera 9.5 adds support for the next version of HTML - HTML 5. Note that HTML 5 is a work in progress, thus changes to the draft specification may be made at any time. Respectively, Opera considers its implementations for HTML 5 experimental until its specification has stabilized. Support is provided for the following:
<canvas>element/APIcontenteditableattributedesignModeDOM attributeinnerHTMLgetElementsByClassNameembedelement- Audio object
- Cross-document messaging
- Server-sent DOM events
Web Forms 2.0
Opera has experimental support for Web Forms 2.0. Web Forms 2.0 is a work in progress.
XHTML Basic
Opera supports XHTML Basic with the following exceptions:
- The object
standby,declareattributes are not supported. - The
inputmodeattribute is supported; however,- its implementation is platform-dependant
- it is not enabled by default
- it is not in the Opera 9.5 Desktop version
OMA XHTML Mobile Profile
Opera supports the XHTML Mobile Profile 1.0 and 1.1 and extensions to XHTML Basic with no exceptions.
- It supports XHTML Mobile Profile 1.2 with the exception of the
declareattribute ofobject.
XHTML+Voice (X+V)
With the IBM Voice component, Opera fully supports the XHTML+Voice profile 1.2 (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.
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
columnsattribute - the input formatting code
<lang:class> - the
wml:getvarelement
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/xmlor with a subtype ending on+xmlwill be treated as an XML document. - If a
content-typeis 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. - We recommend using
application/xmlinstead oftext/xmlor use explicit character set declaration.
XSLT, XPath and XSL-FO
Opera supports XSLT 1.0 and XPath 1.0 with the following exceptions:
- The
namespace-aliaselement is not supported. - Opera does not support XSL-FO.
XML ID
Opera supports the xml:id attribute.
XML namespaces
Opera fully supports XML namespaces.
XML Events
Opera supports XML Events and it is used in SVG and X+V.
- HTML
scriptand VoiceXMLformcan be handlers for XML Events.
XML SVG
Opera supports the XML <svg:handler> element. This element only executes its content when called from an XML Event listener.
XML and CSS
Opera allows CSS style sheets and XSLT transformation sheets to be linked to XML with an XML Processing instruction according to
- the W3C Recommendation "Associating Style Sheets with XML Documents"
- the HTTP
Link:header proposed for standardization in the IETF
- 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 or SVG, Opera will use the initial values on all CSS properties to display the document. All elements will be inline, and all text will be rendered in the same font.
MathML Support
MathML for CSS profile
Opera 9.5 supports the current working draft of the MathML for CSS profile 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. classandstyleattributes are not supported.
The following tabular data table contains specific elements/attributes included in the profile:
| Element | Supported | Attribute | Values | Default |
|---|---|---|---|---|
maction | Yes | actiontype | (tooltip) | #REQUIRED |
math | Yes | display | (block | inline) | inline |
xmlns | http://www.w3.org/1998/Math/MathML | #REQUIRED | ||
menclose | Yes | notation | (bottom | box | left | right | top | horizontalstrike) | #REQUIRED |
merror | Yes | |||
mfenced | Yes | open | CDATA | ( |
close | CDATA | ) | ||
mfrac | Yes | linethickness | (0 | 1 | 2 | medium | thick) | medium |
mi | Yes | mathvariant | (normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospace) | italic |
mn | Yes | mathvariant | (normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospace) | normal |
mo | Yes | mathvariant | (normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospace) | normal |
largeop | (true | false) | false | ||
separator | (true | false) | false | ||
form | (prefix | infix | postfix) | context dependent | ||
mover | Yes | |||
mphantom | Yes | |||
mroot | Yes | |||
mrow | Yes | |||
ms | Yes | mathvariant | (normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospace) | normal |
lquote | CDATA | " | ||
rquote | CDATA | " | ||
mspace | Yes | linebreak | (auto | newline | goodbreak) | auto |
msqrt | Yes | |||
msub | Yes | |||
msubsup | Yes | |||
msup | Yes | |||
mtable | Yes | frame | (none | solid | dashed) | none |
rowalign | (top | bottom | center | baseline) | baseline | ||
columnalign | (left | center | right) | center | ||
rowlines | (none | solid | dashed) | none | ||
columnlines | (none | solid | dashed) | none | ||
mtd | Yes | rowalign | (top | bottom | center | baseline) | baseline |
columnalign | (left | center | right) | center | ||
mtext | Yes | mathvariant | (normal | bold | italic | bold-italic | sans-serif | bold-sans-serif | sans-serif-italic | sans-serif-bold-italic | monospace) | normal |
mtr | Yes | rowalign | (top | bottom | center | baseline) | baseline |
columnalign | (left | center | right) | center | ||
munder | Yes | |||
munderover | Yes |
CSS support
CSS Level 1
Opera supports all of CSS1.
CSS Level 2
Opera supports CSS2 with the exception of these
- properties:
font-size-adjustfont-stretchmarker-offsetmarks
- list style types:
cjk-ideographichebrewhiraganahiragana-irohakatakanakatakana-iroha
- property/value combinations:
display: markertext-align: <string>visibility: collapse
- named pages (as described in section 13.3.2)
- the
@font-faceconstruct - URI values for the
cursorproperty
CSS Level 2 Revision 1
CSS 2.1 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: collapseproperty value
- the
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 on an experimental basis.
- selectors level 3
- the HSL color model
- partial support for Media Queries
contentapplicable on all elements, not just on the:beforeand:afterpseudo-elementsbox-sizingopacityoverflow-xoverflow-ytext-shadow, including multiple shadowsoutline-offsetcurrentColor-o-background-size-o-table-baseline-o-text-overflownav-up, nav-right, nav-down, nav-left
CSS Mobile profile
Opera fully supports the CSS Mobile Profile 1.0. Note that the CSS Mobile Profile 2.0 is in draft stage and coinsidered a work in progress. For your guide, Opera support for the 2.0 Profile will be added to this document as it occurs.
WAP CSS
WAP CSS is an extension of the CSS Mobile Profile. Opera fully supports WCSS versions 1.0 and 1.1.
WAI-ARIA support
Opera's participation
WAI-ARIA is a proposal/work in progress. Opera participates in this working group which will ultimately release the WAI-ARIA specification. Please see the WAI-ARIA Working Draft for details.
Opera 9.5 supports parsing WAI-ARIA in HTML with the attributes in a null namespace ("in no namespace"), as per the latest decisions on WAI-ARIA at the time Opera 9.5 was released. This support is experimental, while the WAI-ARIA standard stabilizes.
Widgets support
Opera supports widgets and accordingly has produced the Opera Widgets SDK.
- Widgets are client-side Web applications that run on the user's desktop, mobile or other device.
- The Opera Widgets specification was submitted to the W3C and Widgets 1.0 is currently a W3C working draft.
ECMAScript support
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 4
Opera is actively participating in ECMA TC39 which is involved with developing successors to the current specification. Opera will support future editions of the language as consensus is reached and the specs become finalized.
DOM support
- Complete table of DOM 2 Core support
- Complete table of DOM 2 HTML Objects support
- Complete table of DOM 2 Events support
- Complete table of DOM 2 Style support
- Complete table of DOM SVG support
- Complete table of
XMLHttpRequestsupport - Complete table of
<canvas>support
DOM 2 Core
Opera has full support for the fundamental interfaces of DOM 2 Core with minor exceptions. Opera does not support these extended interfaces:
- Notation
- Entity
- EntityReference
DOM 2 HTML
Opera has full support for DOM 2 HTML with minor exceptions corresponding to HTML support exceptions.
DOM 2 Events
Opera 9 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.
DOM 2 Style
Opera supports DOM 2 Style with some exceptions.
- The CSS object model is under development in order to replace the existing DOM 2 style specification. Opera actively participates in this work, and we expect to support fully the new object model.
DOM 2 Range
Opera supports the DOM 2 Range.
DOM 2 Traversal
Opera supports DOM 2 Traversal, with some exceptions.
DOM 3 Element Traversal specification (Working Draft)
Opera supports the Element Traversal specification (Working Draft).
- 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 with some exceptions.
DOM 3 XPath
Opera supports DOM 3 XPath with the same exceptions as with XSLT.
- This DOM specification is currently a W3C note.
DOM SVG
Note: see the preceding DOM SVG table and also the SVG section in following Graphics support topic.
Opera supports DOM SVG with the following version 1.1 exceptions:
SVGAltGlyphDefElementSVGAltGlyphElementSVGAltGlyphItemElementSVGCSSRuleSVGColorProfileElementSVGColorProfileRulevSVGCursorElementSVGEventSVGExternalResourcesRequiredSVGGlyphRefElementSVGICCColor(no ICC color support)SVGLangSpaceSVGRenderingIntentSVGViewSpecSVGZoomEvent
XMLHttpRequest (XHR)
Opera actively participates in the W3C Web Applications Working Group, which is repsonsible for XMLHttpRequestspecification. The XMLHttpRequest specification is in draft status as of the release date of Opera 9.5. We expect to support it fully when it becomes a recommendation.
<canvas>
Opera supports the <canvas> element specification, which is currently a work in progress.
Networking protocols support
Protocols
Opera has full support for HTTP 1.0 and HTTP 1.1. Highlights include the following
- Persistent connections (multiple request/response through one connection)
- Cache-Control
no-cache(always check for fresh document)no-store(do not save to disk)must-revalidate(only for HTTPS pages, which indicates that the document should be revalidated during history navigation)
- 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
- HTTP upload of files is supported.
Encryption
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), IRC (chat), 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 Extended Validation (EV).
- An indicator (green bar) for EV certificates acts as an identifier in the Address Bar of the browser.
IRC
Opera supports the same preceding encryption standards for IRC.
Opera supports the preceding encryption standards for Mail. This includes:
- support for mail (IMAP/POP, SMTP) and mail encoded with MIME, HTML, SVG or RFC2822 (the current mail standard).
News
Opera supports NNTP, along with RSS and Atom feeds.
- A simple online newsreader with support for encrypted newsservers and newsservers with passwords is provided, which 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 supported by Opera, such as:
- Windows 95®
- Windows 98®
- This might be a problem for older Windows systems supported by Opera, such as:
- For information on available fonts, see Unicode fonts for Windows computers.
Opera 9.5 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 and so forth.
Support for bi-directional text
Opera supports bi-directional text as described in Unicode, HTML, and CSS.
Legacy encoding support
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.
| Encoding | Category | Comments |
|---|---|---|
| ISO 8859-1 | Latin | |
| ISO 8859-2 | Latin | Used in Eastern Europe |
| ISO 8859-3 | Latin | Rare |
| ISO 8859-4 | Latin | Sami and Baltic country |
| ISO 8859-9 | Latin | Turkish |
| ISO 8859-10 | Latin | Inuit, Sami, and Icelandic |
| ISO 8859-13 | Latin | Rare |
| ISO 8859-14 | Latin | Celtic |
| ISO 8859-15 | Latin | Intended to supersede 8859-1 |
| Windows-1250 | Latin | Used in Eastern Europe |
| Windows-1252 | Latin | |
| Windows-1254 | Latin | Turkish |
| Windows-1257 | Latin | Baltic |
| Windows-1258 | Latin | Vietnamese |
| VISCII | Latin | Vietnamese |
| IBM 866 | Cyrillic | |
| ISO 8859-5 | Cyrillic | |
| koi8-r | Cyrillic | |
| koi8-u | Cyrillic | Ukrainian version of 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 | Also known as TIS-620 |
| Windows-874 | Thai | Extension of 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 | Also erroneously known as GB 2312 |
| HZ-GB-2312 | Chinese | Primarily used in e-mail |
| EUC-TW | Chinese | |
| GBK | Chinese | EUC-CN extension |
| EUC-KR | Korean |
Because many pages are mislabeled, Opera provides various options to find the encoding:
- Auto-detect
- In this mode, Opera will attempt to detect the encoding used by the Web page.
- Writing script auto-detect
- In this mode, the user can tell that this is a Japanese or Chinese Web page but that the encoding is unknown. Opera will then analyze the text in the Web 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 Web page and transport protocol claims is the encoding for the Web page.
Graphics support
Raster Graphics
Opera fully supports:
- GIF89a
- JPEG
- BMP
- ICO
- WBMP
- PNG including alpha channel (degrees of transparency) and gamma support (device independent colors)
- APNG (Animated PNG images)
Scalable Vector Graphics (SVG)
- Complete table of SVG elements supported
- Complete table of SVG attributes supported
- Complete table of SVG CSS properties supported
- Complete table of SVG DOM interfaces supported
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,onkeydownandonkeypressdo not register a corresponding event listener for those events. - In Opera it is possible to install listeners for key-events with DOM, for example:
element.addEventListener('keydown', keyhandler-function, false). - If key-events are used it is 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.
Integration
Opera supports the following SVG inclusion types:
html:objectelementhtml:iframeelementhtml:embedelementhtml:imgelement- in CSS:
background-imagelist-style-image
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/svgand 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 style sheets.
- The CSS
contentproperty can also embed SVG.
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.
Appendix A: Abbreviations and acronyms used in this document
| Abbreviation/Acronym | Description |
|---|---|
| APNG | Animated Portable Network Graphics |
| BMP | Bitmap graphic filename extension |
| CJK | Chinese Japanese Korean (unicode UTF-8 encoding standard) |
| CSS | Cascading Style Sheets |
| DCC | Digital Content Creation |
| DOM | Document Object Model |
| ECMA | European Computer Manufacturers Association |
| EUC-KR | Korean Character Encoding Standard |
| EV | Extended Validation |
| FTP | File Transfer Protocol |
| GIF | Graphic Interchange Format filename extension |
| HTML | Hypertext Markup Language |
| HTTP | Hypertext Transfer Protocol |
| ICO | Icon graphic filename extension |
| IMAP | Internet Message Access Protocol |
| IRC | Internet Relay Chat |
| ISO | International Organization for Standardization |
| JPEG | Joint Photographic Experts Group graphic filename extension |
| MIME | Multimedia Internet Message Extensions |
| NNTP | Network News Transport Protocol |
| OMA | Open Mobile Alliance |
| POP | Post Office Protocol |
| PNG | Portable Network Graphics |
| RSA | Rivest, Shamir and Adleman (public key encryption technology) |
| RSS | Really Simple Syndication |
| SDK | Software Development Kit |
| SHIFT-JIS | Shift Japanese Industrial Standard (character encoding system) |
| SMTP | Simple Mail Transfer Protocol |
| SSL | Secure Sockets Layer |
| SVG | Scalable Vector Graphics |
| TLS | Transport Layer Security |
| UTF | Unicode Transformation Format |
| WAI-ARIA | Web Accessibility Initiative-Accessible Rich Internet Applications |
| WAIS | Wide Area Information Server |
| WAP | Wireless Application Protocol |
| WBMP | Wireless Bitmap (WAP) graphic filename extension |
| WML | Wireless Application Protocol Markup Language |
| XHTML | Extensible Hypertext Markup Language |
| XML | Extensible Markup Language |
| XPath | XML Path Language |
| XSL-FO | Extensible Style sheet Language Format Objects |
| XSLT | Extensible Style sheet Language Transformation |
