W3C mobileOK Checker
Address: |
![]() |
---|---|
Result: | |
Page Size: | |
Network: |
Help on the checker is available.
Where to start...
2 critical error(s) detected!
>These errors typically prevent the rendering of at least part of the page on mobile devices. Critical errors should be addressed first. Here is the list:
<p>
-
An input element with type attribute set to "image" is present
-
HTTP status code 404 (Not Found) or 5xx (Server Error) received for an embedded resource
Follow the links above for a detailed description of each message and suggestions to fix the underlying problem.
Detailed report
-
Markup
The quality of the markup sent to mobile browsers will impact the reliability and smoothness of the rendering of the page. Markup validity is the first step to delivering content that can be parsed and rendered reliably by browsers. The recommended markup format for mobile content is XHTML Basic 1.1. But beyond validity, various tags and attributes have a specific impact in the mobile world. For instance, CSS style sheets should be used to control the layout of the page instead of presentational tags (e.g.
center
,big
, orfont
) and images sizes should be defined in the markup to avoid reflows. -
Structure of the page
Markup validity does not ensure that tags are used appropriately. For instance, given the lack of support for nested tables in mobile browsers and the small screen sizes, using tables for layout will not work on mobile devices. The same goes with the use of applets, frames, pop-ups, and so on. The size of the page is also a very important aspect to keep in mind when designing mobile-friendly pages.
-
Layout
Checks that tables are not used for layout and that graphics are not used for spacing.
-
Page weight
The size of the page includes the page itself, the external style sheet(s), and the embedded images and objects. mobileOK requires the total size of the page to be under 20 KB, and the markup itself to be under 10 KB to ensure that the page can be retrieved and rendered by a mobile device in a reasonable amount of time.
-
Scripting
Scripts can be used as long as scripting support is not required, since many mobile browsers have limited or no support for Javascripts.
-
Inclusions
Frames, pop-ups and applets are not at all mobile friendly. Usage of the
object
tag with its fallback mechanism needs particular care to avoid unnecessary downloads. -
Image maps
Checks that image maps are not used.
-
Layout
-
Style sheets
The most efficient way to control the layout of a page is to use CSS style sheets. To use them well in a mobile browser, it is important to ensure that the CSS style sheets referenced by a page and the CSS styles directly defined in the page are valid, and e.g. make a good use of the
@media
rules. -
Images/Objects
Images and/or image objects must be delivered in an appropriate format and dimensions so that they can be retrieved and rendered by most mobile browsers. mobileOK requires that all images and rendered objects be either GIF or JPEG images.
-
Character Encoding
Checks in this category ensure that the content is properly encoded, and that the encoding being used is properly advertised in the HTTP headers. See Introducing Character Sets and Encodings for an overview of this topic. mobileOK requires that the content be made available encoded in UTF-8.
-
User input
Keyboard and other input methods on mobile devices can be tedious to use. Inputs should be minimized. Default values should be provivded to guide the user whenever possible.
-
At the HTTP level
The source of the messages in this category is to be found in the HTTP headers that were sent along with the page. They are most likely due to the Web server configuration for static files, or the way the server-side scripts are written for dynamic content. Making sure that HTTP headers are correctly defined is essential in a mobile context with a usually low bandwidth and high latency.
-
Links
Following a link may require cost, time, and attention from users in a mobile context. When a user follows a link that leads to nowhere, or cannot be rendered by the browser, the user experience is poor.