W3C

W3C mobileOK Scheme 1.0

W3C Working Draft 12 July 2006

This version:
http://www.w3.org/TR/2006/WD-mobileOK-20060712/
Latest version:
http://www.w3.org/TR/mobileOK/
Previous version:
None (First Public Working Draft)
Editors:
Sean Owen, Google
Jo Rabin, Segala
Phil Archer, ICRA

Abstract

This document describes the W3C mobileOK scheme: what it denotes, what it requires, and how it may be detected and evaluated. mobileOK defines machine-readable content labels which may be applied to content to indicate that the content and its delivery pass a suite of tests based on the Mobile Web Best Practices document [BestPractices] . The Mobile Web Best Practices Working Group is creating these labels to help catalyze development of an effective user experience for mobile users of the web.

This document is directed primarily at mobile content authors, tools developers and content providers. Readers are expected to be familiar with the Mobile Web Best Practices document [BestPractices] .

Status of this Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This is a First Public Working Draft of the W3C MobileOK scheme; this document establishes the rough shape of the mobileOK scheme and codifies resolutions taken by the group so far. It lacks many technical details, and it is subject to significant change. This document should not be taken to reflect group consensus at this early stage. The Working Group is seeking feedback on the general direction of the document, as well as on the selected Best Practices that constitute the two levels of mobileOK.

Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document has been produced by the Mobile Web Best Practices Working Group as part of the Mobile Web Initiative. Please send comments on this document to the working group's public email list public-bpwg-comments@w3.org , a publicly archived mailing list.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

Revision Description

This is the first public draft from the MWBP group, and is subject to significant change.

Table of Contents

1 Overview
    1.1 What is mobileOK?
    1.2 Why mobileOK?
    1.3 Who is mobileOK for?
    1.4 Form of the mobileOK label
        1.4.1 Verification and Trustability
        1.4.2 Asserting Compliance with Individual Tests
        1.4.3 Visual Representation
    1.5 Requirements
2 mobileOK Label Test Suites
    2.1 Testing Parameters
        2.1.1 HTTP Request
    2.2 mobileOK Level 1
        2.2.1 AUTO_REFRESH (partial)
        2.2.2 CHARACTER_ENCODING_SUPPORT
        2.2.3 CHARACTER_ENCODING_USE
        2.2.4 CONTENT_FORMAT_SUPPORT
        2.2.5 DEFAULT_INPUT_MODE
        2.2.6 EXTERNAL_RESOURCES
        2.2.7 GRAPHICS_FOR_SPACING
        2.2.8 IMAGE_MAPS
        2.2.9 IMAGES_RESIZING
        2.2.10 IMAGES_SPECIFY_SIZE
        2.2.11 LARGE_GRAPHICS
        2.2.12 LIMITED
        2.2.13 LINK_TARGET_FORMAT
        2.2.14 MEASURES
        2.2.15 NO_FRAMES
        2.2.16 NON-TEXT_ALTERNATIVES (partial)
        2.2.17 OBJECTS_OR_SCRIPT (partial)
        2.2.18 PAGE_SIZE_LIMIT
        2.2.19 PAGE_SIZE_USABLE
        2.2.20 PAGE_TITLE (partial)
        2.2.21 POP_UPS
        2.2.22 PROVIDE_DEFAULTS
        2.2.23 REDIRECTION
        2.2.24 STYLE_SHEETS_SIZE
        2.2.25 STYLE_SHEETS_USE
        2.2.26 TABLES_ALTERNATIVES
        2.2.27 TABLES_LAYOUT (partial)
        2.2.28 TABLES_NESTED
        2.2.29 TABLES_SUPPORT
        2.2.30 VALID_MARKUP
    2.3 mobileOK Level 2
        2.3.1 ACCESS_KEYS (partial)
        2.3.2 AVOID_FREE_TEXT
        2.3.3 BACKGROUND_IMAGE_READABILITY
        2.3.4 CACHING
        2.3.5 COLOR_CONTRAST
        2.3.6 CONTENT_FORMAT_PREFERRED
        2.3.7 CONTROL_LABELLING
        2.3.8 CONTROL_POSITION
        2.3.9 COOKIES
        2.3.10 ERROR_MESSAGES
        2.3.11 FONTS
        2.3.12 LINK_TARGET_ID
        2.3.13 MINIMIZE
        2.3.14 MINIMIZE_KEYSTROKES
        2.3.15 NAVBAR
        2.3.16 NAVIGATION
        2.3.17 SCROLLING (partial)
        2.3.18 STRUCTURE
        2.3.19 STYLE_SHEETS_SUPPORT
        2.3.20 TAB_ORDER
        2.3.21 USE_OF_COLOR
    2.4 Best Practices Outside mobileOK Scope
3 Label Technical Specification

Appendices

A Use Cases (Non-Normative)
    A.1 Certification Provider
    A.2 Content Adaptation
    A.3 Content Syndication / Aggregator
    A.4 Individual Content Author
    A.5 Search Engine
    A.6 Software Developer
    A.7 Operator
    A.8 Accepting or Rejecting a mobileOK claim
B Acknowledgements (Non-Normative)
C References (Non-Normative)


1 Overview

This document describes the W3C mobileOK scheme (referred to here as simply "mobileOK"), version 1.0.

1.1 What is mobileOK?

mobileOK is a scheme comprised of two content labels, called mobileOK Level 1 (working name) and mobileOK Level 2 (working name) . These machine-readable labels may be applied to content to indicate that the content and its delivery pass a suite of tests based on the Mobile Web Best Practices document [BestPractices] ; consequently their presence implies that users accessing the content from a mobile device may expect an effective and usable interaction.

The "mobileOK Level 1" and "mobileOK Level 2" working names are only placeholders. The group wishes to assign names that indicate that the first level represents a first step towards creating an effective user experience for mobile users, and that the second level represents a substantially larger step towards that end. Names like "mobileOK Core" and "mobileOK Basic" have been discussed for the first level, and "mobileOK" or "mobileOK Complete" for the second level.

The labels apply to a URI (or group of URIs), meaning that under the right circumstances, accessing that URI will retrieve content that conforms to a set of tests defined by mobileOK, and that its delivery also conforms. That is to say, the labels do not apply solely to content or document instances. Many best practices relate not just to the document (e.g. well-formed markup), but to how it is delivered to a mobile device (e.g. caching headers in the HTTP response). For convenience, this document will hereafter refer to "mobileOK content" with the understanding that mobileOK labels apply to more than just the content itself.

mobileOK Level 1 tests are based upon a limited subset of the Mobile Web Best Practices and are all machine-verifiable. Conformance to mobileOK Level 1 requirements is thus simple to check or verify. Content bearing this label has taken basic steps to provide an effective experience for mobile users.

mobileOK Level 2 tests are based upon a significantly larger subset of the Mobile Web Best Practices, and are a superset of mobileOK Level 1 tests. These tests are not all machine-verifiable and require verification by a human. Content bearing this label has taken significant steps to provide an effective experience for mobile users.

Note that not all Mobile Web Best Practices map to a test in mobileOK conformance tests. Some best practices, like EXPLOIT_DEVICE_CAPABILITIES , are advisable but do not meaningfully translate into concrete tests, whether machine- or human-verifiable.

mobileOK says nothing about what may be delivered to non-mobile devices from that URI; however, note that a mobileOK URI must return mobileOK content by default if the nature of the user agent (desktop or mobile) cannot be reliably determined.

A mobileOK label also does not imply endorsement or suitability of content. For example, it must not be assumed that mobileOK content is of higher informational value, is more reliable, more trustworthy or is appropriate for children.

1.2 Why mobileOK?

The Mobile Web Best Practices document [BestPractices] and Techniques document [Techniques] have already enumerated much of what it takes to deliver an effective user experience to users of mobile devices. mobileOK complements this effort by providing machine-readable labels for mobileOK content. The presence of standard mobileOK labels may catalyze production of effective content for mobile users, and tools to create and detect this content, and even create demand for this content. It is hoped that this ultimately improves the quantity, quality and usability of Web content available to mobile devices.

1.3 Who is mobileOK for?

mobileOK has value at many points in the content authoring and delivery chain for mobile devices:

Content Developers

Developers who create content which follows Mobile Web Best Practices, and which passes tests outlined in this document, have added value for mobile users. They can advertise this to consumers of their content through the mobileOK labels.

Tools

Likewise, tools that can produce, parse, adapt or manipulate mobileOK content (browsers, content management systems, authoring tools, content adaptation systems, etc.) add value for authors, and can advertise this capability.

Content Providers

Sites that are concerned with providing a quality experience to mobile users can look for a mobileOK label when acquiring content and tools.

Content Discovery Services

Search engines, content aggregators, and other services which locate content for mobile devices can look for a mobileOK label and possibly prioritize mobileOK content.

Content Consumers

End consumers of content may also treat mobileOK content differently, preferring sites that advertise mobileOK content.

Certification Provider

Certification providers may wish to offer to certify conformance to mobileOK tests; entities such as content providers that come to rely on mobile content may require more verification that content they provide is mobileOK.

1.4 Form of the mobileOK label

This section still subject to significant change as the form of the mobileOK labels has not been finalized.

The precise form of the mobileOK label has not yet been finalized, however, MWBP notes the work of the [WCL] . The abstract model put forward by the WCL-XG fits the mobileOK use case; indeed, its first use case is the mobileOK label. It is reasonable therefore to use the WCL-XG model in this Working Draft, noting that its final report is likely to be published in the very near future.

This section outlines the form of the mobileOK label with examples. A full technical specification may be found in the Label Technical Specification below.

The abstract model for mobileOK exists independently of any particular technology. However, the expectation is that mobileOK will typically be encoded in [RDF] and delivered in an RDF instance that has the following basic structure:

  • Metadata
    • Who created the mobileOK label?
    • When?
  • Scope
    • A list of domains to which the mobileOK label can be applied
    • An optional set of simple rules that determine areas of those domains or individual URIs to which the mobileOK label can be applied
  • The Label
    • Classification as mobileOK

For example, assuming suitable namespaces have been declared, an actual mobileOK label for mobileOK level 2 would look like this:

<wcl:ContentLabel rdf:ID="cl_1">
  <mwbp:mok rdf:resource="http://www.example.org/2006/09/mobileOK#level_2" />
</wcl:ContentLabel>

It is an RDF description that includes a URI which, when dereferenced, gives the definition of mobileOK level 2. This definition would be expressed as:

<wcl:ContentLabel rdf:ID="level_2">
  <wcl:include rdf:resource="#level_1" />
  <mok:ACCESS_KEYS rdf:resource="&wcl;true" />
  <mok:AVOID_FREE_TEXT rdf:resource="&wcl;true" />
  ...
</wcl:ContentLabel>

The above says that mobileOK level 2 will include mobileOK level 1 plus a set of atomic descriptors (for tests). The scope of a mobileOK label is defined in a separate block like this:

<wcl:Ruleset rdf:ID="ruleset">
  <wcl:hasScope>
    <wcl:Scope>
      <wcl:host>resources.example.co.uk</wcl:host>
      <wcl:host>resources.example.com</wcl:host>
    </wcl:Scope>
  </wcl:hasScope>
  <wcl:hasDefaultLabel rdf:resource="#cl_1" />
</wcl:Ruleset>

This states that the resources on the two listed hosts are covered and are described by the label with the ID cl_1 by default. There are mechanisms for applying different labels to different URIs and groups of URIs on those hosts but this serves as an adequate introduction.

A third block of data gives information about when the mobileOK label was created and by whom:

<rdf:Description rdf:about="#ruleset">
  <dc:creator>
    <foaf:Organization>
      <foaf:homepage rdf:resource="http://labelauthority.example.org" />
    </foaf:Organization>
    ...
  </dc:creator>
</rdf:Description>

Such a block of data may also link to supplementary information such as an [EARL] test result.

Because the RDF instance as well as the block of data defining the scope of the mobileOK label and the label itself within that RDF instance all have URIs, it is possible to make further statements about them. For example, a content provider may wish to have their conformance with mobileOK to be certified by an independent third party. Such a certificate would take the following form:

<rdf:Description rdf:about="http://resources.example.com/mobileOK.rdf">
  <wcl:certifiedBy rdf:resource="http://certification.example.org" />
</rdf:Description>

Another relevant issue is linkage -- linking content to its mobileOK label. This is one valid way to do it within an XHTML document:

<link rel="meta" href="/mobileOK.rdf" type="application/rdf+xml" />

While this is valid, the link relationship type "meta" is rather loose and a more specific link type is likely to prove useful. The expectation is that a metadata profile will be defined in the WCL group that gives cLabel as a link type. Furthermore, this group, MWBP, will create a mobileOK profile that will reference the WCL profile. An XHTML document that is mobileOK should therefore include the following:

<head profile="http://www.example.org/wcl-profile http://www.example.org/mobileOK#level_2">
  <link rel=""cLabel" href="/mobileOK" type="application/rdf+xml" />
</head>

The actual mobileOK data is in the local file called mobileOK.rdf . The profiles provide a hint to user agents that this information is carried in a Content Label (cLabel) and that the data is relevant to mobileOK. The system is fully extensible so that metadata other than mobileOK may also be contained in the same RDF instance.

Linkage is also possible using HTTP response headers. Indeed, for non-HTML documents this is the only way. The following HTTP response header is semantically equivalent to the previous example.

Link: </mobileOK.rdf>; /="/"; rel="cLabel" type="application/rdf+xml";

Note that content is not mobileOK unless a label has been explicitly applied to it; a resource cannot "accidentally" be mobileOK. For example, if a content provider advertises mobileOK content, then the content itself must bear a machine-readable mobileOK label.

1.4.1 Verification and Trustability

Currently, this is more a statement of goals, as we decide the form of the labels. It will change into a statement reflecting the final state of mobileOK later.

mobileOK Level 1 tests are all machine-verifiable. Given a trusted tool that can check Level 1 compliance, it should be relatively easy to verify that a page or site passes Level 1 tests.

However some mobileOK Level 2 tests are not machine-verifiable and require humans to check compliance. Trust becomes an issue: short of verifying compliance myself, how can I trust a claim of Level 2 test conformance? Consumers of the label may simply choose to trust the entity making the claim (e.g. if the entity is a large, established mobile carrier). Or, reputable third-party certification firms may offer certification services for content.

1.4.2 Asserting Compliance with Individual Tests

While the mobileOK labels are the focus of this document, and they require complete compliance with suites of tests, there may yet be circumstances in which it is useful to claim compliance with some subset of tests. The group notes three potential views on this point, and invites comment on them:

  1. Define the mobileOK labels in a way that does not allow for claims of partial conformance. Explicitly exclude this from the technical specification of the labels.
  2. Try to define the mobileOK labels in a way such that it would be possible to express claims of partial conformance too, considering it a "nice to have" feature. Possibly design for these claims, but do not promote this as a conventional usage of the mobileOK scheme.
  3. As above, design for claims of partial conformance but explicitly incorporate it into the mobileOK scheme as a conventional and encouraged usage.

1.4.3 Visual Representation

Content which bears a mobileOK label may optionally advertise this by displaying a mobileOK logo (to be produced). Adding even a small logo image to a page increases the time and bandwidth needed to access that page; therefore, it is recommended that the mobileOK logo be displayed on relatively few key pages, if at all. If one URI returns content differently for desktop computers and mobile devices, and delivers mobileOK content to mobile devices, then the mobileOK logo may be included on the desktop rendering of the page as well.

1.5 Requirements

As we begin to define the form of the label, we list possible design goals for the label. Each of these is derived from use cases listed at the end of this document. This section may or may not appear in the final version of this document, and requirements are subject to change.

Machine-discoverable

The mobileOK label must be discoverable by a machine. See all use cases.

Self-labeling

It shall be possible to label content as mobileOK without specialized tools, expending a disproportionate amount of effort, and without the involvement of a third party. Anyone may label content as mobileOK, including its author. See use case A.5.

Third-party labeling

It shall be possible for a third party -- someone other than the author or host -- to claim that content and its delivery are mobileOK. See use cases A.1, A.2, and A.3.

List of mobileOK Resources

It shall be possible to publish and locate listings of one or more resources which bear the mobileOK label. See use cases A.1, A.6.

Partial Conformance

In addition to indicating whether a resource is mobileOK, it shall be possible to indicate partial conformance to the mobileOK test suite, ideally at the level of individual tests. See use case A.5.

Who

It shall be possible to determine who is claiming that the content is mobileOK. See use case A.3.

Version

It shall be possible to determine which version of the mobileOK label (e.g. 2007-01) is being claimed. See use cases A.1 and A.3.

Authenticity

It shall be possible for a third party to verify that a mobileOK claim was actually made by the party named in the claim, perhaps through the use of digital signatures. See use cases A.3, A.8 and possibly A.5.

Non-forgeability

It must be possible to make a mobileOK claim in a way that is very hard, if not impossible, to forge or replicate maliciously. See use case A.8.

2 mobileOK Label Test Suites

This section details the suite of tests which delivered content must pass in order to earn the mobileOK label. Tests are presented as simple pseudo-code in this draft. Each test leads to one of three outcomes, PASS , FAIL or WARN . PASS and FAIL are self-explanatory. WARN indicates an indeterminate outcome, meaning it is not possible to decide whether the test's criteria are met or not. PASS is required from all tests in order to pass a suite of test's criteria.

Note that the tests presented here are incomplete and may contain errors or inconsistencies. They reflect current discussions within the group and are subject to significant change.

2.1 Testing Parameters

Unless otherwise specified, tests should be conducted using the following parameters.

2.1.1 HTTP Request

  • Include a User-Agent header indicating the default delivery context:

    User-Agent: W3C mobileOK DDC (http://www.w3.org/2006/07/mobileok-ddc)
    

    So far we define tests only terms of the default delivery context, but, this is subject to change.

  • Include an Accept header indicating that XHTML is accepted:

    Accept: application/vnd.wap.xhtml+xml,application/xhtml+xml
    

2.2 mobileOK Level 1

This section describes tests in the mobileOK Level 1 conformance suite. Tests are organized by the Best Practice from which they derive.

2.2.1 AUTO_REFRESH (partial)

If a tag of the form <meta http-equiv="refresh" content="(URI)"/> is present in the head tag, where "URI" matches the document's URI, FAIL

PASS

This test does not determine whether the user is able to opt out of refresh.

2.2.2 CHARACTER_ENCODING_SUPPORT

If the document does not define a character encoding, either in the document's XML preamble or HTTP response Content-Type header, WARN

If the document does define a character encoding but it is not "UTF-8", FAIL

For each linked resource linked via a link or style tag:

If the request response does not specify a character encoding in HTTP response Content-Type header, WARN

If the request response does specify a character encoding but it is not "UTF-8", FAIL

PASS

2.2.3 CHARACTER_ENCODING_USE

If the document does not define a character encoding, either in the document's XML preamble or HTTP response Content-Type header, FAIL

For each linked resource linked via a link or style tag:

If the request response does not specify character encoding in HTTP response Content-Type header, FAIL

PASS

2.2.4 CONTENT_FORMAT_SUPPORT

If the document's MIME type, as specified in the HTTP response Content-Type header, is not application/vnd.wap.xhtml+xml or application/xhtml+wml , FAIL

If the document's DOCTYPE's PUBLIC identifier is not an XHTML Basic identifier (at present, "-//W3C//DTD XHTML Basic 1.1//EN" or "-//W3C//DTD XHTML Basic 1.0//EN"), FAIL

For each linked resource linked via an img , link or style tag:

If the request response does not specify a MIME type in the HTTP response Content-Type header, WARN

If the request response specifies a MIME type but it is not text/css , image/png or image/gif , FAIL

PASS

2.2.5 DEFAULT_INPUT_MODE

For each input tag with attribute type="text" , or textarea tag:

If an inputmode attribute is not present, FAIL

PASS

Do we really require inputmode even when the default input mode is sensible? Does this not need XHTML Basic 1.1?

2.2.6 EXTERNAL_RESOURCES

To be determined.

2.2.7 GRAPHICS_FOR_SPACING

For each img tag:

If all pixels are transparent and image dimensions are 2x2 or less, FAIL

PASS

2.2.8 IMAGE_MAPS

If a map or area tag is present, FAIL

PASS

2.2.9 IMAGES_RESIZING

For each img tag:

If height or width attribute are missing, WARN

Download image, and if dimensions match attribute values, PASS

Else FAIL

PASS

2.2.10 IMAGES_SPECIFY_SIZE

For each img tag:

If height or width attribute are missing, FAIL

PASS

2.2.11 LARGE_GRAPHICS

To be determined.

2.2.12 LIMITED

To be determined.

2.2.13 LINK_TARGET_FORMAT

Should stay in level 1? hard to determine a meaningful test

2.2.14 MEASURES

For each CSS style in a stylesheet or style tag:

If style specifies a measure of length:

If measure uses absolute length ("px", "pt", "pc", "in", "cm", "mm"), FAIL

PASS

2.2.15 NO_FRAMES

If the document contains a frame , frameset or iframe tag, FAIL

PASS

2.2.16 NON-TEXT_ALTERNATIVES (partial)

For each img tag:

If an alt attribute is not present, FAIL

PASS

This test does not determine whether the alternative text is meaningful.

2.2.17 OBJECTS_OR_SCRIPT (partial)

If a script , object or applet tag is present, FAIL

PASS

This test does not determine whether the document is still usable without the objects or scripts.

2.2.18 PAGE_SIZE_LIMIT

If the size of the document's markup exceeds 10 kilobytes, FAIL

If the size of the document's markup plus the size of all stylesheets and images exceeds 20 kilobytes, FAIL

PASS

2.2.19 PAGE_SIZE_USABLE

To be determined.

2.2.20 PAGE_TITLE (partial)

If a title tag is not present in the head element, or is empty, FAIL

PASS

This test does not determine whether the title is meaningful.

2.2.21 POP_UPS

For each a tag:

If a target attribute is present, FAIL

PASS

2.2.22 PROVIDE_DEFAULTS

For each input tag:

If tag's type attribute is "radio":

For each input tag whose name attribute matches this one:

If checked attribute is set to any value, continue with next input tag

FAIL

For each select tag:

For each option nested within this tag:

If selected attribute is set to any value, continue with next select tag

FAIL

PASS

Otherwise, a human-verifiable test is needed here to verify whether such tags could be replaced with alternative controls.

2.2.23 REDIRECTION

If a tag of the form <meta http-equiv="refresh" content="(URI)"/> is present in the head element, where "URI" is different from the URI which was accessed to retrieve the document, FAIL :

PASS

2.2.24 STYLE_SHEETS_SIZE

If a style tag is present and references an external style sheet:

If the style sheet exceeds 5 kilobytes (?) , FAIL

PASS

2.2.25 STYLE_SHEETS_USE

If a style tag is not present, FAIL

PASS

This test says that a style sheet is required. Is that what we want?

2.2.26 TABLES_ALTERNATIVES

To be determined.

2.2.27 TABLES_LAYOUT (partial)

If a table tag exists:

For each nested td tag:

If the tag is empty, or contains an image whose real dimensions are 1x1, FAIL

PASS

This test does not catch all cases where tables are used for layout purposes.

2.2.28 TABLES_NESTED

If a table tag exists:

If a table tag exists somewhere inside it, FAIL

PASS

2.2.29 TABLES_SUPPORT

If a table tag exists, FAIL

PASS

2.2.30 VALID_MARKUP

If the document fails to validate according to its given DOCTYPE and/or XSD schema, FAIL

PASS

2.3 mobileOK Level 2

This section describes the additional tests in the mobileOK Level 2 conformance suite; that is, content must conform to Level 1 tests as well.

These tests should be considered particularly subject to change; currently the given definitions cover machine-testable aspects of these tests and not human-testable aspects.

2.3.1 ACCESS_KEYS (partial)

For each element that may have an accesskey attribute:

If attribute is missing, or value is non-numeric, FAIL

PASS

This test does not determine whether the selected elements with access keys are navigational or frequently used.

2.3.2 AVOID_FREE_TEXT

If page does not contain an input tag which specifies type="text" , or a textarea tag, PASS

Otherwise, a human-verifiable test is needed here to verify whether such tags could be replaced with alternative controls.

2.3.3 BACKGROUND_IMAGE_READABILITY

For each style in a style tag or external stylesheet:

If the style sets the background-image property, continue with human test

PASS

Otherwise, a human-verifiable test is needed here to verify whether that all text is readable against all background images.

2.3.4 CACHING

If the HTTP response does not contain a Cache-Control header, FAIL

PASS

2.3.5 COLOR_CONTRAST

For each style in a style tag or external stylesheet:

If the style sets the background-color or color property, continue with human test

PASS

Otherwise, a human-verifiable test is needed here to verify whether that all information is available without color.

2.3.6 CONTENT_FORMAT_PREFERRED

To be determined.

2.3.7 CONTROL_LABELLING

How to meaningfully tell which text or tag applies to an HTML form control?

2.3.8 CONTROL_POSITION

To be determined.

2.3.9 COOKIES

If the HTTP response contains no Set-Cookie headers, PASS

Otherwise, a human-verifiable test is needed here to verify whether the page functions even if the Set-Cookie header is ignored.

2.3.10 ERROR_MESSAGES

To be determined.

2.3.11 FONTS

For each style in a style tag or external stylesheet:

If the style sets any font-related property ( font , font-family , font-weight , etc.) continue with human test

PASS

Otherwise, a human-verifiable test is needed here to verify whether that all information is still available without font information.

2.3.12 LINK_TARGET_ID

For each a tag:

Retrieve linked document

If document does not specify a supported content format as in CONTENT_FORMAT_SUPPORT above, continue with human test

PASS

Otherwise, a human-verifiable test is needed here to verify that links to unsupported content formats are properly identified.

2.3.13 MINIMIZE

If whitespace exists outside of a pre tag, XML comment or CDATA section, FAIL

PASS

2.3.14 MINIMIZE_KEYSTROKES

To be determined.

2.3.15 NAVBAR

To be determined.

2.3.16 NAVIGATION

To be determined.

2.3.17 SCROLLING (partial)

For each img tag:

If the width attribute's value exceeds 120, FAIL

For each style in a style tag or external stylesheet:

If the CSS property width or min-width attribute is set with a value in pixels exceeding 120, FAIL

PASS

This test does not determine whether secondary scrolling created by wide objects can be avoided, nor does it catch all possible objects which may render wider than 120 pixels.

2.3.18 STRUCTURE

For each h1 , h2 , h3 , etc. tag:

If a h1 , h2 , h3 , etc. tag is nested in that tag:

If nested tag's level is not exactly one greater than enclosing tag (e.g. h3 inside h2 ), FAIL

This is only a superficial machine-testable test. A human-verifiable test is needed here to complete evaluation.

2.3.19 STYLE_SHEETS_SUPPORT

If page does not specify a style sheet via a style tag, PASS

Otherwise, a human-verifiable test is needed here to verify whether the page is readable without a style sheet.

2.3.20 TAB_ORDER

If the document contains no tabindex attributes on any tag, PASS

Otherwise, a human-verifiable test is needed here to verify whether the resulting tab order is usable.

Do we really assume that a default tab order is automatically usable?

2.3.21 USE_OF_COLOR

For each style in a style tag or external stylesheet:

If the style sets the background-color or color property, continue with human test

PASS

Otherwise, a human-verifiable test is needed here to verify whether that all information is available without color.

2.4 Best Practices Outside mobileOK Scope

The following Best Practices do not map to a test in either conformance suite. They remain important best practices to be considered by content authors, but do not readily translate into concrete tests.

  • BALANCE

  • CAPABILITIES

  • CENTRAL_MEANING

  • CLARITY

  • DEFICIENCIES

  • SUITABLE

  • TESTING

  • THEMATIC_CONSISTENCY

    This best practice is under particular consideration for inclusion in mobileOK level 2 subject to agreement on a satisfactory test or set of tests. Tests along the following lines are in consideration:

    When comparing a desktop and mobile presentation of the resource resolved for a single URI:

    1. Logo. Where present, the content provider's logo is the same (although size and position may vary).
    2. Metadata. Except where the metadata refers explicitly to structure and technical characteristics of the resource, it must be identical in both cases. For example, the character encoding may change to suit the delivery context and metadata may say things like "this resource has been optimized for Nokia mobile devices," but things like title, keywords and cLabels must be identical.
    3. Redirect or fail gracefully. When accessing a URI from one class of device it is acceptable to be redirected to a different URI that offers a more suitable representation of the same resource. So, for example, accessing http://www.example.com from a mobile device may redirect to http://www.example.com/mobile/. If redirection is not used and if a service is only available on either a desktop or mobile device, then a message should be displayed explaining this to the user.
  • URIS

3 Label Technical Specification

To be determined.

A Use Cases (Non-Normative)

This section contains use cases that the group contributed and considered when deriving requirements for the mobileOK labels and deciding its form. They do not constitute recommended uses of a mobileOK label. In fact, this text will likely not be included in the final draft of the document; it is included for now to facilitate discussion.

A.1 Certification Provider

Ace Content Provision has a substantial desktop presence and wants to reach a mobile audience with its new service. Naturally it is keen to have its content display as well as possible on mobile devices and so develops its web site in accordance with the Best Practices.

Ace is keen to advertise the existence of its mobile tailored services and show that its high quality brand value extends to this area. It believes that the mobileOK claim will carry more weight, especially among search engines tuned to mobile devices, if endorsed by a trusted third party. This is particularly true of those claims related to non machine-testable aspects of mobileOK.

One of Ace Content Provision's main distribution channels is a mobile network operator that requires content on its portal to be certified as being mobileOK by one of a short list of preferred certification providers. In order to offer a flexible and competitive service, the certification provider offers several levels of service. These range from automated checking of machine-testable Best Practices through to frequent checks by human reviewers. For Ace Content Provision, this is worthwhile as an ongoing service. For other providers the balance of cost and assurance is best met by assessment at service launch and on major update thereafter.

A.2 Content Adaptation

A content developer wants to create high quality user experiences on multiple devices. Sensibly, the developer chooses to use an adaptation approach which supports mobileOK. They create device independent content together with styling and layout, using W3C standards such as DIAL and CSS.

When a device makes a request, the adaptation system uses the various materials provided by the author to construct and deliver an appropriate page that conforms to mobileOK. It automatically marks the page with the mobileOK label. If the author has requested inclusion of the mobileOK logo, the adaptation system adds it to the page.

A.3 Content Syndication / Aggregator

A content syndicator / aggregator gets content from many sources. Some may be internal to the company, some may be external partner companies; in fact some content from partners can be sent directly to the client using inclusion via iFrames for example. In short, the content syndicator has, in some sense, very little control over the syndicated content.

Since the mobileOK label can only apply to the full page delivered to the end user, the content syndicator must ensure in some fashion that the content from partners does not invalidate the label. Thus the syndicator wants partners to make mobileOK conformance claims about their content to which they can be held accountable. This may include information about who is making the claim.

A.4 Individual Content Author

Joe Lambda wants to make a web site about his holidays for a couple of friends to follow, and be sure that it can be read on mobile phones. He reads the mobileOK documents, and makes sure he follows the requirements, so he can put the mark on his pages and his friends can check they will work before they download them.

The use case requires no-cost use of the label and that the label should be sufficiently simple that it can be added by the normal processes used for web development.

It would be nice to have tools to assist in testing, to add the label when tests have been met, and to note that something important has changed and that content needs to be re-tested.

A.5 Search Engine

A search engine wants to provide search services over mobile content for the benefit of its mobile users. When crawling the web it wants to easily discover all content that is usable to a mobile device, especially content designed specifically for mobile devices. It wants to evaluate how good the mobile content is and index it. When serving queries from mobile devices, it wants to return the best mobile content that matches the query.

One might imagine several things a search engine would want from the mobileOK label. The one that seems vital to making mobileOK useful to the search engine is detecting that a page at least says it is mobileOK and thus is trying to be a good mobile page.

There are a couple things that would be nice to have. First is an easy way to discover many mobileOK resources at once -- for example all mobileOK URL in a directory or domain. Next is a way to at least partially verify that a page does comply with mobileOK tests as claimed. Last is a way to identify claims of partial conformance, so that the search engine can customize its offerings to a particular profile of requirements. For example in a real use case, I have a phone that has a certain set of constraints, but is much more powerful than the baseline device -- specifically I don't care whether content relies on JavaScript or not, since my browser supports it, so I want content that meets various other requirements whether or not they meet any requirements on script.

A.6 Software Developer

A software developer is prioritizing fixing problems in rendering content appropriately. Being able to gather a collection of mobileOK content provides a useful test set, that allows prioritizing development based on what we trust to be the approach to content that more people will be using -- chasing a growing, rather than diminishing, market.

So the use case would require a discoverability mechanism for mobileOK content, and people using mobileOK.

It would be very helpful to have some reasonably reliable and simple method of verifying the claim.

A.7 Operator

An operator might use the mobileOK label to predict which content and sites would work better on the mobile devices of its customers. By detecting the existence of this label, an operator might apply different prices to the data traffic, provide better network caching for those sites and in some cases enrich the communication (policies at network transcoders, more parameters, etc.).

A.8 Accepting or Rejecting a mobileOK claim

An agent is set to crawl the Web to collect content to be presented in an ATOM feed that is updated daily. Several criteria are used sequentially to decide whether content resolved at a particular URI should be included or not, including mobileOK conformance.

The crawler detects a mobileOK label describing content at http://mobile.example.org. The label itself comes from a server the crawler recognizes as being trusted. Although the label is digitally signed, for efficiency, this is not checked before the crawler passes the content on to the next stage in the evaluation process for possible inclusion in the ATOM feed.

At http://new.example.org content is again described by a mobileOK label. This time, however, the label is on a server the crawler has not encountered before and so it does not know, yet, whether to trust the claims or not. The data in the label carries a valid digital signature and so the content is passed on to the next stage in the evaluation process for possible inclusion in the ATOM feed. If it is subsequently included, the newly discovered server will be added to the list of trusted sources as will the digital certificate.

Finally the crawler discovers content at http://bad.example.org that is again claimed to be mobileOK. The server is not recognized and the digital signature is not valid for the data in the label. It is therefore rejected and content is not forwarded to the next stage in the evaluation process.

B Acknowledgements (Non-Normative)

The editors would like to thank members of the BPWG for contributions of various kinds.

The editors acknowledge significant written contributions from:

C References (Non-Normative)

BestPractices
"Mobile Web Best Practices", Jo Rabin, Charles McCathieNevile, W3C Working Draft, 2 February 2006 (See http://www.w3.org/TR/mobile-bp/.)
Techniques
Mobile Web Techniques for Best Practices [in development] (See http://www.w3.org/2005/MWI/BPWG/techs/TechniquesIntro.)
WCL
Content Label Incubator Activity (WCL-XG) (See http://www.w3.org/2005/Incubator/wcl/Overview.html.)
RDF
RDF (See http://www.w3.org/RDF.)
EARL
EARL (See http://www.w3.org/2001/03/earl/.)