This is the list of best practices from the Mobile Web Best Practices document; the links of the first column lead to the complete list of techniques available.
Moniker |
Best Practice |
Number of techniques available |
Overall Behavior |
||
Ensure that content provided by accessing a URI yields a thematically coherent experience when accessed from different devices. |
||
Exploit device capabilities. Do not take a least common denominator approach. |
[[CountLinks(CategoryBpCapabilities,2)]] |
|
Take reasonable steps to work around deficient implementations. |
[[CountLinks(CategoryBpDeficiencies,2)]] |
|
Carry out testing on actual devices as well as emulators. |
[[CountLinks(CategoryBpTesting,2)]] |
Navigation and Links |
||
Keep the URIs of site entry points short. |
[[CountLinks(CategoryBpUris,2)]] |
|
Provide only minimal navigation at the top of the page. |
[[CountLinks(CategoryBpNavbar,2)]] |
|
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. |
[[CountLinks(CategoryBpBalance,2)]] |
|
Provide consistent navigation mechanisms. |
[[CountLinks(CategoryBpNavigation,2)]] |
|
Assign access keys to links in navigational menus and frequently accessed functionality. |
[[CountLinks(CategoryBpAccessKeys,2)]] |
|
Clearly identify the target of each link. |
[[CountLinks(CategoryBpLinkTargetId,2)]] |
|
Note the target file's format unless you know the device supports it. |
||
Do not use image maps unless you know the target client supports them effectively. |
[[CountLinks(CategoryBpImageMaps,2)]] |
|
Do not cause pop-ups or other windows to appear and do not change the current window without informing the user. |
[[CountLinks(CategoryBpPopUps,2)]] |
|
Do not create periodically auto-refreshing pages, unless you have informed the user and provided a means of stopping it. |
[[CountLinks(CategoryBpAutoRefresh,2)]] |
|
Do not use markup to redirect pages automatically. Instead, configure the server to perform redirects by means of HTTP 3xx codes. |
[[CountLinks(CategoryBpRedirection,2)]] |
|
Keep the number of externally linked resources to a minimum. |
Page Layout and Content |
||
Ensure that content is suitable for use in a mobile context. |
[[CountLinks(CategoryBpSuitable,2)]] |
|
Use clear and simple language. |
[[CountLinks(CategoryBpClarity,2)]] |
|
Limit content to what the user has requested. |
[[CountLinks(CategoryBpLimited,2)]] |
|
Divide pages into usable but limited size portions. |
||
Ensure that the overall size of page is appropriate to the memory limitations of the device. |
||
Limit scrolling to one direction, unless secondary scrolling cannot be avoided. |
[[CountLinks(CategoryBpScrolling,2)]] |
|
Ensure that material that is central to the meaning of the page precedes material that is not. |
||
Do not use graphics for spacing. |
||
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. |
||
Ensure that information conveyed with color is also available without color. |
[[CountLinks(CategoryBpUseOfColor,2)]] |
|
Ensure that foreground and background color combinations provide sufficient contrast. |
||
When using background images make sure that content remains readable on the device. |
Page Definition |
||
Provide a short but descriptive page title. |
[[CountLinks(CategoryBpPageTitle,2)]] |
|
Do not use frames. |
[[CountLinks(CategoryBpNoFrames,2)]] |
|
Use features of the markup language to indicate logical document structure. |
[[CountLinks(CategoryBpStructure,2)]] |
|
Do not use tables unless the client is known to support them. |
||
Do not use nested tables. |
[[CountLinks(CategoryBpTablesNested,2)]] |
|
Do not use tables for layout. |
[[CountLinks(CategoryBpTablesLayout,2)]] |
|
Where possible, use an alternative to tabular presentation. |
||
Provide a text equivalent for every non-text element. |
||
Do not rely on embedded objects or script. |
||
Specify the size of images in markup, if they have an intrinsic size. |
||
Resize images at the server, if they have an intrinsic size. |
||
Create documents that validate to published formal grammars. |
[[CountLinks(CategoryBpValidMarkup,2)]] |
|
Do not use pixel measures and do not use absolute units in markup language attribute values and style sheet property values. |
[[CountLinks(CategoryBpMeasures,2)]] |
|
Use style sheets to control layout and presentation, unless the device is known not to support them. |
||
Organize documents so that they may be read without style sheets. |
||
Keep style sheets small. |
||
Use terse, efficient markup. |
||
Send content in a format that is known to be supported by the device. |
||
Where possible, send content in a preferred format. |
||
Ensure that content is encoded using a character encoding that is known to be supported by the target device. |
||
Indicate in the response the character encoding being used. |
||
Provide informative error messages and a means of navigating away from an error message back to useful information. |
||
Do not rely on cookies being available. |
[[CountLinks(CategoryBpCookies,2)]] |
|
Provide caching information in HTTP responses. |
[[CountLinks(CategoryBpCaching,2)]] |
|
Do not rely on support of font related styling. |
[[CountLinks(CategoryBpFonts,2)]] |
User Input |
||
Keep the number of keystrokes to a minimum. |
||
Avoid free text entry where possible. |
||
Provide pre-selected default values where possible. |
||
Specify a default text entry mode, language and/or input format, if the target device is known to support it. |
||
Create a logical order through links, form controls and objects. |
[[CountLinks(CategoryBpTabOrder,2)]] |
|
Label all controls appropriately and explicitly associate labels with controls. |
||
Position labels so they lay out properly in relation to the controls they refer to. |