Best Practices in XHTML Design for Mobile Devices

If you're starting your career designing or developing for mobile devices using XHTML, you've made a good choice. You probably already know about XHTML tools, tricks, and design. However, we'd like to caution you: designing for mobile devices is not like designing for large-screen devices. Differences include:

Design Strategies

Below you'll find some overall strategies that will help you create easy-to-use XHTML web sites for use on mobile devices.

  1. Know your target devices. Devices and browsers have a variety of differences:
  2. Know your target gateways. Gateways, which may be provided by carriers, can affect how your content is rendered. They may allow only validated XHTML Basic through, they may translate graphics, and they may do other things. Or they may not exist at all. Check with carriers in your major target markets.
  3. Think vertical, not horizontal. Most mobile devices have a vertical layout, and users scroll downwards to get more content. Forget anything you've learned about users viewing the middle of the screen first: they view the top first on mobile devices. Therefore, avoid navigation bars, tabs, and side-by-side positioning. Design from the top down.
  4. Design with lists, not tables. There are all sorts of problems with tables: Lists enable vertical designs as mentioned above. Exception: if you have tabular data, by all means display it in a table. A calendar month-view is an excellent example of data that should be presented in a table. Tips on using lists:
  5. Use all possible parts of the markup language. Although many devices do not support certain extensions to XHTML Basic, the features can greatly enhance usability. For example, Nokia and some Openwave devices support the WTAI library, enabling phone calls to be made directly from your page. Some browsers support the CSS extension -wap-format-input, allowing you to restrict input in a text field. Openwave supports the WML tags enhancing navigation. These types of extensions can greatly enhance usability.
  6. Think small. Devices have small screens, small processors, small memory, restricted text input mechanisms. Keep your pages small, your text input reduced, tables minimized, CSS minimized, comments eliminated, etc. Tips:
  7. Use caution with external CSS. In theory, external CSS allows you to have one CSS that applies to your entire site while reducing the amount of downloading the user has to do. In practice, many browsers do not cache the CSS and thus download it again for each page the user visits. Further, when the CSS is downloaded, the already-displayed XHTML content jumps around to render the new styling. Although not part of the XHTML Basic standard, internal CSS (part of the head element) is supported for Openwave, Nokia, AU Systems, and Access browsers.
  8. Keep navigation simple and consistent. Use only one primary method for accessing content. Keep your site shallow - 3 layers is a good target maximum. Keep the navigation consistent from page to page so that your users can learn it. Navigation tips:
  9. Keep colors and images simple. Remember that your devices are small, have screens that don't necessarily render colors well, and are used in a wide variety of light and glare coniditions. Therefore,
  10. Carefully design session, cache, and security management. Specifically, be aware that:

Over the next few months, Openwave will be gathering more specific suggestions and recommendations for designing for multiple XHTML browsers. Stay tuned!