The SitePoint Forums have moved.

You can now find them here.
This forum is now closed to new posts, but you can browse existing content.
You can find out more information about the move and how to open a new account (if necessary) here.
If you get stuck you can get support by emailing forums@sitepoint.com

If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

And the Inaugural 'Electric Floor' Award goes to...

I've written a little piece for the next Design View (due to send in the next 24 hours) on JavaScript and Accessibility, but thought it might be relevant to pop it in here too.

************

And the Inaugural 'Electric Floor' Award goes to...

Gee, aren't floors great? All flat and clean and smooth, they do a faultless job of preventing us from plunging headlong into the voids beneath them -- a particularly useful thing in multi-story buildings.

It's interesting to reflect that, although electricity has been available for over 100 years, no one has ever sought to improve the humble floor by making it totally dependent on electric power.

Floors that disappeared, collapsed or became otherwise unusable whenever the power was cut -- even if that was only occasionally -- would be inconvenient, to say the least! While electricity has often been used to improve the usability of your floor by heating, cooling or lighting it better, no floor that I'm aware of would cease to act as a walkable, navigable surface without the presence of electricity.

With this in mind, I find it remarkable that large, successful, multinational corporations can build the foundations of their online headquarters on a transient technology -- in this case, JavaScript -- that may or may not be available to their users. Disabling JavaScript completely disables the fundamental operations of these sites just as surely as would removing the floor from the company's real-world lobby.

When you arrive at Visa's global portal without JavaScript turned on, you'll be greeted by what's probably the most extensive use of white space you'll ever see ...

... and nothing else.

While simplicity and elegance are to be encouraged, this is probably taking things a little too far.

If you were to somehow make it past this first redirection page, you'd be deposited at the landing page shown below.

Things immediately appear more encouraging. The page certainly seems to be rendering fine without JavaScript ... that is, unless you want to access any of Visa's Consumer & Business Sites. If you do, you'll be asked to select your country from a dropdown, and this dropdown will be empty if you have JavaScript disabled.

Okay, I'm making light of the situation, but this is a serious issue. We're not talking about complex operations that necessarily require scripting. This isn't:

* a multi-site mashup
* advanced functionality, such as a 3D animation, multimedia, or an interactive map
* a partial page refresh with sooper groovy Ajax

We're talking about boring, fundamental operations like page rendering and navigation -- operations that have worked flawlessly since Tim Berners-Lee first imagined them two decades ago. And at Visa, they're failing completely.

There are simply no good reasons not to make basic pages like these work without JavaScript, and the Electric Floor Awards are designed to highlight some of the high-profile offenders. If Google can make GMail work without JavaScript, there should be no excuse for infinitely simple sites to fail.

Congratulations to Visa.com on taking out the first award!

I've got my eye on another half-dozen sites that qualify for the award, but if you're aware of other worthy nominees, we'd be interested to hear about them.

And if you're thinking 'Come on, how many nutcases are there REALLY out there cruising around without JavaScript?', perhaps an equally relevant question is 'How many Sony Ericsson's are there out there?'.

Thanks, Rocky. I played around with a few alternatives and wasn't sure if it would go over the head of too many people -- my sense of humor is a bit left-field at times. But I had 2 or 3 people read it first and they seemed to get the analogy.

"Back in my day, we had 14.4k dialup at work, since it was the fastest you could get without a budget the size of the Pentagon, we didn't have this newfangled JavaScript, Flash and Shockwave, and Web sites were made with images that didn't include any ALT text, and if they did, all they said was 'image' - and we liked it that way!"

"You kids, with your fancy broadband, streaming media, social networking, instant access to communication and information, online gaming and whatnot, you're all too lazy for your own good. I fear for the future of humanity given the sorry state of your generation's lot."

(I'm just joking folks, I was only 18 at the time the browser wars were starting to die down.)

With the Javascript functionality, that works well, however, they should have something that is used if Javascript isn't available. They should have the waiting in between there for those without Javascript. Plus, there is still a bit of waiting with the Javascript, you're just skipping some page loads.

how would you make the country/state/city selection without javascript?
- Select Country
- Submit
- Select State
- Submit
- Select City
- Submit
6 Steps with waiting in between.

Now with Javascript:
- Select Country
- Select State
- Select City
With sometimes a
- Submit

It seams allot easier with JS
But is there a simpler way to do this without? (something worth the bother that is)

We're not arguing for purging JavaScript functionality from the web. It's about designing things so they fail in the way you can control. If the power gets cut to your elevator, you can't expect it to move anymore, but it better not plummet to the basement.

You build your form to submit and reload the page exactly in the way you described above, but when JavaScript is present the page might remove/hide those submit buttons and simply watch and respond to selections made to the dropdowns. If you went back and changed selector 1 it would reload selector 2 automatically.

It terms of 'bother', it's no more bother than good metatags, sensible structures or efficient markup. The first time you write it, it will take marginally longer than what you did before, but after that it will make no difference -- it's little if any more code, just a different structure..

Same goes for most internet banking sites I've seen. Java applets are an integral part of their login procedure. However, without Javascript enabled, the site becomes an electric floor. Total nothingness. Very unprofessional considering the huge budgets that would've been used to create these sites.