General: Device Classifications

ebollens edited this page Oct 4, 2011 · 1 revision
Clone this wiki locally

While the Mobile Web Framework provides a great depth of device telemetry through its APIs, at the most basic level it separates devices into three general classifications:

  • Basic - The least common denominator and support for linear navigation down a web page.
  • Standard - Full-fledged web browsers, non-linear user interaction (trackpad, roller ball, touch) and Javascript/cookies support.
  • Full - All the standard components, plus AJAX and several CSS 3 properties that indicate partial availability of CSS 3 and HTML 5.

These classification levels serve several functions:

  1. Define standards that must be met at each level.
  2. Allow users to break their CSS into subsets that are valid at each level.
  3. Allow users to selectively deliver Javascript only to those devices that can handle it.

The mwf.classification library exposes classification information. This information is derived from several other libraries, namely mwf.capability, mwf.screen and mwf.override. The first two determine abilities and dimensions about the device, while the last allows the user to change how the framework classifies it by appending a GET parameter "override"=>{"basic","standard","full","no"} and, if the device is at least as capable as the override, it will assume that classification instead.


The following apply at the basic classification:

  • XHTML MP 1.0
  • WCSS

The key characteristics of this level include:

  1. HTML markup standard for all static markup on MWF pages.
  2. Linear presentation of framework elements through WCSS.

An implication of (1) is that all static markup must conform to XHTML MP 1.0. If one intends to use markup only valid at another classification level, it must be written in via Javascript loaded at that level. This avoids having markup that does not validate under the standards defined by the basic level since, as basic doesn't require Javascript, it can't have non-compliant markup removed.


In addition to those of basic, the following apply to the standard classification:

  • HTML 4.01
  • CSS 2.1
  • ECMA-262-3 (Javascript 1.5)

The key characteristics that differentiate this from basic include:

  1. Non-linear presentation of framework elements through CSS 2.1.
  2. Javascript support and libraries that DOM write HTML 4.01-compliant markup.


In addition to those of basic and standard, the following standards apply:

  • HTML 5
  • CSS 3

The key characteristics that differentiate this from basic and standard include:

  • CSS 3 properties applied to framework elements.
  • APIs for early access to HTML 5 technologies.
  • AJAX support.