Start date: 1 October 2009
End date: 31 October 2009
Duration: 31 days
Number of sub-tests failed | URIs (%) | Domains (%) |
---|---|---|
mobileOK pages | 8% | 4% |
1 sub-test failed | 6% | 4% |
2 sub-tests failed | 5% | 5% |
3 sub-tests failed | 5% | 7% |
4 sub-tests failed | 6% | 7% |
5 sub-tests failed | 7% | 9% |
6 sub-tests failed | 7% | 9% |
7 sub-tests failed | 6% | 8% |
8 sub-tests failed | 5% | 8% |
9 sub-tests failed | 6% | 8% |
10 sub-tests failed | 6% | 8% |
11 sub-tests failed | 6% | 7% |
12 sub-tests failed | 6% | 8% |
13 sub-tests failed | 5% | 7% |
14 sub-tests failed | 4% | 5% |
15 sub-tests failed | 3% | 4% |
16 sub-tests failed | 2% | 3% |
17 sub-tests failed | 2% | 2% |
18 sub-tests failed | 2% | 2% |
19 sub-tests failed | 1% | 1% |
20 sub-tests failed | 1% | 1% |
21 sub-tests failed | <1% | 1% |
22 sub-tests failed | <1% | <1% |
23 sub-tests failed | <1% | <1% |
24 sub-tests failed | <1% | <1% |
25 sub-tests failed | <1% | <1% |
28 sub-tests failed | <1% | <1% |
Best Practice | Fail message | URIs (%) | Domains (%) |
---|---|---|---|
VALID_MARKUP | The document does not validate against XHTML Basic 1.1 or MP 1.2. | 78% | 87% |
MEASURES | A length property uses an absolute unit | 64% | 71% |
PAGE_SIZE_LIMIT | The total size of the page exceeds 20 kilobytes | 58% | 67% |
IMAGES_SPECIFY_SIZE | Either the height or width attribute is missing | 49% | 59% |
PAGE_SIZE_LIMIT | The size of the document's markup exceeds 10 kilobytes | 37% | 45% |
POP_UPS | A pop-up was detected | 35% | 38% |
CACHING | The document is served without caching information ("Expires" or "Cache-Control" header) | 35% | 44% |
CHARACTER_ENCODING_USE | The HTTP Content-Type header does not specify a character encoding and no UTF-8 encoding or a non-UTF-8 is specified in the XML declaration | 33% | 42% |
TABLES_LAYOUT | Table contains less than two tr elements | 31% | 32% |
NON-TEXT_ALTERNATIVES | The alt attribute is missing | 28% | 33% |
VALID_MARKUP | The document does not contain a DOCTYPE declaration | 28% | 27% |
TABLES_LAYOUT | Table contains less than two td elements | 28% | 28% |
STYLE_SHEETS_USE | The document contains one of basefont, bdo, center, del, dir, font, ins, menu, s, strike or u elements | 27% | 27% |
TABLES_NESTED | There are nested tables | 26% | 24% |
CONTENT_FORMAT_SUPPORT | The embedded image or object is not of type image/gif or image/jpeg | 26% | 34% |
CHARACTER_ENCODING_USE | The HTTP Content-Type header does not specify a character encoding but it specifies an Internet media type starting with "text/" and there is no meta element with http-equiv attribute that specifies UTF-8 character encoding | 19% | 26% |
CONTENT_FORMAT_SUPPORT | The CSS style sheet is not syntactically valid CSS | 18% | 24% |
PAGE_TITLE | There is no page title | 18% | 15% |
CHARACTER_ENCODING_USE | The character encoding is specified in more than one way, and not all values are the same | 17% | 22% |
EXTERNAL_RESOURCES | There are more than 20 embedded external resources | 17% | 23% |
CHARACTER_ENCODING_SUPPORT | The document is not valid UTF-8 | 14% | 18% |
HTTP_RESPONSE | HTTP status code 4xx other than 404 (Not Found) or 401 (Unauthorized) received | 14% | 17% |
IMAGES_RESIZING | the height or width specified is less than the correseponding dimension of the image | 13% | 16% |
HTTP_RESPONSE | HTTP status code 404 (Not Found) or 5xx (Server Error) received for an embedded resource | 9% | 12% |
HTTP_RESPONSE | Invalid HTTP response received (network-level error, DNS resolution error, or non-HTTP response) | 8% | 9% |
MINIMIZE | More than 25% of the page characters are extraneous (whitespaces or comments) | 7% | 10% |
OBJECTS_OR_SCRIPT | A "javascript:" link is used | 7% | 10% |
CHARACTER_ENCODING_SUPPORT | The HTTP Content-Type header specifies a character encoding other than UTF-8 | 7% | 8% |
IMAGE_MAPS | An input element with type attribute set to "image" is present | 7% | 10% |
TABLES_LAYOUT | A table cell contains only an image whose actual dimensions are 2x2 or less | 6% | 7% |
NO_FRAMES | The document contains a frame, frameset or iframe element | 6% | 8% |
HTTP_RESPONSE | HTTP status code 3xx (Redirection) received to a URI whose scheme is neither HTTP nor HTTPS | 5% | 4% |
IMAGE_MAPS | A usemap attribute is present | 4% | 5% |
VALID_MARKUP | The root html element does not declare its namespace | 4% | 4% |
VALID_MARKUP | The image does not match its supposed format | 4% | 5% |
IMAGES_RESIZING | The height or width is not specified in pixels | 2% | 3% |
REDIRECTION | The document uses a markup-based redirection | 2% | 3% |
GRAPHICS_FOR_SPACING | There is a bigger than 2 pixels transparent image | 2% | 2% |
CONTENT_FORMAT_SUPPORT | The document is not an HTML document | 2% | 2% |
CONTENT_FORMAT_SUPPORT | The document is not served as "application/xhtml+xml", "application/vnd.wap.xhtml+xml", or "text/html" | 1% | 2% |
NON-TEXT_ALTERNATIVES | The alt attribute consists only of white space | 1% | 1% |
CONTENT_FORMAT_SUPPORT | The CSS style sheet is not served as "text/css" | <1% | 1% |
HTTP_RESPONSE | HTTP status code 3xx (Redirection) received but no HTTP Location header | <1% | <1% |
HTTPS | The certificate does not match the requested URI. | <1% | <1% |
DEFAULT_INPUT_MODE | The inputmode attribute of this input element is invalid. | <1% | <1% |
IMAGE_MAPS | An ismap attribute is present | <1% | <1% |
REDIRECTION | The document uses a Refresh HTTP header to redirect to a different page | <1% | <1% |
HTTPS | The certificate is invalid. | <1% | <1% |
OBJECTS_OR_SCRIPT | The document uses an applet | <1% | <1% |
OBJECTS_OR_SCRIPT | The content of the object element consists only of white space | <1% | <1% |
HTTP_RESPONSE | HTTP status code 401 (Unauthorized) received | <1% | <1% |
Best Practice | Warning message | URIs (%) | Domains (%) |
---|---|---|---|
CONTENT_FORMAT_SUPPORT | The document is not served as "application/xhtml+xml" | 88% | 93% |
LINK_TARGET_FORMAT | The linked resource character encoding may not be appropriate for mobile devices | 69% | 73% |
STYLE_SHEETS_USE | The CSS Style contains invalid at-rules, properties, or values | 60% | 70% |
STYLE_SHEETS_USE | The style attribute is used | 53% | 58% |
STYLE_SHEETS_SUPPORT | The CSS Style sheet contains rules referencing the position, display or float properties | 50% | 60% |
CHARACTER_ENCODING_USE | The resource does not specify UTF-8 as character encoding | 49% | 57% |
OBJECTS_OR_SCRIPT | The document uses scripting | 45% | 58% |
META_HTTP_EQUIV | An HTTP response header that matches the meta http-equiv element exists but their values differ | 44% | 50% |
TABLES_ALTERNATIVES | A Table element exists | 41% | 43% |
CONTENT_FORMAT_SUPPORT | The document uses an XHTML doctype that is not a well-known mobile-friendly doctype | 36% | 48% |
HTTP_RESPONSE | HTTP status code 3xx (Redirection) received and the HTTP Location header targets a relative URI | 31% | 31% |
META_HTTP_EQUIV | A matching HTTP response header does not exist for the meta http-equiv element | 25% | 27% |
STYLE_SHEETS_USE | The documents uses one of b, big, i, small, sub, sup or tt elements | 25% | 30% |
DEFAULT_INPUT_MODE | The inputmode attribute of this textarea element is invalid. | 25% | 32% |
OBJECTS_OR_SCRIPT | An element uses an event attribute | 25% | 34% |
CACHING | "Cache-Control" HTTP header is present and contains value "no-cache", or contains value "max-age=0" | 23% | 26% |
MINIMIZE | More than 10% of the page characters are extraneous (whitespaces or comments) | 22% | 28% |
GRAPHICS_FOR_SPACING | There is a small fully transparent image | 17% | 21% |
CACHING | The "Expires" header contains a date in the past | 17% | 21% |
LINK_TARGET_FORMAT | The linked resource format may not be appropriate for mobile devices | 16% | 20% |
CACHING | The "Pragma" header contains the value "no-cache" | 16% | 20% |
EXTERNAL_RESOURCES | There are more than 10 embedded external resources | 16% | 21% |
LINK_TARGET_FORMAT | The fragment reference has no matching target | 15% | 18% |
HTTP_RESPONSE | HTTP status code 404 (Not Found) or 5xx (Server Error) received for a linked resource | 13% | 16% |
CACHING | A cache related header or a meta http-equiv value contains an invalid value | 13% | 16% |
CACHING | There is an error in the "ETag" header | 12% | 8% |
IMAGES_RESIZING | the height or width specified is greater than the corresponding dimension of the image | 12% | 14% |
VALID_MARKUP | The document does not validate against its declared doctype. | 12% | 13% |
CACHING | The document's caching information is not provided in the HTTP headers | 9% | 7% |
CACHING | There is an error in the "Last-Modified" header | 7% | 5% |
CONTENT_FORMAT_SUPPORT | The document uses a non-XML doctype | 5% | 6% |
GRAPHICS_FOR_SPACING | There are more than one fully transparent images | 5% | 6% |
PROVIDE_DEFAULTS | There is no default selected option element | 5% | 7% |
HTTP_RESPONSE | HTTP status code 404 (Not Found) or 5xx (Server Error) received for the resource under test | 2% | 2% |
DEFAULT_INPUT_MODE | There is no inputmode attribute on this textarea element. | 2% | 2% |
OBJECTS_OR_SCRIPT | The Internet media type indicated by the Content-Type HTTP Header of the retrieved resource is not "image/jpeg" or "image/gif" | 1% | 2% |
PROVIDE_DEFAULTS | There is more than one input element in this group set to "checked" | 1% | 1% |
HTTP_RESPONSE | HTTP status code 401 (Unauthorized) received for a linked resource | 1% | 1% |
STYLE_SHEETS_USE | All styles are restricted to CSS media types other than "handheld" or "all" | 1% | 1% |
HTTPS | The certificate has expired. | <1% | <1% |
OBJECTS_OR_SCRIPT | The object element is empty | <1% | <1% |
PROVIDE_DEFAULTS | There is more than one option selected by default | <1% | <1% |
AUTO_REFRESH | The document uses an auto-refresh | <1% | <1% |
OBJECTS_OR_SCRIPT | There is no type attribute | <1% | <1% |
OBJECTS_OR_SCRIPT | The Internet media type of the retrieved resource, as indicated by its Content-Type HTTP header does not match that stated in the type attribute | <1% | <1% |
Tests performed by the mobileOK checker are defined in the mobileOK Basic Tests 1.0 document. The term sub-test used below refers to an aspect of a given test that may FAIL.
The statistics only take into account the URIs for which the checker could run the tests. The checker typically cannot run the tests when:
A given URI may yield different results in time. When a URI is checked more than once during the period, only the most recent result appears in the statistics. This ensures that statistics are not biased by pages that include a mobileOK logo along with a link to the checker for instance.
Viewing statistics per URI isn't the most representative view one could think of. A better view would be "per website". Unfortunately, there's no automatic way to link pages of a website together. The statistics include a view per domain name, but domain names are often used by many different websites, and thus this view is probably even more misleading than the view per URI. The better view is somewhere between the view per URI and the view per domain name, closer to the view per URI...
No! One must keep in mind that the URIs that were checked come from users that chose to use the mobileOK checker. This does introduces a bias in the sample oriented towards mobile-friendliness. Figures in terms of the number of Mobile Web Best Practices not followed would likely be far worse if the stats were computed from a representative set of URIs. However, these stats do provide a useful view of the most common problems content authors encounter when moving to mobile.
Also keep in mind that the tests only cover a restricted set of the Mobile Web Best Practices. Besides, they sometimes cover only a portion of one given Best Practice. In particular, a few Mobile Web Best Practices that cannot be automatically checked, such as CENTRAL_MEANING, SCROLLING are not covered by the tests, and as such cannot appear in these statistics.
Alternatively, some generic tests are performed that do not match any of the Mobile Web Best Practices and are identified by their internal name within the mobileOK Basic Tests 1.0 document, e.g. HTTP_RESPONSE, META_HTTP_EQUIV.