| Mobile Web Best Practices Working Group
This document gathers implementation feedback on the Mobile Web Best Practices Candidate Recommendation dated June 27, 2006. Implementors that wish to take part to this implementation report should fill the implementation report template with the results of their evaluation of their Web site through the Best Practices, accompanied with their comments and feedback on the work required to implement this or that Best Practice and send it to the Mobile Web Best Practices Working Group as described in the template.
In addition, implementors are invited to contribute to the techniques Wiki associated with the Best Practices based on their implementation experience.
The following Best Practice was not succesfully implemented twice: DEFAULT_INPUT_MODE; the Working Group believes it is still a useful addition to sites to work well on mobile devices, and will enhance the user experience over time as support for the inputmode attribute gets improved, and taking into account that aspect, the Director approved keeping this Best Practice in despite the lack of implementation.
In the table below, Implementation A is a Search Engine service, Implementation B a blog, Implementation C a content portal, Implementation D an event presentation site, Implementation E a site presenting a municipality, Implementation F a software sales/support site which includes a 500 000 user community sites (with blogging and puslihing components).
Best Practice | Implementation A | Implementation B | Implementation C | Implementation D | Implementation E | Implementation F | Comments | Double implementation |
---|---|---|---|---|---|---|---|---|
1. [THEMATIC_CONSISTENCY] Ensure that content provided by accessing a URI yields a thematically coherent experience when accessed from different devices. | Pass | Pass | Pass | Partial | Pass | Pass | Yes | |
2. [CAPABILITIES] Exploit device capabilities to provide an enhanced user experience. | Partial | Not answered | Pass | Fail | Pass | Pass | Impl A:
Impl E:
|
Yes |
3. [DEFICIENCIES] Take reasonable steps to work around deficient implementations. | Pass | Not answered | N/A | N/A | Pass | Pass | Impl A:
Impl E:
|
yes |
4. [TESTING] Carry out testing on actual devices as well as emulators. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
5. [URIS] Keep the URIs of site entry points short. | Pass | Pass | Pass | Partial | Fail | Pass | Yes | |
6. [NAVBAR] Provide only minimal navigation at the top of the page. | Partial | Pass | Pass | Pass | Pass | Pass | Impl A:
|
Yes |
7. [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. | Pass | Not answered | Pass | Pass | Pass | Pass | Yes | |
8. [NAVIGATION] Provide consistent navigation mechanisms. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
9. [ACCESS_KEYS] Assign access keys to links in navigational menus and frequently accessed functionality. | Pass | Partial | Fail | Pass | Pass | Pass | Impl B:
Impl C:
|
Yes |
10. [LINK_TARGET_ID] Clearly identify the target of each link. | Pass | Not answered | Pass | Pass | Pass | Partial | Yes | |
11. [LINK_TARGET_FORMAT] Note the target file's format unless you know the device supports it. | Pass | Pass | Pass | Pass | Pass | Partial | Yes | |
12. [IMAGE_MAPS] Do not use image maps unless you know the device supports them effectively. | Pass | N/A | N/A | N/A | Pass | Pass | (N/A really means "Pass" in this case, I believe) | |
13. [POP_UPS] Do not cause pop-ups or other windows to appear and do not change the current window without informing the user. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
14. [AUTO_REFRESH] Do not create periodically auto-refreshing pages, unless you have informed the user and provided a means of stopping it. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
15. [REDIRECTION] Do not use markup to redirect pages automatically. Instead, configure the server to perform redirects by means of HTTP 3xx codes. | Pass | Pass | Pass | Pass | Pass | Partial | Yes | |
16. [EXTERNAL_RESOURCES] Keep the number of externally linked resources to a minimum. | Pass | Not answered | Pass | Pass | Pass | Pass | Yes | |
17. [SUITABLE] Ensure that content is suitable for use in a mobile context. | Pass | Partial | Pass | Pass | Pass | Partial | Impl B:
|
Yes |
18. [CLARITY] Use clear and simple language. | Pass | Partial | Pass | Pass | Pass | Pass | Yes | |
19. [LIMITED] Limit content to what the user has requested. | Pass | Not answered | Partial | Pass | Pass | Pass | Yes | |
20. [PAGE_SIZE_USABLE] Divide pages into usable but limited size portions. | Pass | Pass | Pass | Pass | Pass | Partial | Yes | |
21. [PAGE_SIZE_LIMIT] Ensure that the overall size of page is appropriate to the memory limitations of the device. | Pass | Partial | Pass | Pass | Pass | Partial | Impl F:
|
Yes |
22. [SCROLLING] Limit scrolling to one direction, unless secondary scrolling cannot be avoided. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
23. [CENTRAL_MEANING] Ensure that material that is central to the meaning of the page precedes material that is not. | Pass | Not answered | Pass | Pass | Pass | Pass | Yes | |
24. [GRAPHICS_FOR_SPACING] Do not use graphics for spacing. | Pass | Pass | Fail | Pass | Pass | Pass | Yes | |
25. [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. | Pass | Pass | Pass | Pass | Pass | Partial | Impl F:
|
Yes |
26. [USE_OF_COLOR] Ensure that information conveyed with color is also available without color. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
27. [COLOR_CONTRAST] Ensure that foreground and background color combinations provide sufficient contrast. | Pass | Pass | Pass | Pass | Pass | Partial | Impl C:
|
Yes |
28. [BACKGROUND_IMAGE_READABILITY] When using background images make sure that content remains readable on the device. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
29. [PAGE_TITLE] Provide a short but descriptive page title. | Pass | Pass | Pass | Partial | Fail | Pass | Yes | |
30. [NO_FRAMES] Do not use frames. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
31. [STRUCTURE] Use features of the markup language to indicate logical document structure. | Fail | Pass | Partial | Pass | Pass | Pass | Impl A:
|
Yes |
32. [TABLES_SUPPORT] Do not use tables unless the device is known to support them. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
33. [TABLES_NESTED] Do not use nested tables. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
34. [TABLES_LAYOUT] Do not use tables for layout. | Pass | Pass | Fail | Pass | Pass | Pass | Impl C:
|
Yes |
35. [TABLES_ALTERNATIVES] Where possible, use an alternative to tabular presentation. | Pass | N/A | Pass | Pass | Pass | Pass | Impl B:
|
Yes |
36. [NON-TEXT_ALTERNATIVES] Provide a text equivalent for every non-text element. | Pass | Pass | Partial | Pass | Pass | Partial | Impl C:
Impl F:
|
Yes |
37. [OBJECTS_OR_SCRIPT] Do not rely on embedded objects or script. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
38. [IMAGES_SPECIFY_SIZE] Specify the size of images in markup, if they have an intrinsic size. | Fail | Fail | Pass | Pass | Pass | Pass | Impl A:
Impl B:
|
Yes |
39. [IMAGES_RESIZING] Resize images at the server, if they have an intrinsic size. | Pass | N/A | Pass | N/A | Pass | Partial | Impl D:
|
Yes |
40. [VALID_MARKUP] Create documents that validate to published formal grammars. | Fail | Pass | Fail | Pass | Pass | Pass | Impl A:
|
Yes |
41. [MEASURES] Do not use pixel measures and do not use absolute units in markup language attribute values and style sheet property values. | Pass | Pass | Fail | Pass | Pass | Partial | Yes | |
42. [STYLE_SHEETS_USE] Use style sheets to control layout and presentation, unless the device is known not to support them. | Partial | Pass | Pass | Pass | Pass | Pass | Impl A:
|
Yes |
43. [STYLE_SHEETS_SUPPORT] Organize documents so that if necessary they may be read without style sheets. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
44. [STYLE_SHEETS_SIZE] Keep style sheets small. | Pass | Pass | Pass | Pass | Pass | Fail | Yes | |
45. [MINIMIZE] Use terse, efficient markup. | Pass | Pass | Partial | Partial | Pass | Partial | Impl D:
|
Yes |
46. [CONTENT_FORMAT_SUPPORT] Send content in a format that is known to be supported by the device. | Pass | Pass | Pass | Partial | Pass | Partial | Impl D:
Impl F:
|
Yes |
47. [CONTENT_FORMAT_PREFERRED] Where possible, send content in a preferred format. | Pass | Pass | Pass | Partial | Pass | Partial | Impl D:
|
Yes |
48. [CHARACTER_ENCODING_SUPPORT] Ensure that content is encoded using a character encoding that is known to be supported by the device. | Pass | Pass | Pass | Pass | Fail | Pass | Impl E:
|
Yes |
49. [CHARACTER_ENCODING_USE] Indicate in the response the character encoding being used. | Pass | Pass | Fail | Pass | Pass | Pass | Yes | |
50. [ERROR_MESSAGES] Provide informative error messages and a means of navigating away from an error message back to useful information. | Fail | Fail | Pass | Fail | Pass | Pass | Impl A:
Impl B:
Impl D:
|
Yes |
51. [COOKIES] Do not rely on cookies being available. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
52. [CACHING] Provide caching information in HTTP responses. | Partial | Fail | Pass | Fail | Pass | N/A | Impl A:
Impl B:
Impl F:
|
Yes |
53. [FONTS] Do not rely on support of font related styling. | Pass | Pass | Pass | Pass | Pass | Pass | Yes | |
54. [MINIMIZE_KEYSTROKES] Keep the number of keystrokes to a minimum. | Pass | Pass | Pass | N/A | Pass | Pass | Impl D:
|
Yes |
55. [AVOID_FREE_TEXT] Avoid free text entry where possible. | Pass | Pass | Pass | N/A | Pass | Pass | Yes | |
56. [PROVIDE_DEFAULTS] Provide pre-selected default values where possible. | Pass | Pass | Pass | N/A | Pass | Pass | Yes | |
57. [DEFAULT_INPUT_MODE] Specify a default text entry mode, language and/or input format, if the device is known to support it. | Fail | N/A | Partial | N/A | Fail | Partial | Impl F:
|
No |
58. [TAB_ORDER] Create a logical order through links, form controls and objects. | Pass | Bug | Pass | Pass | Pass | Pass | Impl B:
|
Yes |
59. [CONTROL_LABELLING] Label all form controls appropriately and explicitly associate labels with form controls. | Pass | Pass | Fail | N/A | Pass | Pass | Yes | |
60. [CONTROL_POSITION] Position labels so they lay out properly in relation to the form controls they refer to. | Pass | Pass | Fail | N/A | Pass | Pass | Yes |