v153 · navigation · feature removal
Auditing your own targets
A removal is only interesting if you can find out whether it touches you. Paste your markup in and this page classifies every target in it against the four keywords and the frame names the same document declares — the check you would otherwise write a grep for and get wrong on the case-insensitive ones.
Audit some markup
| element | target | verdict | what happens, and what to write instead |
|---|---|---|---|
| Press Audit. | |||
| name | declared by |
|---|---|
| Press Audit. | |
Does an underscore name resolve at all?
The advice below rests on one thing: that after the keyword is removed, _current becomes an ordinary name and resolves like any other. That is not something a page on Chrome 150 can test with _current itself — the keyword is still there. It can be tested with a different underscore-prefixed name that no engine special-cases, and the answer transfers.
the rewrite
There is one honest fix and it is a character shorter than the thing it replaces.
<!-- before: works in Chrome, means something else everywhere -->
<a href="/next" target="_current">Next</a>
<!-- after: means "this frame", in every engine, and always has -->
<a href="/next" target="_self">Next</a>
<!-- or, if you meant nothing in particular, omit it entirely -->
<a href="/next">Next</a>
The same applies to window.open(url, "_current") and to <form target="_current">: the value is a browsing-context name in all three positions, and it is the same lookup in all three.