Opera - the fastest browser on earth!
BeOS EPOC Linux Mac Windows
search:
 

Home
Download
Purchase
Features
Specifications
OperaShow
Localization
Accessibility
Sysadmin's Handbook
Opera.ini
Plugins
Support Desk
Partners
Promote Opera
Press Room
Advertise
Company
Opera Community
MyOpera
OperaMail 
 

Web specifications supported in Opera 4 - the details

Opera HTML support

Opera 4.02 supports HTML 4.01 with these exceptions:

Intrinsic event attributes

These attributes are not supported:

  • Any event attribute for option
  • onblur, onfocus for select, a
  • onload for frameset
  • onreset for form
  • onunload for body, frameset
  • ondblclick
  • onmousemove, onmouseup, onmousedown
  • onkeyup, onkeydown, onkeypress

Form elements

These form elements are not supported: button, label, legend. These form attributes are not supported: accept, accept-charset, disabled, for, readonly.

Table elements

Opera supports HTML 3.2 style table elements fully (ie. table, caption, tr, th and td). Opera handles tfoot properly (it is always displayed at the bottom at a table), otherwise Opera doesn't support the new HTML 4.01 elements (col, colgroup, thead, tfoot, tbody) and attributes (abbr, axis, char, charoff, frame, headers, rules and scope). Opera doesn't assign styles to the grouping elements (tbody, tfoot and thead).

Other issues

  • The a element attributes coords, charset, and hreflang and shape. Links trigger on mousedown, not mouseup. There is no tool tip displayed on mouseover.
  • The deprecated ol attribute start and the li attribute value aren't fully supported
  • The deprecated element s is not supported, but the equivalent deprecated element strike is supported
  • The bidirectional override element bdo and the dir attribute are not supported. The lang attribute is not supported (in for instance q).
  • The attributes accesskey, tabindex are not supported.
  • Opera supports object, but not the attributes align, classid, codebase, codetype, data and standby.
  • Opera doesn't support the applet attributes align and archive
  • Opera has no particular support for link apart from rel="stylesheet", nor for the meta attribute scheme or the head attribute profile.
  • The deprecated hr noshade attribute has no effect, neither does the deprecated attribute compact.
  • The elements del and ins when used inline may start a new block

CSS support

Opera 4.02 supports all of CSS1.

Opera 4.02 supports all of CSS2 with the exception of:

  • Opera 4.02 is a visual browser and does not support Aural CSS
  • these properties: caption-side, clip, cursor, direction, font-size-adjust, font-stretch, marker-offset, marks, text-shadow, unicode-bidi, overflow, z-index and all outline properties
  • the system values on the font property
  • system colors (as described in section 18.2)
  • the values added to list-style-type in CSS2
  • these property/value combination: 'display: marker', 'text-align: <string>', 'visibility: collapse', 'content: <url>'
  • named pages (as described in section 13.3.2)
  • the '@font-face' construct

All CSS2 selectors are supported with the exception of:

  • :first-child, :focus, :lang
  • combinations of several pseudo-classes in the same simple selector

External Opera CSS conformance charts

Two external sites offer conformance information on Opera 4: Eric Meyer's Mastergrid and RichInStyle's Opera 4 page.

XML support

Opera 4.02 can parse and display XML documents. Documents with Content-type "text/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.

XML and CSS

In order to display an XML document, a CSS style sheet must 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, Opera 4.0 will use the initial values on all CSS propoerties to display the document. All elements will be inline, and all text will be rendered in the same font.

XSL and XSLT

Opera does not support XSL formatting objects and neither does it natively support XSLT transformations. XML documents transformed server side will be parsed and displayed by Opera just like any other XML document.

XML namespaces

Opera 4.02 supports XML namespaces. The most common use of namespaces is XHTML. Here is a simple XHTML document:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>A simple example</title>
    <style type="text/css">
      body { color: red; background: white }
    </style>
  </head>
  <body>
    <p>This is a simple paragraph.</p>
  </body>
</html>

In order for XHTML documents to be parsed as XML and not as HTML, they must be server with the "text/xhtml" or "text/xml" Content-type.

Opera 4.02 uses CSS-like properties to attach information to XML elements that cannot otherwise be represented. Three extension properties have been implemented to allow hyperlinks and images to be included in XML documents. Most often it's better for authors to use XHTML -- rather than the properties described below -- to represent document semantics, but they are described here for reference:
Property: -link-set
Values: none | attr(<attribute-name>) | content()
Initial: none
Inherited: no
Description: This property sets the value of the 'link' variable which can later be used to generate a link through the 'opera-use-link-source' property.
Property: -link-use
Values: none | current | next
Initial: none
Inherited: no
Description: This property sets the element to be a source anchor and, if so, declares which value of the 'link' variable that should be used: the current or the next.
Property: -replace
Values: none | attr(x)
Initial: none
Inherited: no
Description: This property declares the element to be replaced or not. If replaced, the attr() function is used to point to the attribute where the URI to the content can be found.

WML support

Opera 4.02 comes with an experimental implementation of the Wireless Markup Language (WML). Opera 4.02 lacks support for:

  • these elements: timer, next
  • these attributes: onpick
  • variables

The rendering of WML documets is controlled with a CSS style sheet called "wml.css" in Opera's installation directory. When editing this file you will need to restart Opera for the changes to take effect.

 

ECMAScript support

Note: ECMAScript is the standardised version of Javascript Core. It is being standardised through the ECMA standards body. ECMAScript does not include browser related objects, these are specified in the Javascript environment/DOM support section.

Opera 4.02 supports the entire ECMA-262 version 2 standard. Version 2 is more or less aligned with Javascript 1.3. The following items are missing for Opera 4.02 to have complete Javascript 1.3 Core support:

  1. Unicode support is missing,
  2. locale methods have not been implemented.

Opera also supports most of the upcoming version 3. Version 3 is aligned with Netscape's Javascript 1.4 Core. The features that Opera is missing from ECMA-262 version 3 is:

  1. Exception handling has not been sufficiently tested.

Javascript environment: DOM and DHTML

As of August 2000, the following features are missing from Javascript 1.3 support:

  1. the event variable passed to event handlers does not match the javascript standard,
  2. new Option is not implemented,
  3. cannot set the SRC attribute of iframes,
  4. window.open() does not return the opened window when opening a new window without a url.

We are currently starting work on DOM. This work is being based on the DOM 2.0 standard. We have also used some of Microsoft's extensions to DOM, notably the method for accessing CSS properties through a style attribute ot the HTML elements. Modifying the document structure is not yet possible (ie. you cannot add or remove HTML elements). There are no plans to support Netscape's dynamic layers.

Presently, we support setting and getting the following CSS attributes for absolute positioned HTML elements:

  • visibility
  • pixelLeft, pixelTop
  • pixelWidth, pixelHeight
  • zIndex
  • color, background (only for setting of colors)

We support the following attributes in the document object:

  • getElementsByTagName()
  • getElementById()
  • getElementByName()

We support the following attributes in HTML Elements:

  • getElementsByTagName()
  • contains()
  • parentNode

Other objects and properties that Opera supports

document

methods

  • open()
  • close()
  • write()
  • writeln()
  • getElementById()
  • getElementByName()
  • getElementByTagName()

properties

  • all (available only when running with IE user agent)
  • title
  • referrer
  • domain
  • URL
  • body
  • cookie
  • lastModified
  • images
  • applets
  • links
  • forms
  • anchors
  • location
  • [form or image element name]
{event}

properties

  • srcElement (available only when running with IE user agent)
  • target
  • currentTarget
  • screenX
  • screenY
  • clientX
  • clientY
  • altKey
  • ctrlKey
  • shiftKey
  • relatedTarget
{HTML Collection}

This is returned by all methods that should return a list of elements, eg. document.links

methods

  • item()
  • namedItem()

properties

  • length
{HTML Element}

methods

  • getElementByTagName()
  • contains()

properties

  • document
  • parentNode
  • style
  • [attribute name]
location

methods

  • reload()
  • replace()

properties

  • hash
  • host
  • hostname
  • href
  • pathname
  • port
  • protocol
  • search
navigator

methods

  • javaEnabled()
  • taintEnabled()

properties

  • plugins
  • mimeTypes
  • userAgent
  • appCodeName
  • appVersion
  • language
  • platform
  • appName
screen

properties

  • availHeight
  • availWidth
  • colorDepth
  • height
  • pixelDepth
  • width
style

properties

  • background (can currently only set colors)
  • color
  • pixelTop
  • pixelLeft
  • pixelWidth
  • pixelHeight
  • visibility
  • zIndex
window

methods

  • alert()
  • blur()
  • clearInterval()
  • clearTimeout()
  • close()
  • confirm()
  • focus()
  • name()
  • moveTo()
  • open()
  • prompt()
  • resizeTo()
  • scrollTo()
  • setInterval()
  • setTimeout()

properties

  • defaultStatus
  • document
  • innerHeight
  • innerWidth
  • locationbar
  • length
  • name
  • opener
  • outerHeight
  • outerWidth
  • pageXOffset
  • pageYOffset
  • self
  • window
  • status
  • top
  • parent
  • history
  • location
  • navigator
  • screen
  • frames
  • [frame name]
  • [form or image element name]

Networking support

Opera 4.02 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. No current plans to support NTLM,
  • Resume download, provided the server supports it,
  • SSL/TLS support (also through proxy/firewall),
  • Proxy for HTTP, FTP, Gopher and WAIS.

Encryption: 128 bit encryption (RSA key exchange only) for the Secure Sockets Layer (SSL) versions 2 and 3, and the successor Transport Layer Security (TLS) v1.0. Supported for HTTP and NNTP. Support for generating private keys and submitting certificate requests.

News: simple online newsreader with support for encrypted newsservers and newsserver with passwords. Can decode single article attachments, MIME or uuencoded.

FTP, with resume download, provided the server supports it.

May download to file for both FTP and HTTP.

No internal support for SOCKS. Must use Socksifier. SOCKS is planned for a later version.