This topic has been closed. No new entries allowed.
Reason: You can now post comments on articles on Dev Opera
You need to be logged in to post in the forums. If you do not have an account, please sign up first.
Stop using Ajax!
In this controversial article, James "Brothercake" Edwards argues that we should stop using Ajax (unless absolutely necessary) until we have ironed out the issues surrounding its lack of compatibility with accessible technologies such as screenreaders, and suggests how you can stick to accessible web standards-based techniques, instead of resorting to Ajax.( Read the article )

This echoes what I've been thinking for quite a while now, although I wasn't thinking so much about accessibility issues, but more about how so many sites seem to over-complicate things to such an extent that reliability suffers. Not to mention how much time, money and effort must have been expended creating those sites.
Originally posted by Albert Einstein:
Make everything as simple as possible, but not simpler.
25. April 2008, 20:00:57 (edited)
This is not true at all.Google Maps need Ajax to work, and so I have no real criticism of them, and accept that the pure accessibility issues are (as far as I can think) unsolvable for now.
Can you remember how online maps looked 3-4 years ago? Look at current MSN Maps for example. There is no fancy "grab n' drag" interface -- only simple arrows on the sides of map. And before Google Maps there were only this kind of interface on most online maps. I expected that they just add additional interactivity to that approach, but they decided to destroy accessibility and build all from scratch. Some users just can't press some button for long enough time to scroll the map, but they can move cursor and click.
So, what can be done to make online maps more accessible?
- Re-add side arrows to interface, put on arrows simple HTML links, so even users w/o JavaScript can navigate a map
- Load static HTML page with map initially, but plug JavaScript with Ajax for users who will try to drag a map. If user clicks on side arrows, continue to reload whole page, if user drags a map, load map parts with Ajax.
- This is it! Simple!
BTW, great article! Thanks!
extendopera.org • Report bugs to public BTS • „Removing options is evil“ — Jon Stephenson von Tetzchner
To start, accessibility is not a concern for me, and it only ever will be if I'm designing towards an audience that consists of a disproportionate number of concerned parties.
Let's face it, when talking about accessibility, we're mostly talking about blind and hard of vision users. There are about 1.3 million legally blind individuals in the United States (http://www.afb.org/Section.asp?SectionID=15). Now, that's "legally blind", not flat-out blind. I have three people in my family who are "legally blind", and I am nearing that status myself. We're all non-severe, however. We can see with contacts, glasses, and are candidates for laser eye surgery.
Of those 1.3 million legally blind individuals, a smaller percentage of THAT NUMBER is classified, "severe". So, let's just say a safe estimate is there are 300,000 severely blind people in the United States.... approximately 1/3rd of the legally blind. Of those, a significant number are elderly, which, for now at least, takes them out of my core audience. So, I'd estimate about 200,000 blind internet users *in the US* (fair enough, number increases internationally, and the proportion changes, but let's focus on my main market of concern).
The July 2007 approximation of the US population is 301,139,947. So, 0.06% of the population is severely visually impaired. Even if you consider ALL LEGALLY BLIND PEOPLE, 0.4% of the population is visually impaired.
But because it's not particularly handi-capable (Dojo's getting there, though), you're trying to tell me that we should abstain from or use moderately one of the biggest boons to intuitive and cost effective interface designs since the web standards were created? Please....
After reading that article, I feel you are immature.
Originally posted by Andrew Gregory:
This echoes what I've been thinking for quite a while now, although I wasn't thinking so much about accessibility issues, but more about how so many sites seem to over-complicate things to such an extent that reliability suffers. Not to mention how much time, money and effort must have been expended creating those sites.
And I think this user highlights your true motives. Accessibility is your straw man. You do not like *bad AJAX design*. That's fine, and I feel you. There's plenty of it. However, to blame AJAX is like blaming lumber for shoddy construction, or bricks for weak foundations. It seems as though you've really got a grudge against bad developers and designers, not AJAX.
But all that's speculation.
Good AJAX is cost effective, time effective, and labor effective. Trust me, as someone whose been doing AJAX since 2005 who has also been web developing for 10 years, wise use of AJAX has done nothing but increase the productivity of myself and my user base.
In conclusion, accessibility is a statistical non-issue, is not cost effective, and is a bitch b/c of varied implementation of web standards. I'd rather just tell blind people that I'm sorry and ignore their problems than I would spend an extra week's development time to fix them (and yes that is a lenient estimate considering the variables involved in being accessible). It's the cost effective and the mature choice. Sucks, but it's true.
Oh, and by the way, this site's main page has 52 top priority web accessibility errors.
http://www.tawdis.net/taw3/cms/en
25. April 2008, 20:10:35 (edited)
Remember, disabled users are not only blind users...
I'm pretty shure that soon you can't just say sorry for disabled users, just like stores that don't provide acceess inside via special ramp for wheelchair.I'd rather just tell blind people that I'm sorry and ignore their problems than I would spend an extra week's development time to fix them
extendopera.org • Report bugs to public BTS • „Removing options is evil“ — Jon Stephenson von Tetzchner
my overall impression of this article is that your views are in direct conflict with the progress of technology, and are therefore extremely short-sighted.
first, your argument to stop using AJAX until it is more mature will prevent it from becoming more mature. let's use a simple analogy: the internal combustion engine. the reason it is so mature and robust is that it has gone through many revisions, starting from an immature technology to a mature one. granted, accessibility issues are moot with this, but the point is valid: technologic progression occurs when there is demand for something better, and telling developers to stop using AJAX will destroy its demand, and therefore its progression.
i want to use another analogy: the printing press. let's say gutenburg decided not to print anything until his printing press supported braille. i don't have to spell this out for you, but that would have been absurd and while you're not suggesting something so extreme, i think the point is still valid.
if everyone takes your advice to stop using AJAX, you'll kill the technology completely. your arguments, if adopted by a great many, would greatly reduce the progression of web technology at great costs to the many with benefits for the very few.
applying your arguments to any mature technology would cause it never to have been developed in the first place.
you ask us to develop web apps for the entire world, but let me redefine progress for you:
"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man."
George Bernard Shaw (1856 - 1950)
You don't see the point that BrotherCake is making. I bet you didn't even read the article fully...
AJAX requires a javascript engine in the browser to work, if that browser doesn't have a javascript engine and the site relies on AJAX only for it to work then the user is screwed over. Accessiblity issue #1.
Plus many people are accessing the internet by their phones these days, not everyone has an iphone or a powerful blackberry that runs a browser that can handle AJAX(currently opera mini is server based, but doesn't really handle AJAX very well on java for mobile). Accessibility issue #2
Not everyone uses their mouse to browse the web, and at times people may not even have a mouse handy to browse the web, if the AJAX app only relies on the user needing a mouse to work, then that seriously cripples the user. Accessibility issue #3
Thats the way it should always B.

let's face it, if you have a browser that doesn't support javaScript these days, you're not experiencing the web and no reasonable person would demand that all or even most web applications should work both with and without javascript.
mobile handsets are a problem for browsing the web, true. but it should in no way restrict the majority of web applications that are developed. first, the number of users on mobile devices is way too small, and their technology is too far behind. it's up to the handsets themselves to create a browser that can use the real web. see the iphone for an example.
your argument is that web design should accommodate users who don't have javascript and who may use handsets, and my point is that web design shouldn't be restricted by those two cases. i think the users should get a real browser whether that be on their handset or on their desktop. saying we should slow the development of the web for those two is just...whew... outrageous in my opinion.
let me just reiterate my last point. by having web developers cripple their applications in order to accommodate those who do not use common technology, we will give those users or handset manufacturers even less incentive to upgrade their browsers and we'll be caught in a brand new problem: we'll stifle innovation.
Oh, I know the accessibility "problem" well... and it pretty much boils down to hundredths of a percent of the population complaining. I understand it, I just do not care. It's not a "problem" for me.
I am not going to pander to the extreme minority... ever. It is not the same as not having handicap ramps. See, private businesses do not need these ramps. There's no law that says a business even needs handicap parking, at least in my state. That is a business's personal choice, and a minor choice to make, so most do.
To adjust your website to handle accessibility... it's no small choice. And it contributes to the development and testing phases significantly.
It is not financially responsible to engineer your entire system just to accommodate a few cripples.
To put it more clear, accessibility isn't a problem, being blind, deaf, or armless is. If you're one of those, you deal with it however you can or stop being blind. :-P Either way, no tears from me b/c you wanna use the visual medium too. I have no responsibility to those people, and to suggest that I do is an offense to me.
@shoust
Counter Issue #1:
If you're suggesting I should care whether every user can use my site, again, I do not. Embrace change or gtfo, I say. If I gave a damn about every single user, I would make all my sites Lynx compatible and fire the graphics designer. This is archaic, absolutist, and immature thinking... and I personally do not subscribe to it. If you do not want to run a browser with javascript, ok, but you deal with the consequences. You are such a minority, and really you're not the kind of minority I care about. Learn to deal or get off the web.
Do.Not.Care.
Counter Issue #2:
Build better phone browsers. Not my problem. Do not care.
I'm actually working for a Wireless Media company now. When I design for them, of course, it's gotta work in a reasonable wireless device. Unfortunately, there's so many of these devices, with so many different browsers and features and bugs... this problem is not standardized and therefore, I can't really deal with it in a comprehensive manner.
Again, it's about knowing your audience. This is still such a small audience at this point that I really cannot bring myself to care much. It is not cost effective to expect all web developers to give up good tools and techniques to satisfy some jerk who wants to read your site in an airport.
Do.Not.Care.
Counter Issue #3:
Seriously, mouse? Are you serious? ... no mouse, touchpad, or fingerballthingy... no touch screen or any means of moving a pointer?
That's not an accessibility issue, that's a matter of personal problems.
I use tabbing whenever possible to try and navigate my computer and the web, but let's face it, most of the time I just use my mouse. Even Stephen Hawking has a way of using a mouse, and that guy's immobile as hell. OK, so yeah, no mouse?
Do.Not.Care.
Originally posted by Rafajafar:
Wasn't that one of the points in the article? That the web wasn't supposed to be strictly a visual medium, but rather platform independent?Either way, no tears from me b/c you wanna use the visual medium too
Originally posted by Rafajafar:
I am not going to pander to the extreme minority... ever. It is not the same as not having handicap ramps. See, private businesses do not need these ramps. There's no law that says a business even needs handicap parking, at least in my state. That is a business's personal choice, and a minor choice to make, so most do.
That's not the case in the UK. And sooner or later a country is going to pass laws ordering that websites either hosted or created in that country must be 'accessible'. It can't apply globally because of the nature of the web, but it's far from unforeseeable that a company that exists entirely in one country would be required by law to accomodate the disabled. It would not surprise me if mine or the US was the first to pass laws on this.
As for Javascript being disabled or unavailable, I see more and more comments here and in other places by FF users saying they use the NoScript extension due to the increasing number of JS security issues as well as increasing abuse of its capabilities.
Of course economics will sometimes dictate that small subsets of users will be locked out. And for a developer, doing a lot more work on something that might never be used is very frustrating. But economics and 'do not care' are not the only driving forces here.
Please read my short stories

New to My Opera? Got a question? Go here - Newbies of Opera
Originally posted by Rafajafar:
Do.Not.Care
Yeah, I think that sums things up quite nicely.
Originally posted by Rafajafar:
this site's main page has 52 top priority web accessibility errors
No, it does not. That tool simply flags potential issues that need testing by a person. Accessibility testing cannot be automated. That tools flags every script element three times no matter what, and every image and style sheet at least once each, often more. Not to mention six other points that look like they'd be included for even a totally blank page. That's just the priority 1 messages!
It's really nice to know that someone claims to use "AJAX" well.
My problem is with the teeming masses of developers who do not.There is a huge and rapidly growing market of people (often in the third-world) using the web from very simple mobile phones that have slow data rates, slow CPUs, small memory, no touch screen, etc. That is what accessibility is all about, IMHO. Accessibility is far, far more than catering to disabled people.
Originally posted by Rafajafar:
andIt is not financially responsible to engineer your entire system just to accommodate a few cripples.
Originally posted by Rafajafar:
.To put it more clear, accessibility isn't a problem, being blind, deaf, or armless is.
While it would end up being quite a bit more work, is it possible to use navigator.plugins to determine of the client has a screenreader installed and then serving the appropriate page?
This would ensure that Ajax technology is served to those who can use it, while a more accessible page is served to those who require accessibility. Sure, this would create a lot more work, but the company that appears to embrace its differently-abled customers has a HUGE PR advantage.
Also accessibility is more than just about disabled people. Some AJAX sites I dislike for the very same reason that I dislike flash sites. They often kill the URL making it impossible to link to specific content. It's annoying when you have to include instructions with a URL.
Autocomplete form fields (standard in all other browsers - Requested 2003)
www.microugly.com
Originally posted by drworm:
I have to agree with that observation.They often kill the URL making it impossible to link to specific content. It's annoying when you have to include instructions with a URL.

But on the other hand, many well written AJAX sites have now special URI's to allow that direct linking to the contents in question, having the unchallengeable advantage of only rewriting the changed, new contents into the page, W/O refreshing everything, which is really important for me...

I believe, W/O AJAX this couldn't be done in such an elegant way, but I am no web designer...

◇◇ UserJavascript "zz-spoof-id"! ◇◇◇ [Thanks for Finally Considering this Petition!] Composing Emails in the HTML Format in Opera
Economics will take care of it.
If this inconveniences 1% of users they will not be left in the dark. That's a big niche market, and somebody (hopefully me) will be hard at work responding to the demand this problem brings.
Originally posted by browland601:
Economics will take care of it.
(from comment on Reddit)...accessibility is not profitable, yet we (or those who write the laws, anyway) feel that those with disabilities have the right to concessions from the rest of societies.
extendopera.org • Report bugs to public BTS • „Removing options is evil“ — Jon Stephenson von Tetzchner
For those that say "I don't care", I just hope you never experience discrimination of the sort. Having a disability myself, I know what it's like to have the door slammed in my face.
Originally posted by dredfive:
let's face it, if you have a browser that doesn't support javaScript these days, you're not experiencing the web and no reasonable person would demand that all or even most web applications should work both with and without javascript.
Yeah, but we shouldn't forget that more and more large organisation block javascript at firewall level. The user might have javascript enabled at the browser level, but getting out in the world through their corporate firewall, they never get to see the javascript.
Accessibility is NOT just about people with disabilities guys!
"A community that excludes even one of its community members is no community at all" - D. Wilkins
Yes it's a small percentage, but it's a percentage that any one of us could find themselves in. Then see how you feel about being shut out?
Something that perhaps some of the people commenting here don't know, the author is not a grumpy old man having a go at these new fancy techniques that he doesn't like or doesn't get - James Edwards is an absolute sharp-as-anything world-class JavaScript genius and has been responsible for numerous techniques that he's shared with the community, either on blogs or in the books that he's written.
The fact that he's making these comments suggests to me that they are comments worth paying attention to - he is not doing this because he is *incapable* of producing an absolute diamond of an AJAX powered interface; he could do it standing on his head and still make you look foolish. He has, however, researched the issues that it throws up significantly more than 99.9% of the JavaScript web dev community and knows what he's talking about.
So let's not dismiss this article out of hand as 'the rantings of a crazy man', but rather the alarmed tone of a man who feels like he's the only one to have noticed this to be problem and who is, in all probability, completely fed up with trying the softly-softly approach and getting nowhere.
Originally posted by vavroom:
Yeah, but we shouldn't forget that more and more large organisation block javascript at firewall level. The user might have javascript enabled at the browser level, but getting out in the world through their corporate firewall, they never get to see the javascript.
This is *absolutely* correct. For a loooong time, every site that redeveloped with a JS library (pick one, any one) would immediately become useless at my place of work, because the content in the library would trigger off the potential malicious code alarms. So, what would happen is that *some* JavaScript would be blocked - a whole .js file - while others would be let through.
In this scenario, placing alternative content in a <noscript></noscript> would not work, because the browser would not act on that - the browser is JS-capable, it's just not getting the full picture.
This is a rel problem, and if for no other reason you should
1) Make the site work without JS
2) Add the bells and whistles on top, unobtrusively, perhaps with a library, perhaps hand-coded.
If the critical JavaScript is blocked, yo still get something.
It's a mindset that more people really need to get. As the quoted commenter said, it's not just about disabled people. In the building I work, there are 3000 *non-disabled* people who could not use many of the web apps that use certain JS libraries until just a few months ago when the firewall software was changed.
http://domscripting.com/blog/display/41
Somewhat topical...
http://www.wait-till-i.com/2008/04/29/oh-look-using-ajax-in-a-stupid-way-is-not-a-good-idea/
In essence: James is right, but how is this a daring controversial article? The big problem about Ajax and accessibility is not the technology, it is the environment we apply it in. There is not much support for clever, accessible and usable development as we are asked to rush things. And we are asked to rush things because we've been preaching to the wrong people about best practices for too long assuming that "we'll never reach" beyond our own community.
30. April 2008, 14:53:30 (edited)
Originally posted by ChrisHeilmann:
Ok, I could have ranted here, but instead I blogged my response (also to the post above):
http://www.wait-till-i.com/2008/04/29/oh-look-using-ajax-in-a-stupid-way-is-not-a-good-idea/
In essence: James is right, but how is this a daring controversial article? The big problem about Ajax and accessibility is not the technology, it is the environment we apply it in. There is not much support for clever, accessible and usable development as we are asked to rush things. And we are asked to rush things because we've been preaching to the wrong people about best practices for too long assuming that "we'll never reach" beyond our own community.
I never said daring in my abstract of it, but I did say controversial - it's controversial because of the arguments this subject always brings up time and time again, and the knee jerk reactions it has once again caused from people. My main point in posting this is that I think it's always worth reminding people of such issues, and it's a problem that isn't solved, so there is more work to be done. I think you are right Chris - we do need to preach to others, and this is kind of what I'm trying to start.
Is there a resource anywhere for hints and guidelines on Ajax accessibility? A kind of "If you are going to use Ajax, which you are, fair enough, then here's some ideas on how to make the site accessible with as little time and effort as possible" rather than just going around shouting "Ajax - unclean - noooo!" People like Brothercake and Derek Featherstone know about a million times more about this subject than I do, so I may well approach them about it.
Developer Relations Manager
Editor, dev.opera.com and labs.opera.com
http://www.marcozehe.de/2008/04/29/are-ajax-and-accessibility-mutually-exclusive/
Marco talks about promoting WAI-ARIA. BTW, I'd like to thank Opera for being one of the driving forces behind that, so we can work toward a solution.
Meanwhile, from the developer point of view it is not hard to make applications compatible with pure HTML browsers if you are doing so called served-based AJAX assuming your have enough money to pay for extra servers for your application. Otherwise, AJAX can reduce server load and make servers cheaper.
The time and the industry is demanding high performers in order to make your site a successfully one.
And by the other hand we can always try to get around that issue... Like using a DOMScript in order to display ur Ajax or JS effects,.. Or add you rich text as a hidded one and just display it in any case that the js is off...
We can't tell to a developer to just code in regular HTML and CSS.
{ Hope you can get my point...}
Just commenting to say that I quite like the <a href="http://devfiles.myopera.com/articles/355/flickr.html">Flickr Edit Photo page</a> drafted by Brothercake and linked in this article.
As a Flickr user who appreciates the design, feel and responsiveness of the AJAX on the site, I have sometimes wondered whether there's a way to make it more accessible without losing usability. Putting all edit functions on a single page sounds good to me. What I'd lose in waiting for the edit page to load, I'd gain in being able to make multiple changes in one spot. (Some things can be changed in-place on Flickr, but some take you to a separate page that only lets you change a couple of things.)
14. May 2008, 18:20:14 (edited)
I can't even get final PDF from this "web 2.0 application".
Just for contrast here is a better service for creating invoices online that doesn't use Ajax and uses JavaScript in appropriate unobtrusive way: invoiceplace.com
extendopera.org • Report bugs to public BTS • „Removing options is evil“ — Jon Stephenson von Tetzchner
Originally posted by uklloydi:
This is a rel problem, and if for no other reason you should
1) Make the site work without JS
2) Add the bells and whistles on top, unobtrusively, perhaps with a library, perhaps hand-coded.
Exactly. _This_ is what is called "progressive enhancement" (the article implies that simply using AJAX is prog. enhancement). You can have all the bells and whistles of Javascript, as long as you don't depend on it.
Part of the registration page for this site is a perfect example of what not to do. The link to check name availability is a javascript:function() url. If I have JS turned off, the link would do nothing. In the progressively enhanced version of the page, this link would be your regular old http: link, but there would also be an onclick event handler that fires, does all the fun Javascript stuff and then returns false (to prevent the browser from following the link). Also, the onclick itself should be added via JS (instead of hardcoded into the HTML) so that (in the case of a firewall blocking JS), a browser with JS enabled wouldn't be looking for a non-existent function. Yes, debugging this would be a pain, but that only affects the developer, not the user.
I don't know how many times I've gone to a site and middle clicked a bunch of links (open in tab in background), only to find 10 tabs of javascript: links.
In theory AJAX should have zero negative effects on disabled accessibility - there is nothing intrinsic with dynamic data that makes accessibility hard.
Designs should certainly make their best effects....for example, high-contrast CSS styles could be swapped in using a javascript button. (and even stored in url hash along with data concerning what your looking at)
You could even support more advanced stuff like speach recognition, if you had the budget.
Honestly, if screenreaders cant cope with reading new content on the page thats THEIR fault for being. Is not the designers fault, and its certainly not AJAXs fault. Hell, if you had the budget, you could even make your own screen reading in javascript calling wav fragments dynamically on the server to make words. Wouldnt be neat, but it would be possible.
As for needing to always support everyone possible - rubbish. Theres only so long we can support IE6 for, and all developers and companies have finite budgets to spend.
AJAX allows less bandwidth use, faster development and slicker better interfaces. Poor design can be done with/without it, and accessibility issues your completely blaming the wrong thing.
and....oh, whoops, Ive just stopped how old this artical is

Still, my point about it being the screenreaders fault still stands.