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. | ||