Some of your points are quite valid, but I must disagree progressive enhancement & unobtrusive JS are “dead” or should be.
> - you can make significantly better UX without them
This is the biggest place where you’re wrong, as the examples of right-clicking or middle-clicking a “div with JavaScript” plainly illustrate.
Now obviously complicated web apps can’t work 100% or sometimes even 10% without JavaScript, but when reasonably possible, using progressive enhancement & unobtrusive JS will increase your compatibility across UAs, search engines, and other agents, and will avoid cases where your site seems broken in some crucial way.
Not to mention users with accessibility needs will do much better interacting with your `<a>` tags than scripted `<div>`s. Have we forgotten about them again, already?
Edited to add: Biggest tips w.r.t. accessibility: (a) Spend an hour using a screenreader and no mouse — e.g. VoiceOver, which comes with your Mac and works just fine in Safari. (b) Using semantic tags & progressive enhancement means your code will make the most sense to the screenreader — e.g. you will be able to tab onto your button/link because you actually defined it as one — and it will be described fairly accurately. Your "clickable" <span> is plainly going to be trickier for a screenreader… (c) Read up on WAI-ARIA, which lets you define roles for certain elements (like "notification" or "button"). If you want to make your AJAX work well for those with accessibility needs, this becomes fairly important as it can also help you manage focus and direct user attention.
Certainly, there's the right way and the wrong way, but don't throw the baby out with the bathwater. It's still early days for pushstate apps, and they have yet to get their "Rails moment". Middle-clicking problems and the like are inevitable. (Do you remember sites used sessions to remember where you clicked, so tabs didnt work at all? This too shall pass).
You say progressive enhancement helps you out in all these cases, but I just see opinion, and very little evidence. So all I have to offer you in rebuttal is the same - I believe the opposite.
I agree about accessibility. I frankly don't know what to do there. On the one hand, I hate the idea that I might be excluding somebody. On the other hand, I tend to implement things lazily, so if I'm never asked for a feature, I probably won't do it.
Comments
Some of your points are quite valid, but I must disagree progressive enhancement & unobtrusive JS are “dead” or should be.
> - you can make significantly better UX without them
This is the biggest place where you’re wrong, as the examples of right-clicking or middle-clicking a “div with JavaScript” plainly illustrate.
Now obviously complicated web apps can’t work 100% or sometimes even 10% without JavaScript, but when reasonably possible, using progressive enhancement & unobtrusive JS will increase your compatibility across UAs, search engines, and other agents, and will avoid cases where your site seems broken in some crucial way.
Not to mention users with accessibility needs will do much better interacting with your `<a>` tags than scripted `<div>`s. Have we forgotten about them again, already?
Edited to add: Biggest tips w.r.t. accessibility: (a) Spend an hour using a screenreader and no mouse — e.g. VoiceOver, which comes with your Mac and works just fine in Safari. (b) Using semantic tags & progressive enhancement means your code will make the most sense to the screenreader — e.g. you will be able to tab onto your button/link because you actually defined it as one — and it will be described fairly accurately. Your "clickable" <span> is plainly going to be trickier for a screenreader… (c) Read up on WAI-ARIA, which lets you define roles for certain elements (like "notification" or "button"). If you want to make your AJAX work well for those with accessibility needs, this becomes fairly important as it can also help you manage focus and direct user attention.
Certainly, there's the right way and the wrong way, but don't throw the baby out with the bathwater. It's still early days for pushstate apps, and they have yet to get their "Rails moment". Middle-clicking problems and the like are inevitable. (Do you remember sites used sessions to remember where you clicked, so tabs didnt work at all? This too shall pass).
You say progressive enhancement helps you out in all these cases, but I just see opinion, and very little evidence. So all I have to offer you in rebuttal is the same - I believe the opposite.
I agree about accessibility. I frankly don't know what to do there. On the one hand, I hate the idea that I might be excluding somebody. On the other hand, I tend to implement things lazily, so if I'm never asked for a feature, I probably won't do it.