Badly Designed Websites

closeThis post was published 11 years 1 month 25 days ago. A number of changes have been made to the site since then, so please contact me if anything is broken or seems wrong.

After certain recent experiences, I see that the way a website works is quite essential to the visitor experience. Take www.mcool.org as an example. The menus you see (assuming you’re using a JavaScript-enabled browser) are generated by JavaScript, after page load. The data is included in a series of JavaScript functions at the end of the page, the definitions of which are included in the commercial Milonic popup menu script. This could be easily solved by including inline code that is hidden with CSS and displayed using an in-page rule contained in a <noscript> element.

However, that’s not the only problem. Despite the solution, non-JavaScript browsers wouldn’t be able to follow the links anyway, since their URLs are things like javascript:goGenie(9);. The menu isn’t the only place this happens; as far as I can tell, the vast majority of the links call some JavaScript function that POSTs a hidden form to the clientschool.cgi script (all pages’ URLs are the same, another annoyance because they can’t be bookmarked). So even the very way the site is structured is inaccessible. What if a user wants to bookmark a page? Nope, can’t do it. That one’s easy; use a GET request instead of POST. What about non-JavaScript browsers? Can only see the front page due to the JavaScript links. Replace them with queried URLs containing “?schoolname=school188&page=4&genie=1”, setting all the variables to the proper names, and using genie=0 to denote a non-genie (whatever the genie is) page.

This business of using a CGI script to serve pages is done quite a bit, but usually with URL parameters that uniquely identify the page requested using GET so the page can be bookmarked and linked to using regular links without JavaScript. I can’t blame my school for this (for I am discussing their site); I must point the finger at rSchoolToday, the company that they have signed up with for the site hosting and development. The rSchoolToday website doesn’t even display service information when you go to the homepage; it shows a graphic illustrating the several “applications for education” they offer which links to a “full version” of that image. That’s it. No contact, no way to buy, nothing. Even their own site is horribly designed.

That’s why I use separate pages for everything. It may take more work for me to figure out the site’s directory structure and add includes appropriately, but it certainly makes it easier for visitors if they can enter page addresses using “photos.php”, “/albums/photos-electronics.php”, etc. and even bookmark them if they like. And the sites work without JavaScript.

Update (2008-09-05): Well, I checked back repeatedly over the year, and www.mcool.org has been completely redone; see my quick overview of what I consider to be the most useful changes.

dgw

I am an avid technology and software user, in addition to being reasonably well-versed in CSS, JavaScript, HTML, PHP, Python, and (though it still scares me) Perl. Aside from my technological tendencies, I am also a theatre technician, sound designer, violinist, singer, and actor.

2 Comments:

  1. Not trying to incite a debate, but I think many people who develop websites consider the fact that less than 1% of users don’t have JavaScript turned on, and find that requiring JavaScript is a fair trade off.

  2. I am aware that most users enable JavaScript—in fact, I am one of them—but JavaScript is most useful and accessible when it’s used as an enhancement, not as a critical site feature. Admittedly, sites like Gmail must needs rely completely on JS for their UI, but the nature of the program is such that this is justified, and an alternative version is provided.

    The MediaWiki software, for example, which runs Wikipedia, has implemented new features based on AJAX lately, but the features are still accessible using the old non-JS access methods.

    I’m not saying that my example site should remove the JS, nor is it definite that they should make it work completely without JS; I just wish they’d at least have the courtesy of a <noscript> tag to let users know when their ad-blocker misfires, or they’re using a misconfigured browser, etc.

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail (or subscribe without commenting)

Comments are subject to moderation, and are licensed for display in perpetuity once posted. Learn more.