Meta-refresh no delay

  • Rule Typeatomic
  • Rule ID: bc659a
  • Last modified: Aug 21, 2019
  • Accessibility Requirements Mapping
    • 2.2.1 Timing Adjustable (Level: A)
      • Learn More about 2.2.1 (Timing Adjustable)
      • Required for conformance to WCAG 2.0 and above on level A and above
      • Outcome mapping:
        • Any failed outcomes: not satisfied
        • All passed outcomes: further testing is needed
        • An inapplicable outcome: further testing is needed
    • 2.2.4 Interruptions (Level: AAA)
      • Learn More about 2.2.4 (Interruptions)
      • Required for conformance to WCAG 2.0 and above on level AAA and above
      • Outcome mapping:
        • Any failed outcomes: not satisfied
        • All passed outcomes: further testing is needed
        • An inapplicable outcome: further testing is needed
    • 3.2.5 Change on Request (Level: AAA)
      • Learn More about 3.2.5 (Change on Request)
      • Required for conformance to WCAG 2.0 and above on level AAA and above
      • Outcome mapping:
        • Any failed outcomes: not satisfied
        • All passed outcomes: further testing is needed
        • An inapplicable outcome: further testing is needed
  • Input Aspects

Description

This rule checks that the meta element is not used for delayed redirecting or refreshing.

Applicability

The rule applies to the first valid <meta http-equiv="refresh"> element with a content attribute in a document.

Expectation

The time of the content attribute is 0 or greater than 72000 (20 hours).

Note: See Refresh state (http-equiv="refresh") for a precise description on how to determine the time.

Assumptions

  • This test assumes no functionality was provided by the website for the user to adjust the timer.
  • This test assumes that the refresh was not essential, which is listed as a valid exception to SC 2.2.1.

Accessibility Support

There are no major accessibility support issues known for this rule.

Background

Test Cases

Passed

Passed Example 1

Redirects immediately.

<head>
	<meta http-equiv="refresh" content="0; URL='https://github.com'" />
</head>

Passed Example 2

First valid <meta http-equiv="refresh"> redirects immediately.

<head>
	<meta http-equiv="refresh" content="0; http://example.com" />
	<meta http-equiv="refresh" content="5; http://example.com" />
</head>

Passed Example 3

Redirects after more than 20 hours.

<head>
	<meta http-equiv="refresh" content="72001; http://example.com" />
</head>

Failed

Failed Example 1

Refreshes after 30 seconds.

<head>
	<meta http-equiv="refresh" content="30" />
</head>

Failed Example 2

Redirects after 30 seconds.

<head>
	<meta http-equiv="refresh" content="30; URL='https://github.com'" />
</head>

Failed Example 3

First <meta http-equiv="refresh"> element is not valid, second one redirects after 5 seconds.

<head>
	<meta http-equiv="refresh" content="0: http://example.com" />
	<meta http-equiv="refresh" content="5; http://example.com" />
</head>

Failed Example 4

Redirects after exactly 20 hours.

<head>
	<meta http-equiv="refresh" content="72000; http://example.com" />
</head>

Inapplicable

Inapplicable Example 1

No content attribute.

<head>
	<meta http-equiv="refresh" />
</head>

Inapplicable Example 2

No http-equiv="refresh" attribute.

<head>
	<meta content="30" />
</head>

Inapplicable Example 3

content attribute is invalid and therefore inapplicable.

<head>
	<meta http-equiv="refresh" content="0: http://example.com" />
</head>

Inapplicable Example 4

content attribute is invalid and therefore inapplicable.

<head>
	<meta http-equiv="refresh" content="-00.12 foo" />
</head>

Inapplicable Example 5

content attribute is invalid and therefore inapplicable.

<head>
	<meta http-equiv="refresh" content="; 30" />
</head>

Inapplicable Example 6

content attribute is invalid and therefore inapplicable.

<head>
	<meta http-equiv="refresh" content="" />
</head>

Inapplicable Example 7

content attribute is invalid and therefore inapplicable.

<head>
	<meta http-equiv="refresh" content="+5; http://example.com" />
</head>

Inapplicable Example 8

content attribute is invalid and therefore inapplicable.

<head>
	<meta http-equiv="refresh" content="foo; URL='https://github.com'" />
</head>

Glossary

Outcome

key: outcome

A conclusion that comes from evaluating an ACT Rule on a test subject or one of its constituent test target. An outcome can be one of the three following types:

  • Inapplicable: No part of the test subject matches the applicability
  • Passed: A test target meets all expectations
  • Failed: A test target does not meet all expectations

Note: A rule has one passed or failed outcome for every test target. When there are no test targets the rule has one inapplicable outcome. This means that each test subject will have one or more outcomes.

Note: Implementers using the EARL10-Schema can express the outcome with the outcome property. In addition to passed, failed and inapplicable, EARL 1.0 also defined an incomplete outcome. While this cannot be the outcome of an ACT Rule when applied in its entirety, it often happens that rules are only partially evaluated. For example, when applicability was automated, but the expectations have to be evaluated manually. Such "interim" results can be expressed with the incomplete outcome.


Changelog

Aug 21, 2019fix: update links to WCAG21 resources (#776)
Jul 26, 2019Editorial changes (#702)
May 9, 2019Chore: Adapt site to ACT Rules CR format (#547)
May 7, 2019Template update - Meta-refresh no delay (#522)
Apr 29, 2019chore: rename files and update associations (#489)
Apr 16, 2019chore: add unique id to all rules (#478)
Apr 15, 2019chore: WCAG ACT RULES CG Website Update (#437)
Jan 11, 2019chore: update name to wcag-act-rules-cg (#396)
Nov 12, 2018chore: remove selector `data-rule-target` (#347)
Oct 29, 2018Clarification on "more than 20 hours" requirement for SC2-2-1+SC3-2-5-meta-refresh (#307)
Oct 24, 2018Update and rename SC2-2-1+SC3-2-5-meta-refresh.md to SC2-2-1+SC2-2-4-… (#252)
Oct 9, 2018Fix: testcase generation (#296)
Aug 30, 2018Chore: Update test cases format and descriptions (#230)
Aug 20, 2018fix: move meta refresh rule to correct directory
Jul 19, 2018Rule: SC2-2-1+SC3-2-5-meta-refresh (#133)
Jun 14, 2018FINAL: Glossary generation in rules & reverse linking in algorithms (#147)
Feb 8, 2018Add "for each selected item" line to every rule (#62)
May 4, 2017Format update (#32)
Jul 28, 2016add default author fields
Jul 27, 2016Merge branch 'jekyll' into algorithms
Jul 27, 2016simplify the rule metadata some more
Jul 27, 2016Simplify how to list criteria
Jul 24, 2016little more formatting
Jul 24, 2016formatted rule meta-refresh
Jul 24, 2016updated rule ref
Jul 24, 2016update spacing in rules
Jul 24, 2016Fixed test mode rename issue
May 24, 2016Removed old wiki markup
May 24, 2016Dropped test-belongs-to line
May 24, 2016Create test mode links in rules
Apr 2, 2016renamed specs dir to rules
Apr 2, 2016Insert name into spec
Apr 2, 2016update external links
Apr 2, 2016cleanup
Feb 28, 2016more format updates
Feb 28, 2016First insert of specs

Useful Links


Implementations

Tool NameCreated ByReport
AlfaSiteimproveView Report
QualWebLASIGE, Faculdade de Ciências da Universidade de LisboaView Report

Acknowledgements