Why target=_blank Uses Underscore in HTML

Billions of links fire up target=_blank every day. But that sneaky underscore? It's a relic from the frameset dark ages, mocking us still.

The Frameset Ghost: Why target=_blank Sneaks in an Underscore — theAIcatchup

Key Takeaways

  • target=_blank's underscore is a frameset-era hack to signal 'special' targets.
  • Pair it with rel=noopener to avoid security pitfalls.
  • Legacy web quirks like this demand modern vigilance.

Billions of links across the web—yeah, that’s Web Almanac’s count from last year—still hammer target=_blank on every outbound URL.

Why?

Look. Before HTML5 crashed the party, devs built SPAs with framesets. Ugly grids splitting your browser window into named boxes. Sidebar frame: name=”sidebar”. Main content: name=”content”. Click a link? Browser shuffles the href into the right frame via target=”content”.

Simple enough. But here’s the hack that stuck.

Framesets: Web’s Cringiest Chapter

Framesets. God, what a mess. Each frame got a unique name—no duplicates, or chaos. Want a link to bust out? No frame called “blank”? Browser spins up a new window, dubs it “blank”.

Devs hated frames—slow, SEO poison, usability nightmare. Yet they birthed this idiom.

Before HTML5, developers used frameset for SPA-like functionality, dividing the window into multiple frames, each with its own unique name.

Spot on. That quote nails it. Frames demanded names. Real, unique ones.

But “blank”? Nah. Too generic. Could clash. So underscore it: blank. Special sauce. Browser code sniffed the leading , screamed “magic! Open new tab, no frame BS.”

Clever? Sure. Lazy? Absolutely.

Why the Underscore in target=_blank?

Underscore screams “reserved.” Like file names dodging spaces. Here, it’s browser voodoo.

No _? Hunt for frame by that name. _ prefix? Specials only: _self (current), _parent (up), _top (topmost), _blank (new).

Clicking a link in sidebar, would load content in content frame:

Exactly. target=”content”—frame hunt. target=”_blank”—boom, fresh tab.

And if your frameset had a frame named “blank”? Tough luck, it loaded there. _blank fixed that. No collisions.

Underscore: dev’s middle finger to naming wars.

Does target=_blank Still Haunt Us?

Hell yes. Security headaches—blank tabs inherit referrer, cookies. Clickjacking bait. Yet we slap it everywhere.

My hot take? Unique insight time. This is web’s blink tag 2.0. Remember ? Deprecated, laughed off. target=_blank lingers because laziness > standards. Prediction: By 2030, browsers force rel=”noopener noreferrer” mandates, or W3C axes the specials. Shadow DOM and iframes already mock-frame us cleaner.

But corporate PR spins it eternal. “User choice!” Yeah, right. It’s inertia.

Framesets died in HTML5—strict DOCTYPE killer. Good riddance. SPAs now? React routers, no frames needed.

Still, that _blank echoes. Every popup ad, every affiliate link.

Pathetic.

The _blank Security Trap

Open _blank sans noopener? Parent window vulnerable. Script from child grabs control. Basic exploit.

Add rel=”noopener”. Fixes it. But 70% of sites forget—State of JS survey vibes.

And _blank slows tabs. Resource hog. Multitaskers hate it.

Why cling? Muscle memory. Tutorials from 2005.

Why Does This Matter for Developers?

You’re building a SaaS dashboard. External doc link? _blank or bust—users expect new tab.

But think. Progressive enhancement. window.open() as fallback. Or just let users middle-click.

History matters. Underscore reminds: web’s a junk drawer of hacks. Clean it.

Frameset parallel? Like COBOL in banks. Ancient, embedded, undeletable.

Dry laugh: We’re all frameset devs now.

Modern Alternatives That Don’t Suck

Use for files. Fetch API for blobs.

SPAs? Router.push, no reloads.

Iframes? sandbox=”allow-scripts”—safer than _blank wild west.

But _blank? Zombie API. Undead.


🧬 Related Insights

Frequently Asked Questions

What does target=_blank actually do?

Opens link in new tab/window. That leading _ makes it special—no frame search.

Why underscore in target=_blank not just blank?

Prevents clash with real frame names like “blank”. _ signals browser magic.

Is target=_blank safe to use in 2024?

Nope, without rel=”noopener noreferrer”. Sec hole otherwise.

Priya Sundaram
Written by

Hardware and infrastructure reporter. Tracks GPU wars, chip design, and the compute economy.

Frequently asked questions

What does target=_blank actually do?
Opens link in new tab/window. That leading _ makes it special—no frame search.
Why underscore in target=_blank not just blank?
Prevents clash with real frame names like "blank". _ signals browser magic.
Is target=_blank safe to use in 2024?
Nope, without rel="noopener noreferrer". Sec hole otherwise.

Worth sharing?

Get the best AI stories of the week in your inbox — no noise, no spam.

Originally reported by dev.to

Stay in the loop

The week's most important stories from theAIcatchup, delivered once a week.