Like I mentioned in a parent comment, I wrote my comment after working on a web application. If you see my comment there, I mention that I'm not quite sure how I could possibly make the interface accessible in any meaningful way for a blind person. I could give them a text only version of the web app, maybe that had a more linear and modal interface. But it would be about as accessible as some XML formats are human readable. I mean technically they're human readable but can you read them? I know I can't! :-)
Simple informational websites have no excuses today for not being accessible. As you have shown, there are simply too many options for these sites for them to turn a blind eye to any one of them. But simple informational websites appear to be a dying breed. There are several streams of information being presented to users on most websites. Trying to force them all to be accessible seems to me about as ridiculous as mandating that CNN require their closed captioning feeds to have not only what the talking head is saying, but the news ticker, the stock quotes, etc. that are also thrown on the screen at the same time; oh and this closed captioning feed needs to be backward compatible with an analog 21 inch Sanyo TV :)
It frustrates me that HTML+CSS+Javascript web applications will be at an inherent disadvantage here unless we as an industry come up with some sort of convention. We could start with some notification event model, or even something as simple as saying that if your HTML markup sports an accessibility meta tag, that all DOM objects with the class name accessibility-hidden should be ignored by screen readers and that those with the class name accessibility-display should be picked up by the screen reader. The reading order of each element could even be specified by adding a class read-N to DOM elements where N >= 0 and denotes the priority of reading.
If we had something like this, at least I could hide parts of my user interface from a blind person (no pun intended!) and show them only the most important and relevant information to achieve the primary task at hand.
In regards to XML: haha, they are "human readable" but I can't read them either. But the thing is, that is still better than nothing. In fact that's scarily like fancy gmail vs. the newer yahoo mail interface - the former is like some xml formats, the latter is nothing at all. I know many webapps cannot be translated so easily into linear and text-only pages, hence I think at least some comment up at top about different options for doing something similar or an informational message about what is required for this app is a good idea if all other options have been exhausted.
I understand some apps are inherently inaccessible and there's probably going to be no good solution for presenting them in an accessible manner, but the number of those are very small. e.g. Gmail does not fit into that, think of what webmail was before web2.0. I'm not even talking about some of the fancier features of the webapp like chat, just the basic email functionality. So no, it's not quite like requiring that CNN do that. Just that they provide a CC feed. The rest are not so relevant.
Nor do I want to force every site to be accessible, as it really depends on what the site is. But like i've pointed out, yahoo mail is a horrible reminder of how a big site with a popular product is just ignoring a bunch of people. I can't even count the number of folks I've had to move to gmail from hotmail/yahoo mail because the latter two are just becoming a mess in their screenreaders.
Might I point out that this isn't just for the visually disabled. I have an iPhone and no matter how much Steve Jobs goes on about how I can see nytimes.com in all its full glory, it sucks. In fact, a lot of regular sites suck a lot in mobile Safari. My fingers ache from zooming in and out and trying to click on tiny links and getting unexpected behavior. Like, I use sigalert.com daily on the phone, and I can't click accident/traffic reports on the map because whoever designed that was expecting someone with a mouse to click, not a fat finger on a small display. If it works and I actually pressed the right thing, the ajax popup of accident/traffic detail shows up somewhere totally different.
But, I have the option of going elsewhere on the same site for a list of accidents by freeway. It sucks, but it's still something, and something a LOT easier to look at on my phone. And most sites can do something like that, hence my bitching. I would be hard pressed to find a site where the same information cannot be presented in a more accessible manner. Sure it's not as nice and for the average user it's pretty dumb, but it is better than nothing.
Simple informational websites have no excuses today for not being accessible. As you have shown, there are simply too many options for these sites for them to turn a blind eye to any one of them. But simple informational websites appear to be a dying breed. There are several streams of information being presented to users on most websites. Trying to force them all to be accessible seems to me about as ridiculous as mandating that CNN require their closed captioning feeds to have not only what the talking head is saying, but the news ticker, the stock quotes, etc. that are also thrown on the screen at the same time; oh and this closed captioning feed needs to be backward compatible with an analog 21 inch Sanyo TV :)
It frustrates me that HTML+CSS+Javascript web applications will be at an inherent disadvantage here unless we as an industry come up with some sort of convention. We could start with some notification event model, or even something as simple as saying that if your HTML markup sports an accessibility meta tag, that all DOM objects with the class name accessibility-hidden should be ignored by screen readers and that those with the class name accessibility-display should be picked up by the screen reader. The reading order of each element could even be specified by adding a class read-N to DOM elements where N >= 0 and denotes the priority of reading.
If we had something like this, at least I could hide parts of my user interface from a blind person (no pun intended!) and show them only the most important and relevant information to achieve the primary task at hand.