This document gathers implementation feedback on the Mobile Web Application Best Practices W3C Last Call Working Draft dated 13 July 2010 that follows the W3C Candidate Recommendation dated 11 February 2010.
A double implementation of each Best Practice is required for the Mobile Web Application Best Practices document to exit the Candidate Recommendation phase. A company may report more than one implementation. The double implementation of a Best Practice is validated when two different companies implement the Best Practice. Exceptions to the rule are explained in the table below.
Since publication as a W3C Candidate Recommendation on 11 February 2010, the group demoted three Best Practices based on the implementation feedback received. These statements are still part of the specification as advisory notes, and listed as such at the end of the table below. A double implementation of these advisory notes is not required for the document to transition out of Candidate Recommendation, but please note the group would still welcome implementation feedback on them.
In the table below, Implementation A (member-only link) is a map service, Implementation B (member-only link) a photo organizer, Implementation C (member-only link) an online contacts component used in various applications, Implementation D (member-only link) an email client, Implementation E (member-only link) a content sharing application, Implementation F (member-only link) a content portal, Implementation G (member-only link) a quiz application, Implementation H (member-only link) a social networking application, Implementation I the mobile version of AutoScout24 to lookup cars for sale, Implementation J an events consultation application called EventNinja.
The Mobile Web Best Practices Working Group invites implementors that wish to take part to this implementation report to:
Note that the Working Group does not expect Web applications to implement the whole set of Best Practices at once. Implementation reports for Web applications that implement only one or two Best Practices are strongly encouraged!
Best Practice | Company 1 | Company 2 | Company 3 | Deutsche Telekom | Uxebu | Double implementation | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
Impl. A | Impl. B | Impl. C | Impl. D | Impl. E | Impl. F | Impl. G | Impl. H | Impl. I | Impl. J | ||
1. Use Cookies Sparingly | pass | partial | partial | pass | pass | pass | pass | Yes | |||
2. Use Appropriate Client-Side Storage Technologies for Local Data | pass | pass | pass | pass | pass | pass | pass | pass | Yes | ||
3. Replicate Local Data | pass | pass | pass | pass | pass | Yes | |||||
4. Do not Execute Unescaped or Untrusted JSON data | pass | partial | pass | pass | pass | pass | pass | pass | Yes | ||
5. Ensure the User is Informed About Use of Personal and Device Information | pass | pass | pass | pass | Yes | ||||||
6. Enable Automatic Sign-in | pass | pass | pass | pass | pass | pass | Yes | ||||
7. Use Transfer Compression | pass | pass | pass | pass | pass | pass | Yes | ||||
8. Minimize Application and Data Size | pass | pass | pass | pass | pass | partial | pass | pass | Yes | ||
9. Avoid Redirects | pass | pass | partial | partial | pass | pass | Yes | ||||
10. Optimize Network Requests | partial | pass | pass | pass | pass | partial | pass | Yes | |||
11. Minimize External Resources | pass | pass | pass | pass | partial | pass | pass | Yes | |||
12. Aggregate Static Images into a Single Composite Resource (Sprites) | pass | partial | pass | pass | pass | partial | pass | Yes | |||
13. Include Background Images Inline in CSS Style Sheets | pass | pass | pass | pass | pass | pass | Yes | ||||
14. Cache Resources By Fingerprinting Resource References | pass | pass | Group resolved to proceed with these 2 implementations from the same company, as there's evidence that fingerprinting is used in the wild. | ||||||||
15. Cache AJAX Data | pass | partial | pass | pass | partial | pass | Yes | ||||
16. Do not Send Cookie Information Unnecessarily | pass | pass | pass | Yes | |||||||
17. Keep DOM Size Reasonable | pass | pass | pass | partial | pass | pass | pass | pass | Yes | ||
18. Optimize For Application Start-up Time | pass | pass | pass | pass | pass | partial | partial | pass | pass | pass | Yes |
19. Minimize Perceived Latency | pass | pass | pass | pass | pass | partial | pass | pass | pass | Yes | |
20. Design for Multiple Interaction Methods | pass | pass | pass | pass | partial | partial | pass | pass | Yes | ||
21. Preserve Focus on Dynamic Page Updates | pass | pass | partial | pass | pass | Yes | |||||
22. Use Fragment IDs to Drive Application View | pass | pass | pass | pass | pass | Group resolved to proceed with these 5 implementations from the same company. | |||||
23. Make Telephone Numbers "Click-to-Call" | pass | pass | pass | pass | pass | Yes | |||||
24. Ensure Paragraph Text Flows | partial | pass | pass | pass | pass | pass | pass | pass | pass | Yes | |
25. Ensure Consistency Of State Between Devices | pass | pass | pass | pass | pass | Yes | |||||
26. Consider Mobile Specific Technologies for Initiating Web Applications | partial | partial | partial | Group thinks partial actually means pass. | |||||||
27. Use Meta Viewport Element To Identify Desired Screen Size | pass | pass | pass | pass | partial | partial | pass | Yes | |||
28. Prefer Server-side Detection Where Possible | pass | pass | pass | pass | pass | pass | pass | Yes | |||
29. Use Client-side Detection When Necessary | pass | partial | pass | pass | Yes | ||||||
30. Use Device Classification to Simplify Content Adaptation | pass | pass | pass | pass | pass | pass | pass | Yes | |||
31. Support a non-JavaScript Variant if Appropriate | pass | pass | pass | partial | pass | Yes | |||||
32. Offer Users a Choice of Interfaces | partial | pass | pass | pass | Yes | ||||||
Advisory note | Company 1 | Company 2 | Company 3 | Deutsche Telekom | Uxebu | Double implementation | |||||
Impl. A | Impl. B | Impl. C | Impl. D | Impl. E | Impl. F | Impl. G | Impl. H | Impl. I | Impl. J | ||
1. Consider Use Of Canvas Element or SVG For Dynamic Graphics | pass | pass | pass | pass | 1 | ||||||
2. Inform the User About Automatic Network Access | partial | 0.5 | |||||||||
3. Provide Sufficient Means to Control Automatic Network Access | 0 |