[ACCESS_KEYS] Assign access keys to links in navigational menus and frequently accessed functionality.
[LINK_TARGET_ID] Clearly identify the target of each link.
[LINK_TARGET_FORMAT] Note the target file's format unless you know the device supports it.
[IMAGE_MAPS] Do not use image maps unless you know the target client supports them effectively.
[POP_UPS] Do not cause pop-ups or other windows to appear and do not change the current window without informing the user.
5.2.8.2 What to test
POP_UPS Machine Test: Look for the
target
attribute on links.AUTO_REFRESH Machine Test: Check whether
meta http-equiv="refresh" content="<the same URI>"
is used.AUTO_REFRESH Human Test: If auto-refresh is used, check that options are provided to stop any page using auto-refresh.
REDIRECTION Machine Test: Check whether
meta http-equiv="refresh" content="<a different URI>"
is used.
[AUTO_REFRESH] Do not create periodically auto-refreshing pages, unless you have informed the user and provided a means of stopping it.
5.2.8.2 What to test
POP_UPS Machine Test: Look for the
target
attribute on links.AUTO_REFRESH Machine Test: Check whether
meta http-equiv="refresh" content="<the same URI>"
is used.AUTO_REFRESH Human Test: If auto-refresh is used, check that options are provided to stop any page using auto-refresh.
REDIRECTION Machine Test: Check whether
meta http-equiv="refresh" content="<a different URI>"
is used.
[REDIRECTION] Do not use markup to redirect pages automatically. Instead, configure the server to perform redirects by means of HTTP 3xx codes.
5.2.8.2 What to test
POP_UPS Machine Test: Look for the
target
attribute on links.AUTO_REFRESH Machine Test: Check whether
meta http-equiv="refresh" content="<the same URI>"
is used.AUTO_REFRESH Human Test: If auto-refresh is used, check that options are provided to stop any page using auto-refresh.
REDIRECTION Machine Test: Check whether
meta http-equiv="refresh" content="<a different URI>"
is used.
[EXTERNAL_RESOURCES] Keep the number of externally linked resources to a minimum.
[PAGE_SIZE_USABLE] Divide pages into usable but limited size portions.
5.3.2.3 What to test
PAGE_SIZE_USABLE Machine Test: Measure the total size of the markup for a page; check that it does not exceed the allowable size for the device - 10 kilobytes for the Default Delivery Context.
Human Test: Check that the page is still usable (e.g. not cut in the middle of a sentence, just before the end of a section, and so on).
PAGE_SIZE_LIMIT Machine Test: Measure the total size of markup and images for a page; check that it does not go over the allowed size for the device - 20 kilobytes for the Default Delivery Context.
[PAGE_SIZE_LIMIT] Ensure that the overall size of page is appropriate to the memory limitations of the device.
5.3.2.3 What to test
PAGE_SIZE_USABLE Machine Test: Measure the total size of the markup for a page; check that it does not exceed the allowable size for the device - 10 kilobytes for the Default Delivery Context.
Human Test: Check that the page is still usable (e.g. not cut in the middle of a sentence, just before the end of a section, and so on).
PAGE_SIZE_LIMIT Machine Test: Measure the total size of markup and images for a page; check that it does not go over the allowed size for the device - 20 kilobytes for the Default Delivery Context.
[SCROLLING] Limit scrolling to one direction, unless secondary scrolling cannot be avoided.
5.3.3.3 What to test
SCROLLING Machine Test: Check for
width
attributes and width style properties wider than the screen size - for the Default Delivery Context, 120 pixels.Human Test: If it is wider than the screen size, check that the use case warrants it (e.g. maps).
SCROLLING_LIMIT Human Test: Browse URIs within a site with a mobile user agent and observe that on pages with elements that require secondary scrolling only those elements require it, and the rest of the page requires only primary scrolling.
[GRAPHICS_FOR_SPACING] Do not use graphics for spacing.
[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.
[USE_OF_COLOR] Ensure that information conveyed with color is also available without color.
[COLOR_CONTRAST] Ensure that foreground and background color combinations provide sufficient contrast.
[BACKGROUND_IMAGE_READABILITY] When using background images make sure that content remains readable on the device.
[PAGE_TITLE] Provide a short but descriptive page title.
[NO_FRAMES] Do not use frames.
[TABLES_SUPPORT] Do not use tables unless the client is known to support them.
5.4.4.3 What to test
TABLES_SUPPORT Machine Test: Send a request to the site with a user agent that does not support tables and check the
table
element is not present.Machine Test: Check that there are no nested tables.
TABLES_LAYOUT Machine Test: Check that no column or row in a table is empty or contains only a 1x1 transparent GIF.
Machine Test: If there is a
table
element, check to see whether there is rendered content outside the element. If there is not then it is likely that the table is being used for layout.
[TABLES_NESTED] Do not use nested tables.
5.4.4.3 What to test
TABLES_SUPPORT Machine Test: Send a request to the site with a user agent that does not support tables and check the
table
element is not present.Machine Test: Check that there are no nested tables.
TABLES_LAYOUT Machine Test: Check that no column or row in a table is empty or contains only a 1x1 transparent GIF.
Machine Test: If there is a
table
element, check to see whether there is rendered content outside the element. If there is not then it is likely that the table is being used for layout.
[TABLES_LAYOUT] Do not use tables for layout.
5.4.4.3 What to test
TABLES_SUPPORT Machine Test: Send a request to the site with a user agent that does not support tables and check the
table
element is not present.Machine Test: Check that there are no nested tables.
TABLES_LAYOUT Machine Test: Check that no column or row in a table is empty or contains only a 1x1 transparent GIF.
Machine Test: If there is a
table
element, check to see whether there is rendered content outside the element. If there is not then it is likely that the table is being used for layout.
[TABLES_ALTERNATIVES] Where possible, use an alternative to tabular presentation.
5.4.4.3 What to test
TABLES_SUPPORT Machine Test: Send a request to the site with a user agent that does not support tables and check the
table
element is not present.Machine Test: Check that there are no nested tables.
TABLES_LAYOUT Machine Test: Check that no column or row in a table is empty or contains only a 1x1 transparent GIF.
Machine Test: If there is a
table
element, check to see whether there is rendered content outside the element. If there is not then it is likely that the table is being used for layout.
[NON-TEXT_ALTERNATIVES] Provide a text equivalent for every non-text element.
5.4.5.3 What to test
NON-TEXT_ALTERNATIVES Machine Test: Test for presence of
alt
attribute on images and text content on objects.Human Test: Check the relevance of the meaning of the content of
alt
attributes.OBJECTS_OR_SCRIPT Machine Test: Test for the presence of
object
orscript
elements in content delivered to a device that does not support them.Human Test: If present, test that the user experience is acceptable.
[OBJECTS_OR_SCRIPT] Do not rely on embedded objects or script.
5.4.5.3 What to test
NON-TEXT_ALTERNATIVES Machine Test: Test for presence of
alt
attribute on images and text content on objects.Human Test: Check the relevance of the meaning of the content of
alt
attributes.OBJECTS_OR_SCRIPT Machine Test: Test for the presence of
object
orscript
elements in content delivered to a device that does not support them.Human Test: If present, test that the user experience is acceptable.
[IMAGES_SPECIFY_SIZE] Specify the size of images in markup, if they have an intrinsic size.
[IMAGES_RESIZING] Resize images at the server, if they have an intrinsic size.
[VALID_MARKUP] Create documents that validate to published formal grammars.
[MEASURES] Do not use pixel measures and do not use absolute units in markup language attribute values and style sheet property values.
[STYLE_SHEETS_USE] Use style sheets to control layout and presentation, unless the device is known not to support them.
5.4.9.3 What to test
STYLE_SHEETS_USE Machine Test: Send a request to the site with a user agent that supports CSS and check that style sheets are used and that the page does not use formatting tags (e.g.
font
).STYLE_SHEETS_SUPPORT Human Test: Disable style sheets and check that the page is still readable.
STYLE_SHEETS_SIZE Machine Test: Check that the elements in a style sheet are used in the pages that reference it.
[STYLE_SHEETS_SUPPORT] Organize documents so that they may be read without style sheets.
5.4.9.3 What to test
STYLE_SHEETS_USE Machine Test: Send a request to the site with a user agent that supports CSS and check that style sheets are used and that the page does not use formatting tags (e.g.
font
).STYLE_SHEETS_SUPPORT Human Test: Disable style sheets and check that the page is still readable.
STYLE_SHEETS_SIZE Machine Test: Check that the elements in a style sheet are used in the pages that reference it.
[STYLE_SHEETS_SIZE] Keep style sheets small.
5.4.9.3 What to test
STYLE_SHEETS_USE Machine Test: Send a request to the site with a user agent that supports CSS and check that style sheets are used and that the page does not use formatting tags (e.g.
font
).STYLE_SHEETS_SUPPORT Human Test: Disable style sheets and check that the page is still readable.
STYLE_SHEETS_SIZE Machine Test: Check that the elements in a style sheet are used in the pages that reference it.
[MINIMIZE] Use terse, efficient markup.
[CONTENT_FORMAT_SUPPORT] Send content in a format that is known to be supported by the device.
5.4.11.3 What to test
CONTENT_FORMAT_SUPPORT Machine Test: Check MIME types of content with various user agents.
CONTENT_FORMAT_PREFERRED Machine Test: Check MIME types of content with various user agents and check that the preferred format is sent or that the format is compatible with the Default Delivery Context.
[CONTENT_FORMAT_PREFERRED] Where possible, send content in a preferred format.
5.4.11.3 What to test
CONTENT_FORMAT_SUPPORT Machine Test: Check MIME types of content with various user agents.
CONTENT_FORMAT_PREFERRED Machine Test: Check MIME types of content with various user agents and check that the preferred format is sent or that the format is compatible with the Default Delivery Context.
[CHARACTER_ENCODING_SUPPORT] Ensure that content is encoded using a character encoding that is known to be supported by the target device.
5.4.12.3 What to test
Machine Test: Check that the encoding is declared in some way and is supported. The content type may be declared in one or more of the following ways: The Content-Type HTTP header, the XML declaration for XML-based content, the CSS @charset rules for CSS, the Content-Type Meta element for HTML content.
[CHARACTER_ENCODING_USE] Indicate in the response the character encoding being used.
5.4.12.3 What to test
Machine Test: Check that the encoding is declared in some way and is supported. The content type may be declared in one or more of the following ways: The Content-Type HTTP header, the XML declaration for XML-based content, the CSS @charset rules for CSS, the Content-Type Meta element for HTML content.
[COOKIES] Do not rely on cookies being available.
[CACHING] Provide caching information in HTTP responses.
[FONTS] Do not rely on support of font related styling.
[MINIMIZE_KEYSTROKES] Keep the number of keystrokes to a minimum.
5.5.1.3 What to test
AVOID_FREE_TEXT Machine Test: Check whether
input type="text"
andtextarea
are used.Human Test: If one of them is used, check whether it can be replaced by a pre-determined entry.
PROVIDE_DEFAULTS Machine Test: Check if there is a pre-selected value in controls (selected or checked attribute set).
Human Test: If not, check if there could be sensible pre-selection in the context (e.g. most common choice).
DEFAULT_INPUT_MODE Machine Test: Send a request with a user agent known to support the
inputmode
attribute, and if the response is in a language that supports this attribute, check that it is present oninput type="text"
andtextarea
elements.
[AVOID_FREE_TEXT] Avoid free text entry where possible.
5.5.1.3 What to test
AVOID_FREE_TEXT Machine Test: Check whether
input type="text"
andtextarea
are used.Human Test: If one of them is used, check whether it can be replaced by a pre-determined entry.
PROVIDE_DEFAULTS Machine Test: Check if there is a pre-selected value in controls (selected or checked attribute set).
Human Test: If not, check if there could be sensible pre-selection in the context (e.g. most common choice).
DEFAULT_INPUT_MODE Machine Test: Send a request with a user agent known to support the
inputmode
attribute, and if the response is in a language that supports this attribute, check that it is present oninput type="text"
andtextarea
elements.
[PROVIDE_DEFAULTS] Provide pre-selected default values where possible.
5.5.1.3 What to test
AVOID_FREE_TEXT Machine Test: Check whether
input type="text"
andtextarea
are used.Human Test: If one of them is used, check whether it can be replaced by a pre-determined entry.
PROVIDE_DEFAULTS Machine Test: Check if there is a pre-selected value in controls (selected or checked attribute set).
Human Test: If not, check if there could be sensible pre-selection in the context (e.g. most common choice).
DEFAULT_INPUT_MODE Machine Test: Send a request with a user agent known to support the
inputmode
attribute, and if the response is in a language that supports this attribute, check that it is present oninput type="text"
andtextarea
elements.
[DEFAULT_INPUT_MODE] Specify a default text entry mode, language and/or input format, if the target device is known to support it.
5.5.1.3 What to test
AVOID_FREE_TEXT Machine Test: Check whether
input type="text"
andtextarea
are used.Human Test: If one of them is used, check whether it can be replaced by a pre-determined entry.
PROVIDE_DEFAULTS Machine Test: Check if there is a pre-selected value in controls (selected or checked attribute set).
Human Test: If not, check if there could be sensible pre-selection in the context (e.g. most common choice).
DEFAULT_INPUT_MODE Machine Test: Send a request with a user agent known to support the
inputmode
attribute, and if the response is in a language that supports this attribute, check that it is present oninput type="text"
andtextarea
elements.
[TAB_ORDER] Create a logical order through links, form controls and objects.
5.5.2.3 What to test
Machine Test: Check that there are no
tabindex
attributes or layout effects that affect the order of presentation.If there are
tabindex
attributes check that all controls have a tab index and that they are used consistently.Human Test: If there are either
tabindex
attributes or layout effects that might affect the order of presentation, then check that the order is usable.
[CONTROL_LABELLING] Label all controls appropriately and explicitly associate labels with controls.
[CONTROL_POSITION] Position labels so they lay out properly in relation to the controls they refer to.
[SUITABLE] Ensure that content is suitable for use in a mobile context.
[CLARITY] Use clear and simple language.
[LIMITED] Limit content to what the user has requested.
[CENTRAL_MEANING] Ensure that material that is central to the meaning of the page precedes material that is not.
[ERROR_MESSAGES] Provide informative error messages and a means of navigating away from an error message back to useful information.
5.4.13.3 What to test
Enter an extraneous URI, known not to represent an actual resource on the site, and check that a HTTP 404 error response is accompanied by a page whose markup is appropriate for the requesting device, or the default context.
Human Test: Check that the page returned contains an explanation of the error and appropriate corrective actions, without assuming any technical knowledge on the part of the end user.
[THEMATIC_CONSISTENCY] Ensure that content provided by accessing a URI yields a thematically coherent experience when accessed from different devices.
[CAPABILITIES] Exploit device capabilities. Do not take a least common denominator approach.
[DEFICIENCIES] Take reasonable steps to work around deficient implementations.
[TESTING] Carry out testing on actual devices as well as emulators.
[URIS] Keep the URIs of site entry points short.
[NAVBAR] Provide only minimal navigation at the top of the page.
[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.
[NAVIGATION] Provide consistent navigation mechanisms.
[STRUCTURE] Use features of the markup language to indicate logical document structure.