dotMobi Switch On! Web Developer Guide

Version 1.0
Revision 1
Status Final
Date 22-September-2006
Editors Ronan Cremin
Jo Rabin

1. Document Information

1.1 Status

This document has the status "Final". This means that its mandatory provisions are now enforced. The lifecycle of the dotMobi Switch On! Guide is discussed in [Lifecycle]

1.2 Time Limits

There are no time limits associated with compliance to this document.

1.3 Document History

This is version 1.0 Final of this document. A statement of policy regarding updates to this document can be found at http://mtld.mobi/

The latest version of this document is available at http://pc.mtld.mobi/mobilenet/dotmobi_guides.html

This version can be found at http://pc.mtld.mobi/mobilenet/dotmobi_guides.html

1.4 Acknowledgements

Parts of this document are derived from W3C Mobile Web Best Practices, W3C Working Draft, [MWBP], � 2005 World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). All Rights Reserved.

1.5 References

W3C Mobile Web Best Practices: http://www.w3.org/TR/mobile-bp/
dotMobi Switch On! Guide Lifecycle: http://mtld.mobi/
IANA list of CCTLDs: http://www.iana.org/cctld/cctld-whois.htm
XHTML Mobile Profile 1.0: http://www.wapforum.org/

1.6 Copyright

This document contains information proprietary to Mobile Top Level Domain Limited ("mTLD" or "dotMobi"). You may not modify, copy, reproduce, republish, upload, post, transmit, or distribute in any way any material from this document including code and software without the express, written consent of mTLD.

This document as a whole is copyrighted as a collective work, and individual works appearing on or accessible through this document are likewise subject to copyright protection. You agree to honor the copyrights in this document (including the selection, coordination and arrangement of the contents of this document) and in the works available on or through this document. In addition, trademarks and tradedress belonging to us or to third parties appear on this site or are accessible through this site. The fact that we have permitted you access to this site does not constitute authorization to reproduce such trademarks for any other purpose.

Copyright � 2005–2006 Mobile Top Level Domain Limited

2. Overview

2.1 Purpose of Switch On! Guides

DotMobi Switch On! Guides are a set of guides governing certain technical protocols and services in the ".mobi" (dotMobi) domain. These guides are a combination of mandatory rules and best practices that, when applied to content and services associated with the domain, ensure a good user experience for users interacting with the domain and its services via a mobile device. The rules mentioned in Switch On! Guide documents are specifically designed to be:

DotMobi Switch On! Guides are primarily oriented at domain registrants, since registrants are the owner of content and services hosted at any domain, but are also useful for tool vendors and solution providers whose products and services may be involved with dotMobi.

2.2 Mandatory Rules Audit, Notification & Enforcement Process

DotMobi domain name registrants agree to implement the mandatory registrant rules listed in this document whenever they publish a web site linked to a dotMobi name on the internet. It is strongly recommended that registrants also ensure that their applications also comply with Best Practices to improve the end-user experience.

mTLD will audit all dotMobi domains for compliance to the mandatory rules. mTLD will audit these domains in whatever way or frequency decided by mTLD to be practical and reasonable. When a web site using a dotMobi name is not compliant with the mandatory rules, an exception report for the dotMobi name will be created by mTLD.

DotMobi names not in compliance with mandatory rules will have 60 days to become compliant. mTLD shall send two notices to the registrant's registrar asking the registrar to contact the offending registrant with the exception report. The registrar will be required to provide a 60 day and then a 45 day notice of this non-compliance. If a name is not in compliance with 30 days left to go, then mTLD may chose to contact the registrant directly after making best efforts to make contact through their registrar. A formal statement of this policy is available on the mTLD web site.

DotMobi names that are not brought back into compliance shall be place into a hold status which will prevent their resolution on the internet. The dotMobi names shall not be deleted from the registration system, but their name will be placed on hold until they are in compliance with the mandatory rules.

2.3 Registrar's Obligations

Registrars are obliged to make registrants aware of all Switch On! Guides associated with the dotMobi domain in advance of any registration taking place. Registrars must either make a copy of these documents available to the registrant or point them to the authoritative versions on the mtld.mobi web site.

3. Introduction to Switch On! Web Developer Guide

3.1 Scope

The dotMobi domain is intended as a sign to users that web sites within the domain are especially suitable for use on mobile devices. Registrants are expected to make sure that their dotMobi web site works well with mobile devices. Following the guidelines in this document will assist them in doing this.

This document is the authoritative source of rules governing web content served from a dotMobi domain. It also acts as a guide for web site developers and solution providers whose tools and services are used in this the dotMobi domain, or to produce content for a site in this domain. These rules are designed to ensure a good user experience for users browsing these web sites from mobile devices.

3.2 Use Cases Covered

The Switch On! Web Developer Guide covers the use case of browsing a dotMobi application/web site from a mobile phone, PDA or other hand-held device. This guide specifically does not cover use cases involving desktop PCs or other device types, nor does it cover other Internet-based applications such as email or instant messaging.

3.3 Relationship to Other Standards

The best practice recommendations in this document are primarily based upon the W3C Mobile Web Best Practices [MWBP]. In addition a number of dotMobi specific rules and best practices are introduced.

Developers should also refer to the Domain Name Guidelines document that is published in the same location as this document.

3.4 Structure of the Best Practices

DotMobi-specific best practices are identified as follows:

[dotMobi] The text of a dotMobi rule or best practice

W3C-derived best practice statements are identified as follows:

[W3C EXAMPLE] The text of a W3C Best Practice

For each W3C statement a link is provided to the corresponding W3C best practice statement. Readers can follow these links for further discussion on the meaning of the statement and how to test compliance.

The rules and best practices are classified into the following sections:

4. Registrant Rules

4.1 Mandatory Registrant Rules

4.1.1 Valid XHTML Mobile Profile

[dotMobi] Requests for URIs consisting only of "example.mobi" or "www.example.mobi" must result in a response that is encoded in a format the device supports or valid XHTML-Mobile Profile 1.0 or later released version [XHTMLMP], where "example" stands for any domain name.

If the site provides its home page by redirection then all intermediate pages that are delivered in the course of the redirection must comply with this rule.

Note that registrants are not obliged to provide a service at either the above URIs.

What it Means

It is not the intention to restrict the uses that dotMobi registrants put their site to. However, in order to contribute to the overall usability and premium user experience of the dotMobi domain it is important that visitors to sites have the best possible experience of them, even if their devices do not support the formats that registrants wish to support. Consequently, at a minimum, visitors to dotMobi sites must receive a message that is displayable by their browser, directing them to a portion of the site that is accessible to them, or identifying the type of device that is necessary to experience the site properly.

Some web sites will adapt their content dynamically to accommodate the type of browser and formats supported by that browser. In this case the site should generate a page formatted in valid XHTML-MP 1.0 (or later released version) if it cannot find a match for the device in question. The user in this case stands a very good chance of receiving a page that their device can display. The content of the page is at the site owner's discretion, and may be a message allowing the user to select a particular type of experience, or may be a message detailing the types of device required to access the service. Site owners are encouraged to support the widest possible range of devices.

In cases where the site infrastructure does not provide the ability to detect the browser type or formats that are acceptable there must be a page at the domain root that is delivered in XHTML-MP. This does not mean that the rest of the site has to be formatted in XHTML-MP. Sites that cater specifically for some other format may have their entry point identified by a path e.g. a site that is specifically targeted at WML devices only could have its home page at example.mobi/wml. The preferred method of redirection is by using HTTP 3XX codes (see below).

4.1.2 Second-Level Domain Site

[dotMobi] Domains that operate a site at www.example.mobi must also implement a site at example.mobi.

What it Means

Research has shown that typing in URLs on a mobile phone is a significant barrier to entry for users using mobile devices. Pointing the second-level domain (domain.mobi) at the same site as the third-level domain (www.domain.mobi) makes it easier for users to get to your site.

4.1.3 Use of Frames

[dotMobi] Do not use frames (standard or inline) unless the target client is known to support them. See also [W3C NO_FRAMES].

4.2 Best Practices

4.2.1 Overall Behaviour

Choice of User Experience

[dotMobi/W3C Choice of User Experience] Sites should allow the user to choose how they interact with the site.

What it Means

The choice of user experience as recommended in Mobile Web Initiative Best Practices section 3.6 is simplified by dotMobi names as it allows the user to immediately differentiate mobile-friendly websites from other sites. Ideally, a web site recognizes the browser and adapts to the browser capabilities. In practice, the newest browsers and very old ones are not always recognized. Assuming that unknown browsers all have only minimum capabilities provides a poor experience for advanced new browsers. In addition, mobile users typically want a convenient experience (fast access, appropriate, up-to-date but limited amount of information, limited picture size) which dotMobi sites will typically provide. However, mobile users should not be prevented from accessing the full web site if they so wish. Hence content providers should offer a link from dotMobi pages to the non-optimized internet page and vice versa. Ideally the site should record the user���s preference, thus making their choice ���sticky��� so the user does not have to switch to the preferred view every time they enter the site.

Thematic Consistency of Resource Identified by a URI

[W3C THEMATIC_CONSISTENCY] Ensure that content provided by accessing a URI yields a thematically coherent experience when accessed from different devices.

Exploit Client Capabilities

[W3C CAPABILITIES] Exploit device capabilities. Do not take a least common denominator approach.

Work around Deficient Implementations

[W3C DEFICIENCIES] Take reasonable steps to work around deficient implementations.

Testing

[W3C TESTING] Carry out testing on actual devices as well as emulators.

4.2.2 Navigation and Links

URIs of Site Entry Points

[W3C URIS] Keep the URIs of site entry points short.

Navigation Bar

[W3C NAVBAR] Provide only minimal navigation at the top of the page.

Balanced Structure

[W3C BALANCE] Take into account the trade-off between having too many links on a page and asking the user to follow too many links to reach what they are looking for.

Navigation Mechanisms

[W3C NAVIGATION] Provide consistent navigation mechanisms.

Access Keys

[W3C ACCESS_KEYS] Assign access keys to links in navigational menus and frequently accessed functionality.

Link Target Identification

[W3C LINK_TARGET_ID] Clearly identify the target of each link.

[W3C LINK_TARGET_FORMAT] Note the target file's format unless you know the device supports it.

Image Maps

[W3C IMAGE_MAPS] Do not use image maps unless you know the target client supports them effectively.

Refreshing, Redirection and Spawned Windows

[W3C POP_UPS] Do not cause pop-ups or other windows to appear and do not change the current window without informing the user.

[W3C AUTO_REFRESH] Do not create periodically auto-refreshing pages, unless you have informed the user and provided a means of stopping it.

[W3C REDIRECTION] Do not use markup to redirect pages automatically. Instead, configure the server to perform redirects by means of HTTP 3xx codes.

Externally Linked Resources

[W3C EXTERNAL_RESOURCES] Keep the number of externally linked resources to a minimum.

4.2.3 Page Layout and Content

Page Content

[W3C SUITABLE] Ensure that content is suitable for use in a mobile context.

[W3C CLARITY] Use clear and simple language.

[W3C LIMITED] Limit content to what the user has requested.

Page Size

[W3C PAGE_SIZE_USABLE] Divide pages into usable but limited size portions.

[W3C PAGE_SIZE_LIMIT] Ensure that the overall size of page is appropriate to the memory limitations of the device.

Scrolling

[W3C SCROLLING] Limit scrolling to one direction, unless secondary scrolling cannot be avoided.

Navigation Bars etc.

[W3C CENTRAL_MEANING] Ensure that material that is central to the meaning of the page precedes material that is not.

Graphics

[W3C GRAPHICS_FOR_SPACING] Do not use graphics for spacing.

[W3C LARGE_GRAPHICS] Do not use images that cannot be rendered by the device. Avoid large or high resolution images except where critical information would otherwise be lost.

Color

[W3C USE_OF_COLOR] Ensure that information conveyed with color is also available without color.

[W3C COLOR_CONTRAST] Ensure that foreground and background color combinations provide sufficient contrast.

Background Images

[W3C BACKGROUND_IMAGE_READABILITY] When using background images make sure that content remains readable on the device.

4.2.4 Page Definition

Title

[W3C PAGE_TITLE] Provide a short but descriptive page title.

Structural Elements

[W3C STRUCTURE] Use features of the markup language to indicate logical document structure.

Tables

[W3C TABLES_SUPPORT] Do not use tables unless the client is known to support them.

[W3C TABLES_NESTED] Do not use nested tables.

[W3C TABLES_LAYOUT] Do not use tables for layout.

[W3C TABLES_ALTERNATIVES] Where possible, use an alternative to tabular presentation.

Non-Text Items

[W3C NON-TEXT_ALTERNATIVES] Provide a text equivalent for every non-text element.

[W3C OBJECTS_OR_SCRIPT] Do not rely on embedded objects or script.

Image Size

[W3C IMAGES_SPECIFY_SIZE] Specify the size of images in markup, if they have an intrinsic size.

[W3C IMAGES_RESIZING] Resize images at the server, if they have an intrinsic size.

Valid Markup

[W3C VALID_MARKUP] Create documents that validate to published formal grammars.

Measures

[W3C MEASURES] Do not use pixel measures and do not use absolute units in markup language attribute values and style sheet property values.

Style Sheets

[W3C STYLE_SHEETS_USE] Use style sheets to control layout and presentation, unless the device is known not to support them.

[W3C STYLE_SHEETS_SUPPORT] Organize documents so that they may be read without style sheets.

[W3C STYLE_SHEETS_SIZE] Keep style sheets small.

Minimize

[W3C MINIMIZE] Use terse, efficient markup.

Content Types

[W3C CONTENT_FORMAT_SUPPORT] Send content in a format that is known to be supported by the device.

[W3C CONTENT_FORMAT_PREFERRED] Where possible, send content in a preferred format.

Character Encoding

[W3C CHARACTER_ENCODING_SUPPORT] Ensure that content is encoded using a character encoding that is known to be supported by the target device.

[W3C CHARACTER_ENCODING_USE] Indicate in the response the character encoding being used.

Error Messages

[W3C ERROR_MESSAGES] Provide informative error messages and a means of navigating away from an error message back to useful information.

Cookies

[W3C COOKIES] Do not rely on cookies being available.

Cache Headers

[W3C CACHING] Provide caching information in HTTP responses.

Fonts

[W3C FONTS] Do not rely on support of font related styling.

4.2.5 User Input

Input

[W3C MINIMIZE_KEYSTROKES] Keep the number of keystrokes to a minimum.

[W3C AVOID_FREE_TEXT] Avoid free text entry where possible.

[W3C PROVIDE_DEFAULTS] Provide pre-selected default values where possible.

[W3C DEFAULT_INPUT_MODE] Specify a default text entry mode, language and/or input format, if the target device is known to support it.

Tab Order

[W3C TAB_ORDER] Create a logical order through links, form controls and objects.

Labels

[W3C CONTROL_LABELLING] Label all controls appropriately and explicitly associate labels with controls.

[W3C CONTROL_POSITION] Position labels so they lay out properly in relation to the controls they refer to.

Valid XHTML 1.0 Transitional