Web Browsers And Packages

Release: 2010-03-03
Jump to Web Standards Articles TOC

Arora (QTWebKit)

Arora 0.10 is an open-source, Layout Level web browser using the QTWebKit web platform in Nokia's QT 4.5.2 (0.10.0) and QT 4.5.3 (0.10.1). QTWebKit is based on Apple's WebKit so the WebCore layout engine provides the HTML, XML and CSS while the Nitro scripting virtual machine provides JavaScript support.

QTWebKit in QT 4.5.2 and QT 4.5.3 supports:

  • HTML 4.01 (HyperText Markup Language);
  • HTML 5 'Subset';
  • label attribute for option elements;
  • HTML 5's <meta charset="">;
  • HTML 5 Forms's <input type="range"> and <input type="search">;
  • &apos; named character reference;
  • contenteditable support;
  • canvas Element;
  • HTML 5's audio, video and source elements;
  • WAI-ARIA (?) adds support for Accessible Rich Internet Applications;
  • Cascade StyleSheets (CSS) level 1, Visual & Interactive and partial Paged level 2.1 provides a realistic way of adding presentation and layout to your document structures;
  • Some main and experimental CSS level 3 features;
  • The ability to style and script with unknown markup;
  • For image support we have GIF89a, JPEG, PNG, Icons (.ico, .png, .jpg, .gif), BMP (Windows Bitmap), XBM (X Bitmap), XPM (X Pixmap) and SVG 1.1;
  • Document Object Model (DOM) level 1 (HTML, XML), 99% of level 2 (Core, HTML, XML, Views, Stylesheets, CSS, CSS2, Events, UIEvents, MutationEvents, MouseEvents, HTMLEvents, Traversal, Range), bits of Core DOM 3, XPath DOM 3, TextEvents DOM 3, Bits of DOM 5 HTML exposes documents to scripting interaction;
  • JavaScript 1.4, and as of WebKit 420, JavaScript 1.6 (without multiple catches);
  • Selectors API allows an easier way to access parts of the DOM using CSS-like selectors;
  • In QTWebKit 4.5.2, to compliment cookies, Web Database Storage allow local database performance and capacity with SQLite, and its support for SQL, to store information beyond the abilities of cookies;
  • In QTWebKit 4.5.2, Web Storage's sessionStorage and localStorage allow local database performance and capacity with SQLite for name/value pairs.

Canvas feature support includes:

  • Stroke and fill colours;
  • Rectangles;
  • Paths;
  • rgba/hsla colours;
  • Text;
  • Shadows (only on text);
  • Linear and radial gradients;
  • Patterns;
  • Translations, rotation and scale;
  • Bring in pixel images;

CSS level 3 features supported includes:

  • hsl(), rgba(), hsla() functions;
  • Namespaces Module, most of Media Queries;
  • Multiple Background Images and the opacity property for full gradient transparency;
  • some -webkit- properties such as -webkit-border-radius, -webkit-box-sizing;
  • (QTWebKit 4.5:) CSS Gradients, Masks, Box Reflections, Animation, Transitions and 2D Transforms support with -webkit- prefix;
  • text-shadow;
  • ::selection pseudo-element selector, Structural pseudo-class selectors (like :nth-child, :not, :empty, :first-of-type, etc), :enabled, :disabled and :checked UI state pseudo-class selectors, :target selector;
  • @font-face At Rule with single src values, local() and format() functions (support for TrueType and OpenType fonts);

SVG support includes:

  • Groups, Titles, Descriptions, metadata, defs and use;
  • Stroke and fill colours;
  • Basic shapes (Rectangles, Rounded Corner Rectangles, Lines, Circles, Ellipses, Polylines and Polygons);
  • Paths;
  • Opacity;
  • Text;
  • Text on a path;
  • Hyperlinkg;
  • Clipping, Markers, Patterns;
  • Linear and radial gradients;
  • Translations, skews, rotation and scale;
  • Bring in pixel images;
  • Conditional switch;
  • SVG declarative animation;
  • SVG Fonts;
  • CSS support (stroke CSS property not supported on SVG text);
  • Scripting support;
  • Scripted animation;
  • SVG integrates with webpage (true transparent background);

In the realm of XML:

  • eXtensible Markup Language (XML) 1.0 and 1.1 with Namespaces & XML-Stylesheet Processing Instruction (PI);
  • eXtensible HyperText Markup Language (XHTML) 1.0, 1.1 (without Ruby Annotation) and Basic 1.0 (Earlier WebKit (419): did not support XHTML named entities beyond XML's built-in five.);
  • Scalable Vector Graphics (SVG) 1.1 for ultimate 2-dimensional vector image display, does not support Filters, QTWebKit 4.5.3 supports animation;

provides an excellent platform for experiencing the World Wide Web.

Arora passes the Acid 2 Test which tests Cascade Stylesheet (CSS) support. More about the Acid 2 Test from the Web Standards Project (WASP).

Arora also clocks 98 to 100 out of 100, failing 2 tests and one test took 55 attempts, from the Acid 3 Test and fails the Link Test. Acid 3 tests DOM, scripting, HTML, SVG and various other technologies for Web 2.0. More about the Acid 3 Test from the Web Standards Project (WASP).

In order to allow users to navigate and use interactive webpage features using the keyboard (part of making webpages accessible) Safari and possibly other WebKit based UserAgents provide the following: On MS Windows and Linux you can tab through form controls in general. In order to tab through links and form controls in general you tick the Tab to highlight all items on a web page checkbox in the Safari Advanced Preferences. On Apple Mac OS X you can tab through form text boxes and select popup lists only by default. In order to tab through links and form controls in general you need to either use option+tab or tick the Tab to highlight all items on a web page checkbox in the Safari Advanced Preferences.

Features that need to be added to QTWebKit:

  • From CSS3:
    • -webkit-box-reflect needs to be respectful of parent and sibling containers;
    • Some form of box-shadow property;
    • Support for multiple src values in @font-face;
    • Support for Web Open Font Format (.woff);
  • From HTML 5:
    • Extend canvas shadow to non text objects;
    • Native Media (video, audio, source, media API);
    • section, article, aside, nav, hgroup, header, footer, mark, time, progress, meter, figure, figcaption, details and summary elements;
    • Inline SVG in text/html documents;
  • From SVG:
    • Support for Masks;
    • Support for Filters;
    • Support for Views;
    • Support for 1.2 textArea and tbreak, 1.2 audio and video;
  • Formats for HTML 5 Native Media:
    • MPEG4 Video,
    • H.264 Video,
    • OGG Video (Theora),
    • AAC / M4A Audio,
    • OGG Vorbis Audio;

You can download Arora for Windows, Mac OS X and various Unix/Linux at: http://code.google.com/p/arora/.

Copyright ©2005-2010 Legend Scrolls and Peter Davison.
Icons from the Oxygen Icon Theme, LGPL, and PNG version of icons in the Oxygen Icon Theme from kde-look.org, GPL.
All rights reserved.