When You Just Don’t Trust a Tab

Avatar of Chris Coyier
Chris Coyier on

Do we need a word for when a browser tab has sat too long and you just don’t trust thing are going to work as you expect them do when you come back?
I tweeted that the other day and apparently other people had them feels.

It’s that feeling where you just know your session isn’t valid anymore and if you actually try to do anything that requires you to be logged in, it ain’t gonna work. It’s particularly uncomfortable if you were actually trying to do something and now you’re unsure if it’s done or saved.

As for that name… here’s some good ones from the thread:

  • Schrödinger’s tab
  • Crusty tab
  • Tab smell
  • Stale tab
  • Fossilized tab
  • Tab napping
  • Dead tab
  • Orphaned tab
  • Tab rot

So how do you fix it?

It’s a UX issue, really. Depends on the situation. Here’s some options.

Shut it all down.

Banks do this a lot. When your session expires, which they time-limit pretty aggressively, you don’t just sit on the page, they log you out and send you back to a log in screen with a message.

They might warn you:

Then you’re gone:

That might seem a bit much for a site with less sensitive security. But it does quite nicely solve the (let’s pick one) “Dead Tab” issue. You aren’t left wondering anything. It took action, logged you out, and dropped you on a page where there isn’t any half-baked state.

Stay where you are, but warn about actions.

Many sites want to keep you logged in. Ideally, as long as it’s secure, you’d be logged in forever until you explicitly log out. Logging in is an awkward dance that nobody particularly enjoys and keeps you away from doing what you want to do.

CodePen is in this category, I’d say. We’d rather not log you out agressively, but certainly you can get logged out either with long periods of inactivity, or you can log yourself out. Say you logged out on a different tab… that’ll log you out everywhere, but at the moment we don’t anything for those other tabs left often that look like you are logged in.

That’s the “dead tab” issue. But we do warn you if an action happens that you can’t actually do.

WordPress has a kind of awkward flow related to this. Tabs can easily become dead, and if they do, you get no warning at all. When you perform an action that you can’t do, you’ll get this:

That’s a kind of middleman page that actually does refresh you session, so if you do “try again”, it usually works. It’s scary every time though. Even if it doesn’t work, the biggest risk in WordPress is losing writing, but even then, autosave usually saves the day.

Here’s an example on CodePen where I created a Pen when I was logged in, but logged out elsewhere, then tried to save.

I’d give us a C- here. At least you know what’s going on and you don’t lose any work, but, from here on out it’s awkward. You’ll have to log in on another tab, and probably copy and paste code elsewhere to save it, as the “dead tab” can’t get un-dead unless you refresh it.

If we were gunning for an A, we’d allow you to log in on that page without refreshing somehow, and make sure any unsaved changed get saved after the successful login. And with an unsuccessful login, still make sure you get a copy of unsaved work somehow. We might call that…

Stay where you are, warn proactively.

Perhaps messaging like: “You’ve been logged out. You can log back in here.”

To know this, the front end of your site needs to know about the log in status either periodically or in real time. For example, a server-ping every X seconds to check that status and if you’ve become logged out, show the message (without requiring any other action). Or perhaps a more modern websocket connection that could push the logging out messaging as it happens.

If you can wire that up to all happen on any page of the site, not require changing pages to fix it, and never lose any unsaved work, that’s pretty ideal.

The truly dead tab

The worst case scenario is when the tab has died, and there is no path to recovery. It doesn’t tell you it’s dead, leaving the page could result in unsaved work or actions, and there is no warning or recovery steps.

Have you seen great UX for this?

This is a major issue in that it affects every single site you can log into. It’s both suprising that there isn’t more talk and best practices surrounding this, and that there aren’t some stand-out sites that handle this particularly awesome to shout out.

Do you know of some particularly good (or bad) examples?