tech news and opinions

Even Websites want to Hide

I’m sure you’re quite familiar with the typical trick web-developers use to hide content: They give you an annoying DOM element over the top of it with text something along the lines of “Subscribe” or “Join The Community”, etc.

Today I encountered a new trick… the site just up and vanished on me. What’s going on?

With the advent and subsequent cross-browser support of CSS3, web developers gained some nifty non-Javascript tools for sprucing up their static pages. This includes a number of animation techniques, such that now a plethora of attributes on a site can be changed.

Let’s put that in layman’s terms: The stuff you look at can now jiggle, appear with a gradient, and spin when you hover over it with the mouse.

As a web developer, I like the idea. It does some fun things, and saves us from the more bandwidth expensive alternatives, such as downloading multiple transition key frames or GIF images or using Javascript to perform rotations.

The downside is that now developers can make things irritating if they don’t want you to access something. (Imagine trying to click a button and having it always snap away from your mouse on hover simply because the site owners want you to enable Javascript before the site will disable this feature.) That was the case for me today.

Ever heard of beepi? It’s apparently a up-and-coming used-car buying/selling site (based in California… Why is all this rising stuff coming out of California? It’s not like car buying is a new idea… Maybe they just have more ad money by default because, well, it’s California). Anyways… beepi pulled a new one on me by making the entire site (specifically, their “buy” page) vanish in a matter of seconds after being loaded. You could clearly see a site was there so you could tell the page had loaded. Obviously, though, they wanted you to enable Javascript to get the page to load. I refused.

It’s easy enough to disable if you’re willing to look around in the Firefox developer tools. Just right click on a page and select “Inspect Element” from the drop down menu that appears. You’ll be presented with an interface containing the layout of the site, and in it, you can change everything about the site – HTML, CSS, link sources, … everything. These are the built-in developer tools of Firefox. Chrome also has tools like these.

The trick beepi used was to animate the opacity of elements to 0. Of course, setting the opacity of each invisible DOM element to 100 didn’t finish the job. I also had to change visibility attributes (disabling them), and beepi made finding the offending CSS easy: they set their DOM elements’ class’ to “hidden” something or another. That was convenient. After revealing the page, I wasn’t all that impressed with their selection, and that was a let down. Maybe I should have let it stay hidden, but at least I got a blog post out of it.

What do you do if you’re an average Joe? If you don’t want pesky adsense and snooping JS, get Noscript. However, this won’t protect you from targeted advertising if the sites whose Javascript you do enable try to track you.

That said, it’s a struggle of conscious to determine whose Javascript should be enabled, and whose is frivolous, invasive garbage. Some sites I would like to visit have become so bogged down by Javascript, it isn’t worth it. Getting at the content requires some fiddling around with the code. I, too, have been thwarted, however – primarily by sites whose content is not even part of the page but loads with Javascript.

I suspect Google’s algorithms for content collection and referencing have changed drastically now that more Javascript is so commonly used. Originally, Google’s site-scraper algorithms (“robots”) were meant to act like… uh… stupid(?) browsers: no CSS, no JS, and no cross-site content loading. Things change, so now even invisible or blocked sites or sites with specially-designed Javascript-hidden content show up in the organic section of links in a Google search. I can’t say the same for Yahoo, but Yahoo is disappearing. Long live Yahoo. Bing has been dead for a long time.

All that rambling out of the way, what is going to happen next? Perhaps someone will develop an add-on that disables opacity transitions and settings. Perhaps more sites will switch to Javascript-based content-delivery.

The latter case would be somewhat ironic in light of the recent trend towards content delivery networks (CDNs), which specialize in delivering static content in order to relieve server burdens and thwart distributed denial of service (DDOS) attacks. While the Javascript code is certainly static, the downloading of data directly from the source servers is not, and it isn’t something CDNs can handle without website developers specifically modifying their Javascript to direct user browsers to download content directly from the CDNs.

If web developers want to hide their content, then, the burden of supporting it will lie squarely on their network infrastructure. That’s not something they want to hear, I assure you.

Sticking dynamic data on CDNs also removes content protection otherwise hidden by pay-walls because the content is openly available. It will take coordination between the CDNs and the companies who put their data on CDNs in order to keep such data protected. While I’ve never looked into it myself, and I’m sure businesses have made some advances in this direction, I haven’t encountered as much implementation as I would otherwise expect. Is that a good thing or a bad thing? Or is it just a sign of laziness or lack of resources on the part of business?


One thought on “Even Websites want to Hide

  1. I’m sorry but I really cannot comment on this one since I don’t actually have my own post paid internet service. But I do thank you for sharing this information as always. This will be useful information for me in the future.

Enter the space and time of my little world... Welcome Earthling.

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s