I see this bandied about on reviews of various sites, and I continue to believe it doesn't matter. If you have Javascript turned off and a page doesn't load, you should know why that page isn't loading. It's because you deliberately broke it for yourself.
The thing is, it's not your goal to cater to as many users as possible. It's your goal to optimize your ROI on development time. The reason we have to have laws about accessibility is that your average fast food place knows that wheelchair-bound hamburger sales will never make back the cost of constructing a wheelchair ramp. The economics of the situation wouldn't provide for disabled people, so we have to have regulation to make sure they get taken care of.
(And before anyone jumps on that and misinterprets me, I am not comparing disabilities to turning off JavaScript. I'm simply showing by example that it is not good business to try to grab every possible customer at any cost.)
It is bad practice to couple content (the "what") with functionality (the "how"). The content itself should not depend on how it is displayed. From an engineering standpoint, this makes your code unmanageable and unmaintainable in the long run. These stupid shortcuts of forcing users to have Javascript on just to display content only cause me minor inconvenience, but it will cause you much more harm when it's maintenance or upgrade time.
But you or everyone else on the JS bandwagon don't need to listen to me - I'll "temporarily allow" only the minimal amount of scripts on your page to see what I want to see and I will move on. You will need to live with this code during the next update cycle.
Then, taking that HTML and enhancing it with JavaScript (aka progressive enhancement) is also a violation of separation of concerns, and I would argue against it in any but the very simplest of cases. Instead, you should use JavaScript to operate on the raw data and display it to the user. You can then also write server-side code that generates a plain-HTML rendering of that same content, but that is more work, and that means it's a trade-off.
And I think in many cases that trade-off is worthwhile. But this idea that it somehow saves you time in the long run and doesn't end up costing you is pure fantasy.
>But you or everyone else on the JS bandwagon
God, that's annoying. My pointing out a flaw in a particular argument does not imply that I am "on the bandwagon" opposing that argument. I think that making your content accessible without JavaScript is a good idea whenever possible, but I do not think it is useful to pretend that you can do so without trade-offs. I don't have to agree with an argument just because I agree with its conclusion.
Abstarting things for the sake of abstracting is a rather naive approach. It's a good starting point, but some abstractions complicate things way beyond what's needed.
By the way, a quick search for sticky page footer on Google turned up this as the first result -- no JS needed, and it didn't even look that hard (http://www.cssstickyfooter.com/using-sticky-footer-code.html).
Sticky footer - an element that sits at the bottom of either window or the content area, whichever is furtherest down.
You're free to browse the web with parts of it turned off. But you should expect that parts of it might not work, and if they don't work it should be immediately obvious why. Could Digg make it fall back? Yes. Should they? Only if they really want to. It seems they don't really want to. No one wants to cater to IE6 users, either.
Yes, it should be immediately obvious, but often it isn't, and that's my biggest complaint with sites that rely on scripting for basic behavior.
Too many times I've filled in a form, hit the Submit button, only to find that proper form submission does not work without scripting. Nothing on the page warned me, nothing stopped me from filling in the form, even though there are snake-simple ways to tell no-scripters of missing behavior, or to simply prevent bad behavior when scripting is turned off.
(The other complaint I have is why sites rely on scripting to do things that are baked into HTML. For example, using divs as text areas instead of, say, using a textarea as a text areas.)
I use AdBlock and Ghostery to disable ads and Facebook buttons. But when I get to a sign in page and there's no links, I know that it's a Facebook login button. When I watch a video on Hulu and it doesn't load, I know that AdBlock is preventing me from seeing that show. But I don't go on forums and complain that developers should cater to me breaking their websites. I say to myself "oh hey, I've made a choice that broke this site. Let me take 5 seconds to fix it myself."
"Your site doesn't work with NoScript" means the same thing to me as "they don't speak German at the Chicago McDonald's". I mean, that sucks for you, but honestly do you ever step back and wonder why that is?
Not by a long shot. More like a sign in Braille explaining how to get further assistance if needed because not every sign the place may be accessible to the sightless.
Why should I or anyone else have to add code specifically to tell users of NoScript that they need to be reasonable?
Because so many sites use unreasonable scripting. NoScript is a reasonable defensive move because of too much aggressive scripting.
Honestly, do you ever step back and wonder why NoScript even exists?
Bottom line, though, is nobody has to do much of anything for anyone, and it's entirely up to the site owner to decide how they treat people with NoScript and what it's worth to add an additional 20 character or so of boilerplate text to a page.
If nothing else it's a courtesy.
It's just like smiling at people you deal with in stores or holding doors open for strangers. Do it, don't do it, whatever you think is proper. Make the world you want to live in.
I get that my choices are niche, and that's OK. I can live with the downsides. There are very, very few sites I can't simply close a browser on if I don't care for how it's presented for me. No one loses any sleep.
I suspect most people with NoScript use default blocking and whitelist sites as needed. So if I get a clear sign that I need scripting before I start doing anything, and it looks worth it, it's easy to allow the domain. That doesn't require any real effort from a developer, and if that's considered catering then we're all screwed.
Seriously though, NoScript user base is - and let me really blunt about it - a vocal minority with a bloated sense of entitlement. Catering to them makes no practical sense. There are obviously edge cases, but the best option is to put up a note that JS is required. If Digg doesn't have it, they should add it, but beyond that it's money wasted.
In short, no you are not. Get over yourselves.
I was pointing out that from my perspective, the entitlement of web developers has gotten so out of control that disabling JavaScript is the best way of making the general web tolerable to browse.
How often do you run into a website with Javascript that breaks your experience? Would it not be better to have a blacklist than a whitelist?
What you're looking for is browser sandboxing, and it exists.
There is a philosophy (with some merit) of worse is better. So, let's be honest... you're promoting sloppy coupling in order to save developer time. The problem is that the technical debt will have to be paid back in the future.
Their goal was to build a MVP as quickly as possible.
If your site still works without javascript, at least something will work if a bug slips through to production.
(I agree with you for the most part; it's just when even page navigation breaks it can get more than mildly annoying.)
Like you said, "...you compare the cost of the effort against the value added". It does not add anything to the brand, but not having a fallback takes away from it. And given Diggs current reputation, they need all they can get.
It is their tradeoff to make, personally I think they are making the right one.
Simple as:
<noscript>Digg is awesome with javascript turned on.</noscript>
on top of their other markup. That's it. Twenty seconds tops.
<noscript>example.com is a HTML5/ES5/CSS3 3D graphics demo. Unfortunately, your user-agent doesn't seem to support ES5, sorry about that.</noscript>Normal people who are my real audience probably don't even know how to disable javascript, and most likely would enable it with no fuss if something looked broken.
For more general population-oriented sites, I have smiley faces and "JavaScript" and "Web browser".
I would still question the millions or billions of users who view the web only on their non-smart-phone who will be using social media like Digg.
If you have a site that breaks without javascript, you are leaving a significant portion of your customer base on the table.
Given Digg's history, it's a bit of a red flag. However, it all depends on how this technical debt is managed. If this is an alpha release under the heading "release early, release often" and the tech debt is known, there's nothing alarming about it. But if this is truly considered a final product than it makes you question how capable these people are to revive Digg.
Either way, some of these issues suggest simply a lack of skill/knowledge rather than deliberate tech debt. That's not a good sign.
Sure, they might become a problem eventually, but fixing them before launching "just because" is be premature.
In fact, I think these nitpicks are an excellent sign for digg. They discarded anything which was useless for their launch. Very well done - an excellent MVP.
But if you care about accessibility, usability and SEO you should probably care about HTML issues like pagespeed and validation.
Web Content Accessibility Guidelines 1.0
Create documents that validate to published formal
grammars.
http://www.useit.com/alertbox/response-times.html
Users still hate slow sites and don't hesitate telling us.
Google Webmaster Guidelines (Design & Content)
Check for broken links and correct HTML.
So perhaps it is the "shit nobody, but front-end engineers, should care about" category.Also, I'm pretty sure they will figure out how to rescue those 14M 404s
Didn't Digg at one point purge their comments and there was a huge uproar? The new management shouldn't have went online without the migrated data, or at the very least, the user profiles.
I am looking at the login page and it seems to require Facebook authentication, and not even an option to use my old Digg.com account. In the FAQ it implies that eventually the old data will return.
I'm starting to feel like they decided to release a work-in-progress to capitalize on the wave of press they've received due to the sale. Most people had high hopes for the new management, and releasing early with a product that is less than half finished really causes a smell.
This is a MVP, not a finished product. It's a first iteration, an experiment.
Chill.
These are pretty strong signs pointing to the fact that at least one person coding this site is very much an amateur. Which is a pretty serious implication for the future.
I listed MicroFormats, because: As a foundation for a modern website, it is a great idea. Digg has the traffic and authority to make rich mark-up work. And I think adding stuff like rel="me" to your social profile-links is kind of standard.
It was certainly not a prioritized list of what to work on next. That would likely be more like: Deploy descriptive 404 page, Get old content redirected to new location, Comment functionality, non-Facebook log-in option, categories, option for a non-masonry list view, work on page speed.
I also really don't understand what was the decision behind breaking all older stories, it seems ludicrous they do not take advantage of that.
Even worse you now have to login with facebook! they did not bring back the old accounts, this seems like a very frustrating issue. Unless they want a completely new userbase...
I think they just threw the last remaining digger to reddit.
It seems to me you are really looking at not having those users that was on the site for a long time, it's not like digg and facebook really goes hand to hand together...
I was pretty impressed.
Unfortunately, that ends up being a standard, with the "refactor later maybe" staying as a maybe.
Start right, it's really no extra effort to use CSS over style anymore. It is in fact quicker.
If you write: "... arrested by the FBI" as "... ARRESTED BY THE FBI." you lose information (which screen readers could use to better pronunciation). If you style it with CSS, this information (capitalization, acronym, stress-words) is retained.
I didn't know about the issues with some foreign languages.
A UI that looks good doesn't mean it functions well.
I'm a competent computer programmer who hasn't done any front-end web development since 1999. Does anyone have a link to a good explanation of how to avoid these "obvious" mistakes?
Most of what I've found via google has been along the lines of "put interesting content above the fold" and "have consistent site navigation area," whereas I'm more interested in character encoding, where and how to specify CSS, when to use span vs div, and that sort of thing.
Thanks.
> They don't employ canonical or robots.txt.
doesn't matter
> They use a meta keywords tag, and it contains "celebrity news", which doesn't appear anywhere on their site.
doesn't matter
> They hardcode CSS with styles on div's. They don't use text-transform but type headers in all-caps.
doesn't matter
etc...
All the old stories and user accounts 404 now. That is a major loss to their SEO. 14 million pages just thrown away and not passing any juice.
They don't employ canonical or robots.txt.
They have character encoding issues. ("'Superbird' Discovered")
They use a meta keywords tag, and it contains "celebrity news", which doesn't appear anywhere on their site.
They hardcode CSS with styles on div's. They don't use text-transform but type headers in all-caps.
They use the HTML5 doctype, but none of the new tags or practices (like ditching the obsolete 'type="text/javascript"' on script tags).
The layout breaks without javascript on, and the "upcoming stories" section doesn't get loaded. They provide no warning as to why the site's functionality stops working.
They don't combine or compress resources like CSS and Javascript.
They left debugging and TODO's statements in their javascript.
tries to load content from a discontinued website.A lot of empty placeholder divs to js-load content into. TPL's are also stored inside the page contents.
URL's are not properly encoded (space instead of %20).
Links to the same article are both with 'target="_blank"' and without.
They don't use microformats or schema.org.