Skip to main content
WCAGrules
Quick navigation

Do not launch new windows while users type

F60 is a documented failure, so it describes a defect and not a technique. The pattern is a new window opening because somebody typed into a field. The published example is a postal code field that fills in and produces a window of local advertising, which shows what the pattern is usually for. There is an exemption written into it and it comes with a condition attached. Error reporting is allowed, so a window that opens to say what went wrong is not this failure, as long as it carries a button that closes it and returns focus to the field the user was in. That focus return is what makes the exemption work rather than a loophole. A better answer than either sits in the page itself. Put the hint next to the field, tie it to the input, and link onward for anybody who wants more.

How we find it in an audit

Reviewers find every text input, change the value in each, and watch for a window. Where one opens, we look at what is inside it. If it is an error message, we check for a close control that returns focus to the field, and if focus lands anywhere else the exemption does not apply. Automated tools can find window.open inside a key or input handler. Whether the window is an error report is reading.

How affected users experience it

Typing is not a request for anything. A screen reader user enters a reference number, the last character lands, and their software is now reading a window they did not open. They were mid-task, mid-field, and possibly mid-word. Getting back means finding the window they left and then finding the field they were in, and the field will often have lost what they typed. Someone using speech input has the same interruption with an extra cost, because dictation into the wrong window produces text nobody wanted.

Passes vs. fails

Passes: a label that stays put. Fails: placeholder-only fields.

Passes

<label for="ref">Reference number</label>
<input id="ref" aria-describedby="ref-hint">
<p id="ref-hint">Printed at the top of your letter. <a href="/help/reference-numbers">Where to find your reference number</a></p>

Fails

<input id="ref" onkeyup="window.open('/help/reference-numbers', 'help')">

How this gets tested

The W3C publishes test rules that define what a checker looks for here.

The other techniques filed under this rule

16 guides on this site are filed under 3.2.5 Change on Request. W3C documents this one as a failure of that rule, so it describes a way the rule gets broken rather than a way to pass it.

This guide is our interpretation of W3C technique F60: Failure of Success Criterion 3.2.5 due to launching a new window when a user enters text into an input field. W3C publishes its techniques as guidance rather than as the standard, and says so on every one of them. The success criterion is what conformance is measured against, and a technique is one documented way to meet it.

Go somewhere useful

Find tools, resources and your workspace.

29 destinations