Please refer to the errata for this document, which may include some normative corrections.
See also translations.
Copyright © 2008 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
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 document was developed by the Best Practices Working Group (BPWG) as part of the Mobile Web Initiative.
Please see the Working Group's implementation report. Changes since the previous version of the document are editorial. A complete list of changes made to this document is available. Note the document stayed in Proposed Recommendation for more than a year as it depended on the progress of XHTML Basic 1.1 on the Recommendation track.
Please send comments about this document to public-bpwg-comments@w3.org (with public archive).
This document combines the experience of many mobile Web stakeholders into one set of best practices, regarded as essential by the participants of the Working Group.
This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. This document is informative only. 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.
1 Introduction
1.1 Purpose of the Document
1.2 How the Best Practices are Organized
1.3 Audience
1.4 Scope
1.4.1 Phasing
1.5 Relationship to other Best Practices and recommendations
1.6 Longevity and Versioning
2 Requirements
2.1 Presentation Issues
2.2 Input
2.3 Bandwidth and Cost
2.4 User Goals
2.5 Advertising
2.6 Device Limitations
2.7 Advantages
3 Delivery Context
3.1 One Web
3.2 Background to Adaptation
3.3 Adaptation Implementation Model
3.4 Assumptions about Adaptation
3.5 Establishing Context
3.6 Choice of User Experience
3.7 Default Delivery Context
4 Structure of Best Practice Statements
5 Best Practice Statements
5.1 Overall Behavior
5.1.1 Thematic Consistency of Resource Identified by a URI
5.1.2 Exploit Device Capabilities
5.1.3 Work around Deficient Implementations
5.1.4 Testing
5.2 Navigation and Links
5.2.1 URIs of Site Entry Points
5.2.2 Navigation Bar
5.2.3 Balanced Structure
5.2.4 Navigation Mechanisms
5.2.5 Access Keys
5.2.6 Link Target Identification
5.2.7 Image Maps
5.2.8 Refreshing, Redirection and Spawned Windows
5.2.9 Externally Linked Resources
5.3 Page Layout and Content
5.3.1 Page Content
5.3.2 Page Size
5.3.3 Scrolling
5.3.4 Navigation Bars etc. (Extraneous material)
5.3.5 Graphics
5.3.6 Color
5.3.7 Background Images
5.4 Page Definition
5.4.1 Title
5.4.2 Frames
5.4.3 Structural Elements
5.4.4 Tables
5.4.5 Non-Text Items
5.4.6 Image Size
5.4.7 Valid Markup
5.4.8 Measures
5.4.9 Style Sheets
5.4.10 Minimize
5.4.11 Content Types
5.4.12 Character Encoding
5.4.13 Error Messages
5.4.14 Cookies
5.4.15 Cache Headers
5.4.16 Fonts
5.5 User Input
5.5.1 Input
5.5.2 Tab Order
5.5.3 Labels for Form Controls
6 Conformance and mobileOK
6.1 Classes of Products
6.2 Extensibility
A Sources (Non-Normative)
B Related Reading (Non-Normative)
C Acknowledgements (Non-Normative)
D References (Non-Normative)
D.1 MWI References
D.2 Sources
D.3 Device Independence
D.4 Web, Protocols and Languages
D.5 Other References
The following Best Practices are discussed in this document and listed here for convenience. There is also a free-standing summary.
[THEMATIC_CONSISTENCY] Ensure that content provided by accessing a URI yields a thematically coherent experience when accessed from different devices.
[CAPABILITIES] Exploit device capabilities to provide an enhanced user experience.
[DEFICIENCIES] Take reasonable steps to work around deficient implementations.
[TESTING] Carry out testing on actual devices as well as emulators.
[URIS] Keep the URIs of site entry points short.
[NAVBAR] Provide only minimal navigation at the top of the page.
[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] Provide consistent navigation mechanisms.
[ACCESS_KEYS] Assign access keys to links in navigational menus and frequently accessed functionality.
[LINK_TARGET_ID] Clearly identify the target of each link.
[LINK_TARGET_FORMAT] Note the target file's format unless you know the device supports it.
[IMAGE_MAPS] Do not use image maps unless you know the device supports them effectively.
[POP_UPS] Do not cause pop-ups or other windows to appear and do not change the current window without informing the user.
[AUTO_REFRESH] Do not create periodically auto-refreshing pages, unless you have informed the user and provided a means of stopping it.
[REDIRECTION] Do not use markup to redirect pages automatically. Instead, configure the server to perform redirects by means of HTTP 3xx codes.
[EXTERNAL_RESOURCES] Keep the number of externally linked resources to a minimum.
[SUITABLE] Ensure that content is suitable for use in a mobile context.
[CLARITY] Use clear and simple language.
[LIMITED] Limit content to what the user has requested.
[PAGE_SIZE_USABLE] Divide pages into usable but limited size portions.
[PAGE_SIZE_LIMIT] Ensure that the overall size of page is appropriate to the memory limitations of the device.
[SCROLLING] Limit scrolling to one direction, unless secondary scrolling cannot be avoided.
[CENTRAL_MEANING] Ensure that material that is central to the meaning of the page precedes material that is not.
[GRAPHICS_FOR_SPACING] Do not use graphics for spacing.
[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.
[USE_OF_COLOR] Ensure that information conveyed with color is also available without color.
[COLOR_CONTRAST] Ensure that foreground and background color combinations provide sufficient contrast.
[BACKGROUND_IMAGE_READABILITY] When using background images make sure that content remains readable on the device.
[PAGE_TITLE] Provide a short but descriptive page title.
[NO_FRAMES] Do not use frames.
[STRUCTURE] Use features of the markup language to indicate logical document structure.
[TABLES_SUPPORT] Do not use tables unless the device is known to support them.
[TABLES_NESTED] Do not use nested tables.
[TABLES_LAYOUT] Do not use tables for layout.
[TABLES_ALTERNATIVES] Where possible, use an alternative to tabular presentation.
[NON-TEXT_ALTERNATIVES] Provide a text equivalent for every non-text element.
[OBJECTS_OR_SCRIPT] Do not rely on embedded objects or script.
[IMAGES_SPECIFY_SIZE] Specify the size of images in markup, if they have an intrinsic size.
[IMAGES_RESIZING] Resize images at the server, if they have an intrinsic size.
[VALID_MARKUP] Create documents that validate to published formal grammars.
[MEASURES] Do not use pixel measures and do not use absolute units in markup language attribute values and style sheet property values.
[STYLE_SHEETS_USE] Use style sheets to control layout and presentation, unless the device is known not to support them.
[STYLE_SHEETS_SUPPORT] Organize documents so that if necessary they may be read without style sheets.
[STYLE_SHEETS_SIZE] Keep style sheets small.
[MINIMIZE] Use terse, efficient markup.
[CONTENT_FORMAT_SUPPORT] Send content in a format that is known to be supported by the device.
[CONTENT_FORMAT_PREFERRED] Where possible, send content in a preferred format.
[CHARACTER_ENCODING_SUPPORT] Ensure that content is encoded using a character encoding that is known to be supported by the device.
[CHARACTER_ENCODING_USE] Indicate in the response the character encoding being used.
[ERROR_MESSAGES] Provide informative error messages and a means of navigating away from an error message back to useful information.
[COOKIES] Do not rely on cookies being available.
[CACHING] Provide caching information in HTTP responses.
[FONTS] Do not rely on support of font related styling.
[MINIMIZE_KEYSTROKES] Keep the number of keystrokes to a minimum.
[AVOID_FREE_TEXT] Avoid free text entry where possible.
[PROVIDE_DEFAULTS] Provide pre-selected default values where possible.
[DEFAULT_INPUT_MODE] Specify a default text entry mode, language and/or input format, if the device is known to support it.
[TAB_ORDER] Create a logical order through links, form controls and objects.
[CONTROL_LABELLING] Label all form controls appropriately and explicitly associate labels with form controls.
[CONTROL_POSITION] Position labels so they lay out properly in relation to the form controls they refer to.
The recommendations are offered to creators, maintainers and operators of Web sites and are intended as the basis for assessing conformance to the mobileOK trustmark, which is described in the Mobile Web Best Practices Working Group Charter and is not developed in this document. At the time of writing of this document, documents describing mobileOK and techniques for implementing the Best Practice recommendations are being worked on.
The scope of these Best Practices is laid out in "Scope of Mobile Web Best Practices" [Scope]. In summary, this document refers primarily to the extension of Web browsing onto mobile devices.
The Best Practice recommendations refer to delivered content. While they are clearly relevant to the processes of content creation and rendering on devices, they are not intended to be Best Practices for those activities.
As the goal of the document is to specify Best Practices for delivery to mobile devices, statements that do not have a specific mobile aspect are not included. In particular, many Web Content Accessibility [WCAG] guidelines are general to all forms of Web access and are not repeated here unless they have a specific mobile interpretation. Examples of general good practice which have a specific mobile interpretation include "Error Messages" and "Color".
See B Related Reading for information about the related topics of Internationalization, Web Accessibility and Device Independence.
As discussed in the Scope document [Scope] there are many aspects to Mobile Web Best Practices. At present, for example, the design and construction of many Web sites and pages make for a poor user experience when they are viewed on a mobile device.
The quality of the user's Web experience via a mobile device depends significantly on the usability of Web sites, of browsers, and of the device itself. Although browser usability and device usability are important (for reading, navigating, and interacting with content), this document focuses primarily on Best Practices for improving site usability.
In future phases other aspects may be considered - e.g. Best Practices as applied to adaptation and devices. Also in future phases the scope of the recommendations may be extended beyond "Traditional Web Browsing" into fields such as multimodal interaction.
These recommendations are in part derived from the Web Content Accessibility Guidelines [WCAG]. As noted above, WCAG guidelines are supplementary to the Mobile Web Best Practices, whose scope is limited to matters that have a specific mobile relevance.
This document builds on some of the concepts described by the Device Independence Working Group (DIWG) in the Device Independence Principles [DIP]. The document discusses device and delivery channel characteristics, which the DIWG has named "Delivery Context" [DCODI]. In addition, the document uses some terminology from DIWG's Glossary of Terms for Device Independence [DIGLOSS].
The BPWG is developing a companion document describing techniques [Techniques] by which the Best Practice statements in this document can be implemented.
The Best Practices have been written at a level of generality that allows them to be applicable across a range of markup languages. They have been written with enduring properties of mobile access to the Web in mind. While the factors identified in 3.7 Default Delivery Context, such as screen dimensions, will change over time, it seems likely that the distinguishing features of mobile access such as cost and difficulty of input will remain issues.
This document may be reviewed from time to time. When necessary, an updated version will be released with clear documentation as to the changes that have been introduced.
As noted above, the restrictions imposed by the keyboard and the screen typically require a different approach to page design than for desktop devices. As detailed in the Scope document [Scope], various other limitations may apply and these have an impact on the usability of the Web from a mobile device.
Mobile browsers often do not support scripting or plug-ins, which means that the range of content that they support is limited. In many cases the user has no choice of browser and upgrading it is not possible.
Some activities associated with rendering Web pages are computationally intensive - for example re-flowing pages, laying out tables, processing unnecessarily long and complex style sheets and handling invalid markup [T-MOB]. Mobile devices typically have quite limited processing power which means that page rendering may take a noticeable time to complete. As well as introducing a noticeable delay, such processing uses more power as does communication with the server.
Many devices have limited memory available for pages and images, and exceeding their memory limitations results in incomplete display and can cause other problems.
This popularity largely stems at present from them being:
personal
personalizable
portable
connected
and increasingly multi-functional beyond their original purpose of voice communications.
In addition to these factors, the advantages of mobile devices will increasingly include:
location awareness
one-handed operation
always on
universal alerting device
By way of illustration of some of these factors: the Web can go where you go. You do not have to remember to do something on the Web when you get back to your computer. You can do it immediately, within the context that made you want to use the Web in the first place.
Moreover, with mobile devices appearing in all shapes and forms, and with a growing variety of features like location technology, cameras, voice recognition, touch screens etc, the Web can reach a much wider audience, and at all times in all situations. It has the opportunity to reach into places where wires cannot go, to places previously unthinkable (e.g. providing medical info to mountain rescue scenes) and to accompany everyone as easily as they carry the time on their wristwatches.
Finally, today, many more people have access to mobile devices than access to a desktop computer. This is likely to be very significant in developing countries, where Web-capable mobile devices may play as similar a role in deploying wide-spread Web access as the mobile phone has played for providing "plain old telephone service".
Delivery Context is used with the specific meaning defined in the Device Independence Glossary [DIGLOSS].
As discussed in the Scope document [Scope], One Web means making, as far as is reasonable, the same information and services available to users irrespective of the device they are using. However, it does not mean that exactly the same information is available in exactly the same representation across all devices. The context of mobile use, device capability variations, bandwidth issues and mobile network capabilities all affect the representation. Furthermore, some services and information are more suitable for and targeted at particular user contexts (see 5.1.1 Thematic Consistency of Resource Identified by a URI).
Some services have a primarily mobile appeal (location based services, for example). Some have a primarily mobile appeal but have a complementary desktop aspect (for instance for complex configuration tasks). Still others have a primarily desktop appeal but a complementary mobile aspect (possibly for alerting). Finally there will remain some Web applications that have a primarily desktop appeal (lengthy reference material, rich images, for example).
It is likely that application designers and service providers will wish to provide the best possible experience in the context in which their service has the most appeal. However, while services may be most appropriately experienced in one context or another, it is considered best practice to provide as reasonable experience as is possible given device limitations and not to exclude access from any particular class of device, except where this is necessary because of device limitations.
From the perspective of this document this means that services should be available as some variant of HTML over HTTP (see 3.7 Default Delivery Context).
We do not describe adaptation in detail in this document. For a more detailed description, readers are referred to the Device Independence Principles [DIP].
In addition, the sister group of the Best Practices Working Group, the Device Description Working Group, is currently defining requirements for a repository of mobile device characteristics that are relevant to content adaptation.
Adaptation can be carried out in a number of different points in the delivery of content to the device [DCODI]:
Server Side adaptation implies that the content is delivered by the originating content server or application.
In-Network adaptation is where the content is altered as it passes through one or more network components. Some network operators, for example, compress images before they are passed over the air to the mobile device.
Client Side adaptation consists of the device accepting content and displaying it in an appropriate way for its characteristics.
Whatever the adaptation model at work, the process of adaptation should not diminish accessibility.
In phase 1 (See 1.4.1 Phasing) it is assumed that content adaptation, if any, is carried out Server Side. Future phases may consider the implications of content adaptation elsewhere, especially the issues concerning the granting of authority to third parties to carry out adaptation, prohibiting adaptation and so on. Later phases may also address multiple adaptation - i.e. the possibility that adaptation can be applied at more than one point and that In-Network adaptation may occur more than once.
It is also assumed that it is possible to create a site that is consistent with the Best Practice recommendations without carrying out adaptation at all. However it is likely that a more sophisticated and enhanced user experience will be achieved if adaptation is used.
There are several methods by which a content provider can discover information about the delivery context, such as CC/PP, UAPROF, CSS Media Queries and various outputs of the Device Independence Working Group. The companion Techniques [Techniques] document describes these methods.
In the interests of "One Web" (see 3.1 One Web) considerations, the content provider may choose to allow the user to select from broad categories such as mobile or desktop presentation, where these are distinguished in the application. If the presentation option has been determined automatically, the content provider may choose to allow the user to override the automatic determination. Where a choice of presentations is available, it is good practice to record the user's preferences and to allow them to be changed.
Given an appropriate server environment, it is unlikely that the content provider will be unable to find out anything about the delivery context. However this can happen, either because details of the delivery context are not available in sufficient detail or because the server does not provide the ability to inspect and act on the information provided. In this case a "reasonable default experience" should be provided.
The details of the default experience depend upon a number of factors including, but not limited to, the geographic region in which the service is offered and the primary intention of the service (e.g. considering whether the service is primarily desktop focused vs. primarily mobile focused).
In summary, the purpose of defining the DDC is to support the following rules:
If an adaptation process is used, then information that is known about the actual Delivery Context should (see 5.1.2 Exploit Device Capabilities) be used to vary the delivered content to make it more suitable for that specific Delivery Context or to provide an enhanced user experience.
If the delivered content does not result from an adaptation process - e.g. the content is statically defined as HTML stored in files, or the details of the Delivery Context cannot adequately be determined, then the delivered content should be suitable for the Default Delivery Context and should comply with the Best Practice statements.
The Default Delivery Context is defined as follows:
120 pixels, minimum.
XHTML Basic 1.1 [XHTML-Basic] delivered with content type application/xhtml+xml
.
UTF-8 [UTF-8].
JPEG.
GIF 89a.
20 kilobytes.
256 Colors, minimum.
CSS Level 1 [CSS]. In addition, CSS Level 2 [CSS2] @media
rule together with the handheld
and all
media types (see CSS 2 Media Types).
No support for client side scripting.
One or more Best Practice statements, identified in the following way:
An explanation of the significance of the statements under this heading.
A discussion of techniques and some suggestions as to how to implement. The BPWG is creating a separate document describing techniques [Techniques] in more detail.
The aspects of the delivered content that an external validator could examine to assess conformance with the Best Practice statements. This section is not present for process related statements.
In this section it is noted whether the statement is Machine Testable (Automated testing is possible) or Human Testable (Testing requires human assessment). Some Best Practices are partially machine testable, i.e. based on the result of an automated test, some human interaction may be required. In such cases both a Machine Testable and a Human Testable statement are present.
Some Best Practice statements use words such as "minimize" and "avoid" which are intentionally non-prescriptive. This is in order to provide guidance while leaving room to accommodate a wide variety of applications whose requirements cannot be anticipated. It also allows creativity and diversity within the same Best Practice framework. More prescriptive advice can be found in the Techniques document [Techniques].
Where appropriate, references to related WCAG points and other immediate references from the preceding text.
The Best Practice statements are grouped under the following headings
There are some general principles that underlie delivery to mobile devices.
This is a realization of the One Web (see 3.1 One Web) principle, whereby content should be accessible on a range of devices irrespective of differences in presentation capabilities and access mechanism. Web sites may paginate their content in various ways corresponding to differences in device characteristics; therefore the navigation structure of the site, and possibly its technical realization, may vary according to the device class that is being served. (See also [WebArch] Section 3.5.1).
A bookmark captured on one device should be usable on another, different type of device even if it does not yield exactly the same experience. If the page that was bookmarked is not appropriate for the device that is now using it, an alternative that is suitable should be provided.
URIs may be decorated to provide session or other information. If a URI is decorated with session information that is no longer current, then the user should be directed to a point in the navigation hierarchy that is appropriate to their device, in order to establish appropriate session and other parameters.
[CAPABILITIES] Exploit device capabilities to provide an enhanced user experience.
[DEFICIENCIES] Take reasonable steps to work around deficient implementations.
[NAVBAR] Provide only minimal navigation at the top of the page.
Provide basic navigation, which should be placed on the top of the page. Any other secondary navigational element may be placed at the bottom of the page if really needed. It is important the users should be able to see page content once the page has loaded without scrolling (see 5.3.4 Navigation Bars etc. (Extraneous material)).
Provide the same access key for links that are repeated across pages such as links to the home page.
[LINK_TARGET_ID] Clearly identify the target of each link.
[LINK_TARGET_FORMAT] Note the target file's format unless you know the device supports it.
For the Default Delivery Context all formats other than XHTML, GIF and JPG should be noted.
[IMAGE_MAPS] Do not use image maps unless you know the device supports them effectively.
For the Default Delivery Context, or if a satisfactory image map cannot be displayed, use a list of links with descriptive text instead.
Some mobile devices use a separate window for input; this section does not refer to such windows.
This section refers to the user's perception of the delivered content. It concentrates on design, the language used in its text and the spatial relationship between constituent components. It does not address the technical aspects of how the delivered content is constructed, which is discussed in 5.4 Page Definition.
[SUITABLE] Ensure that content is suitable for use in a mobile context.
[CLARITY] Use clear and simple language.
[LIMITED] Limit content to what the user has requested.
Users in a mobile context are often looking for specific pieces of information, rather than browsing. Content providers should consider the likely context of use of information and, while providing the option to access all information, should offer appropriate information first. See also discussion under 2.4 User Goals and 3.1 One Web.
The general prescription to use clear language is of particular importance for mobile delivery, where brevity and directness are generally more desirable than a discursive style.
Writing content in the traditional journalistic "front loaded" style can assist users determining whether information is of interest to them and allow them to skip it more easily if it is not. Placing distinguishing information at the beginning of headings, paragraphs, lists, etc. can also help the user contextualize when using devices with limited screen area. See also 5.3.4 Navigation Bars etc. (Extraneous material) for a discussion of making sure that the subject matter of the page is near the top.
Mobile users often pay for bandwidth, so offering them content that is extraneous to their needs, especially advertising, costs them time and money and contributes to an unsatisfactory experience. In general, the user's consent should be sought before initiating the download of content.
[PAGE_SIZE_USABLE] Divide pages into usable but limited size portions.
Some studies [MF] have been carried out in this area to test for user preferences. Some of these indicate that users prefer scrolling to click-throughs and some indicate the contrary. More research is likely to be needed in this area.
For the Default Delivery Context assume the limits specified in 3.7 Default Delivery Context.
[SCROLLING] Limit scrolling to one direction, unless secondary scrolling cannot be avoided.
See also 5.3.1 Page Content for a discussion of how writing style can help the user identify meaning.
[USE_OF_COLOR] Ensure that information conveyed with color is also available without color.
[NO_FRAMES] Do not use frames.
Machine Test: Test for presence of frame related elements - check for frameset
and iframe
elements.
See http://www.w3.org/TR/xframes/#s_intro for a discussion of problems with frames.
[STRUCTURE] Use features of the markup language to indicate logical document structure.
[TABLES_SUPPORT] Do not use tables unless the device is known to support them.
[TABLES_NESTED] Do not use nested tables.
[TABLES_LAYOUT] Do not use tables for layout.
[TABLES_ALTERNATIVES] Where possible, use an alternative to tabular presentation.
[NON-TEXT_ALTERNATIVES] Provide a text equivalent for every non-text element.
[OBJECTS_OR_SCRIPT] Do not rely on embedded objects or script.
A non-text item is defined by Non-text content in the WAI Glossary [WAIGlossary].
Downloading images to a mobiledevice adds to the time to display an image and the cost of displaying the page. Making the page readable in text-only mode can help the user assess its usefulness before images arrive.
Many mobile devices do not support embedded objects or script and in many cases it is not possible for users to load plug-ins to add support. Content must be designed with this in mind.
Even where a device does support scripting, do not use it unless there is no other way of accomplishing your objectives. Scripting increases power consumption and so decreases battery life.
Design pages so that they are useful when rendered as text-only. See also 5.1.4 Testing.
Always use features of the markup designed to support alternate rendering such as the longdesc
and alt
attributes in XHTML.
Use only features from the markup that are known to be supported by the device in question.
Avoid things like CSS image replacement and pictures of words.
If scripting is used, do not use onmouse
and onkey
triggers, use onclick
.
[IMAGES_SPECIFY_SIZE] Specify the size of images in markup, if they have an intrinsic size.
[IMAGES_RESIZING] Resize images at the server, if they have an intrinsic size.
Note that this recommendation contrasts with 5.4.8 Measures, which recommends using relative measures where possible.
[VALID_MARKUP] Create documents that validate to published formal grammars.
Avoiding pixel and absolute measures allows the browser to adapt content to fit the display. An exception to rule is where an image has been specifically sized for a particular display (see 5.4.6 Image Size). In this case references to the image in markup may specify the exact dimensions of the image in pixels, in order to help the browser to flow the page and avoid re-flowing it after the page has been retrieved. Devices may realize the intentions of authors more accurately if margins, borders and padding are specified in pixels.
[STYLE_SHEETS_SIZE] Keep style sheets small.
It is preferable to share style information between pages, but if the device does not support caching of style sheets then this approach would result in
the same style sheet being retrieved for each page. Consequently, in order of preference: if the device caches style sheets, put style information in a single external style sheet (see also 5.2.9 Externally Linked Resources); if the device supports the style
element, use it; otherwise use an external style sheet.
Optimize style information so that only styles that are used are included.
When creating style sheets, take advantage of the CSS media types (these may be used both in the CSS @media
rule and in the media
attribute of the link
element) to specify styles that apply to handheld rendering. The CSS Media types that apply are "handheld" and "all". If handheld rendering is not specified, browsers may download other style sheets even if they are identified as applicable to non-handheld rendering
[MINIMIZE] Use terse, efficient markup.
Marking fonts, colors and other stylistic effects in-line can cause considerably larger page sizes when compared with using logical markup, and use of the HTML class
attribute for application of style (see also 5.4.9 Style Sheets).
Use of structural markup (see 5.4.3 Structural Elements) contributes to minimizing the size of the markup on a page, as does centralizing the style descriptions using CSS [CSS].
[CONTENT_FORMAT_SUPPORT] Send content in a format that is known to be supported by the device.
[CONTENT_FORMAT_PREFERRED] Where possible, send content in a preferred format.
[CHARACTER_ENCODING_USE] Indicate in the response the character encoding being used.
As in the previous section, content should not be sent to a device if it can not use it.
The character encoding being used in a response may be indicated using the HTTP Content-Type header.
Additionally for XML [XML] documents the character encoding may be indicated in the encoding declaration, although this will generally be ignored if an HTTP Content-Type header is present.
Example: <?xml version="1.0" encoding="UTF-8"?>
Encoding of the content to a desired character encoding is dependent on the authoring tools being used, Web server configuration and the server side scripting technology being used (if any). For a discussion of this see [CHARSET1] and [CHARSET2].
Unicode is a good choice for representing content when served in multiple languages. The amount of bandwidth required to transmit content can vary significantly depending on the character encoding used. Text consisting principally of characters from the Latin alphabet will encode more efficiently in UTF-8, whereas text consisting principally of characters from ideographic scripts will encode more efficiently in UTF-16. When choosing a character encoding, consider the efficiency of the available encodings.
Since the Default Delivery Context specifies use only of UTF-8, all applications should support UTF-8.
See [XML] Character Encoding in Entities for a discussion of character encoding in XML documents.
It is noted that many Web servers provide a default error page, especially in the event of a request for a non-existent page (404) or an internal error (500). Where possible (see [TOMCAT], [APACHE] and [IIS]), applications should trap all error conditions by overriding the default pages if necessary, and handle them in a user-friendly, and graceful, way.
Error messages should be provided in the same language as the application that was being used. They should be clear and concise, adhering to the same Best Practices as the rest of the application. They should be provided in a format that the device can handle.
The error message should detail whether the issue is likely to be temporary or permanent, whether the user may be able to solve the issue themselves (for example, by changing input data or a handset setting), or whether it is an issue that can be escalated to the content provider or network operator. In the latter case, contact details, such as an SMS address or a support line number, might be appropriate.
The error message should provide one or more of the following navigational constructs:
A "back" link to return to the previous page (particularly for devices that do not have an easy to find back button);
A "retry" link to attempt the relevant part of the transaction again (note that this may not be equivalent to a page "refresh");
A "home" link to allow the user to return to the main part of the application.
The error message can provide an error code to be used for diagnosis of the issue. However, the use of an error code is not a substitute for a human-readable message. While some users may understand "404" to mean "page cannot be found", this must not be assumed to be true for all users.
[CACHING] Provide caching information in HTTP responses.
The HTTP 1.1 specification [HTTP1.1] and Techniques document [Techniques] contain discussions of caching.
[FONTS] Do not rely on support of font related styling.
Mobile devices often have few fonts and limited support for font sizes and effects (bold, italic etc.) As a result of this, the use of font size, face or effect, for example to highlight an answer or a stressed word, may not achieve the desired effect. See also 5.4.3 Structural Elements.
For the Default Delivery Context do not use font related styling.
[MINIMIZE_KEYSTROKES] Keep the number of keystrokes to a minimum.
[AVOID_FREE_TEXT] Avoid free text entry where possible.
[PROVIDE_DEFAULTS] Provide pre-selected default values where possible.
Some markup languages allow the specification of an input mode, which is particularly useful in cases where user input is to be restricted, for example to numeric only. It is anticipated that XHTML-Basic [XHTML-Basic] will support this functionality in the future.
There are a number of techniques available for this, including:
Where possible use previous entries as defaults.
Make it possible to select items using navigation keys and/or numeric input.
[TAB_ORDER] Create a logical order through links, form controls and objects.
iMode Guidelines [iMode]
Opera's "Making Small Devices Look Great" [Opera]
Openwave Guidelines [OpenWave]
Nokia's Series 60 XHTML-MP Guidelines [Nokia-MP]
Browsing on Mobile Phones, Nokia [Nokia-VR]
Little Spring Design [LSD]
While the Best Practice statements have mainly been assembled by secondary research, the sources for that research have in many cases been assembled from primary research. In addition, group members' contributions are to some extent informed by primary research carried out by their company.
The Character Model for the World Wide Web and other materials prepared by the W3C Internationalization (i18n) Activity cover important interoperability drivers for content prepared for the One Web and the mobile-services arena.
The Web Accessibility Initiative has prepared a variety of Guidelines and Techniques that likewise bear on the preparation and processing of content in and for the Web.
Section 3.2 Background to Adaptation above introduced the idea of content adaptation. Readers who contemplate implementing server-side adaptation will be interested in the ongoing work of the Device Independence Activity.
The editors acknowledge significant written contributions from: