HTML Logo by World Wide Web Consortium ( Click to learn more about our commitment to accessibility and standards.

Moving forward with Composr

ocPortal has been relaunched as Composr CMS. ocPortal 9 is superseded by Composr 10.

Head over to for our new site, and to our migration roadmap. Existing ocPortal member accounts have been mirrored.

ocPortal Tutorial: Browser version requirements

Written by Chris Graham, ocProducts
This is a tutorial that details the default browser requirements for visitors to an ocPortal site.

The browser wars and vendors/versions

Towards the end of the 1990s, after Microsoft started seriously competing with Netscape rather than matching it, there was a very fast period of Internet development. Microsoft and Netscape both created technologies and submitted them to the W3C for standardisation, and the two browsers developed head-to-head, until Netscape essentially went out of business due to loss of sales when Internet Explorer was bundled with Windows and all ISPs switched to supporting it instead of Netscape Navigator.
Once Netscape was truly 'buried', Internet Explorer essentially stagnated for many years, left with a lot of rough edges with respect to the standards the W3C had designed and moved forward in the interim. Somewhat in the sidelines, Netscape was rebuilt in Open Source as a browser framework designed specifically to standards (packaged as Mozilla, and more recently Firefox), and browsers such as Opera and Konqueror also got developed to be of a similar quality. The renewed competition, and the time for 'the dust to settle' has provided the environment for a movement for web sites to strictly be designed such that the web technologies they use draw on W3C/Javascript standards only. This has a left an environment where Internet Explorer is clearly seen to be inferior in terms of standard compliance, and browser compatibility mostly involves avoiding features that IE does not support or flaws in implementation. However, this is changing, as Microsoft woke up to their popular competition from Firefox, and released Internet Explorer version 7 (and then, version 8, and soon version 9).

ocPortal is designed to work on all serious modern browsers. At the time of writing, this means that we aim to support:
  • IE9
  • IE8 (without full display fidelity)
  • Opera (a popular, commercially developed, but now free, browser)
  • Konqueror (an important browser on Linux, almost a default browser)
  • Firefox
  • Safari (the default browser on Mac OS X, based on Konqueror)
  • Google Chrome

With browsers other than IE, we support the latest version. This is because their users are very likely to keep the browsers up-to-date.

We also provide support for high quality text-mode browsers such as 'Lynx' and browsers designed for people with disabilities. The inherent nature of this support is that it is partial support for an 'accessible' experience, rather than a 'wizz-bang' experience.


ocPortal makes use of a number of client-side web technologies, including:
  • XHTML5 (HTML formalised to be a proper XML format) – structure, glue and content for a document
  • CSS – stylisation for structured content
  • Javascript – interactive functionality
  • PNG – for images
  • RSS, Atom and OPML – (optional) feed technology, to export ocPortal news
  • XSLT – (optional) technology to make RSS, Atom and OPML display in a web browser
  • XML Schema and XML – for Comcode-XML

XHTML is like the glue that any supported browser will support. A lot of 'HTML' pages are actually technically XHTML, as an XHTML document is almost viewable on a pure-HTML (read: very old) browser.
CSS and Javascript are potentially unavailable on text-mode/accessibility browsers, however they are not required in these contexts.
PNG is an image file format. PNG is used in favour to GIF, as it supports images more than 256 colours, 'alpha transparency' (blended transparency that is not tied to background colour) and is not encumbered by software patents.

RSS, Atom and OPML are usually viewed in a separate program, such as 'FeedReader'. However, the latest generation of web browsers also provide their own feed subscription support. Firefox supports 'Active Bookmarks' that are assembled from links in an RSS feed: this works with ocPortal news.

Browser testing

Thumbnail: BrowserStack are kind enough to provide free testing capabilities to the core ocPortal developers. It is a high-quality service.

BrowserStack are kind enough to provide free testing capabilities to the core ocPortal developers. It is a high-quality service.

Browser testing presents the following difficulties:
  1. A machine may only have one Microsoft browser installed.
  2. To test on mobile devices you really should test on a proper mobile device to get a real feel for things.
  3. Safari only works on Mac OS, so you need a Mac.
  4. Internet Explorer only works on Windows, so you need a Windows install.
  5. On browsers such as Google Chrome operating system font rendering differences may mean things lay out slightly differently on different operating systems.

There are a number of things that can help you with testing:
  • Google Chrome has excellent device emulation, for quick/earlier testing for different mobile devices (not a substitute for proper testing).
  • Internet Explorer lets you run in compatibility modes to test on earlier versions of their engines (imperfect, but useful).
  • IETester lets you test much older Internet Explorer versions (imperfect/unstable, but useful).
  • Virtual Machines let you test different Internet Explorer browsers without needing separate physical machines. Microsoft supply free images to help. They come at a hefty download size though, uses lots of disk space, and using VMs means lots of RAM usage.
  • You can use a commercial online testing system like BrowserStack. BrowserStack host virtual machines for you in the cloud so that you don't need to maintain your own VMs. You can also automatically take mass-screenshots across many devices, and also run automated JavaScript testing (for developers).


Javascript may be disabled by visitors to ocPortal. Sometimes users consider it unsafe and disable it (there is a strong case to this, but it is a very limiting thing to do), although by doing so on the modern web, most websites will not work.

If an ocPortal visitor has Javascript disabled then certain functionality will not work, such as viewing the Wiki+ tree or using the menu editor (appropriate ocPortal error messages will be given explaining why); in addition, other functionality reduces in ability due to a lack of interactive ability in the web browser: for example, the Comcode 'hide' tag will drop-down to the level where the content isn't actually hidden by default.

The main reason for ocPortal not requiring Javascript is that interactive functionality is usually inaccessible for those with certain forms of disability such as blindness. By disabling Javascript in their accessible browser, or by the browser not supporting it anyway, they may get a better experience.


ocPortal does not require cookie support, although it is recommended. To at least have 'session cookies' enabled is strongly recommended, as otherwise ocPortal will need to carry additional data along in the URL.

Desktop settings

A screen-resolution of at least 1024x768 is strongly suggested, as this is the minimum resolution that we design the default theme for.
ocPortal users must be using 15 bit colour or higher. In other words, 256 colour is not supported: users are very unlikely to be using this any more.

See also

Moving forward with Composr

ocPortal has been relaunched as Composr CMS. ocPortal 9 is superseded by Composr 10.

Head over to for our new site, and to our migration roadmap. Existing ocPortal member accounts have been mirrored.

An error has occurred

Unfortunately a query has failed [INSERT INTO ocp2_stats (access_denied_counter, browser, operating_system, the_page, ip, the_user, date_and_time, referer, `get`, post, milliseconds) VALUES (0, 'CCBot/2.0 (', '', 'docs9/pages/comcode_custom/EN/tut_browsers.txt', '', -31162362, 1495998608, '', '<param>page=tut_browsers</param>\n', '', 0)] [Duplicate entry '19560025' for key 'PRIMARY'] (version: 8-RC3, PHP version: 7.0.19, URL: /docs/tut_browsers.htm)

Here is the stack trace:

The staff have been provided a ‘stack trace’ which may help them diagnose the problem.