Paid Advertising
web application security lab

Target Sued By The Blind

Once again, the blind are at it - wanting equality and accessibility. Those pesky blind people! No but seriously, this is really pretty important and although I am pretty anti-litigious I think the National Federation of the Blind is making a statement by suing Target. Yes I know I’ve mentioned this before, but I started thinking about this some more in the wake of this recent MSNBC article. Blind people cannot use the Internet in the same way people with vision can. They cannot “see” the page layout. One thing I haven’t talked much about is semantic relationships in HTML. It’s a very simple concept that eludes most people who claim to know HTML (at least they put it on their resume).

One of the major problems I see with the way HTML is constructed is tables. Tables are one of the most useful constructs in HTML. You put things in columns and rows, and it makes sense. The problem is that it’s not accessible. The way tables are constructed you read down the column instead of across the row. It’s easier to dump the contents of a select statement in SQL than put it into a multi dimensional array and output one row element at a time in order. Thus it is no longer semantically correct.

Let’s say I have a simple table that has this sort of data in it:

Name Age Sex
Alice 32 Female
Bob 53 Male
Cathy 38 Female

A person who is blind heard that as follows: “Name Alice Bob Cathy Age 32 53 38 Sex Female Male Female.” That’s not terrible with such a small list but when the table grows to many columns with many rows in it, it’s nearly impossible for the person to understand which person you are now talking about. If the table were re-constructed to be in semantic order it would make more sense, “Name Age Sex Alice 32 Female Bob 53 Male Cathy 38 Female.” I understand CSS has come to the rescue but with completely different look and feels and bugs depending on what browser you are using. My question is, why haven’t we invented a new table structure in HTML that is semantically correct? It’s not radical thinking, it’s a simple solution to giving accessibility and still allowing an easy standard way to display data in HTML.

Anyway, sorry, that was probably a tangent. The real reason I’m writing this post is to drive home the fact that the CAPTCHAs people have been using on their enterprise websites are going to get them sued unless they have an alternative. We’ve talked about this before, and I’ve been given the impression that people just aren’t sensitive to this issue by the very same people who built those CAPTCHAs. I wonder what it will take for people to realize it’s just not a good idea from a security perspective (porn proxies completely circumvent the value since you can trick people in any context to type in those CAPTCHAs for you) and from a legal perspective. Hell, it doesn’t even have to be a porn site that relays the CAPTCHAs to unsuspecting users, it could be a blog… a web application security blog. Hmmm…

9 Responses to “Target Sued By The Blind”

  1. George Says:

    Tables can be made accessible quite easily. If you ensure you use table header footer and body tags, scope=”col”, scope=”row” you will be making your tables accessible to most screenreaders who interpret tables pretty well.

    I agree CAPTCHAs are an issue and I welcome the Target test case. As there is yet to be a test case either side of the Atlantic it will be interesting to see what happens with this.

  2. Dean Brettle Says:


    I must be missing something obvious. Why would the table you described be accessed that way. The HTML itself has cells grouped by row, not by column. In other words, if you just removed the tags, you’d get the output order you want. Right?


  3. RSnake Says:

    Sorry, Dean, what I’m actually referring to isn’t a simple table structure, it’s more complex than a simple three column three row type table structure. I’m actually talking about where each row is it’s own table (more like embedded tables). Maybe there isn’t an easy way to fix this.

  4. Malachias Says:

    I may be missing something here, but “new kind of table”… isn’t that what we’ve got CSS for?

  5. RSnake Says:

    That would be great if CSS worked the same in all browsers.

  6. maluc Says:

    yes sadly.. CSS is a huge pain in the ass to make it look uniform. You can forget about borders/margins/padding as they look different between mozillas and IE .. all because of a single fundamental difference - which probably was never specified by w3c

    Having to build a mostly CSS site for work.. and i gave up on borders/margins/padding, opting to make them manually with absolute positioning. Not really the best option for major sites like Target.

    But for all it’s faults, CSS loads wayy faster ^^

    Either way, i really hope the blind lose this lawsuit with prejudice. The gov’t should not have jurisdiction to mandate the internet, and this would help open such doors :/ .. If you’re blind, tough. You can’t expect to go to the theater and have braile consoles to describe the movie. And you can’t expect the gov’t to add talking street signs so you can drive again. If you absolutely MUST buy your tubesocks online rather than the store, get a friend to fill in the CAPTCHAs for you. Although no blind person is going to read this, so i’ll end my rant here.

  7. Chris Snyder Says:

    Tables within tables break screen-reading paradigms? Come on, really? There must be at least a gajillion MySQL/PHP websites out there that employ this kind of structure throughout.

    Can we really hope that all those webmasters are going to get clever overnight and switch to divs and css _for tabular data_? Or do we just need smarter screen readers? Or better yet, tactile displays!

  8. RSnake Says:

    Hey, Chris, no you’re right, there are a ton out there that break that simple convention. They aren’t going to fix it, that’s the problem. I’m not sure that screen readers can really tell what it supposed to be inline and what isn’t. For instance newspapers that have two tables. They aren’t meant to be read across, they are meant to be read down one column and then down the next.

    It’s a tough problem. I’m not sure how a smart screen reader could really figure that out. It’s really a human spacial perception issue. Tactile displays would help a little but that is assuming that the distance is well defined enough… Some of the differences are measured in pixels, not in centimeters. The human touch really isn’t super great at discerning distances that are so small (or so similar).

  9. vacuum cleaners Says:

    I have to agree with the argument against CAPTCHAs. I don’t have extensively excellent sight and it’s hard for me to read CAPTCHAs and people who don’t have the spoken alternative make my life a real drag, especially when I’m trying to leave comments on blogs, etc. I understand the frustration with people who build with tables, but really that’s only applicable to people who don’t know how to use tables. For instance, if I was writing that information about a person in tables, I would have put the name, age and sex of the person all in the same table square. I find that pertinent information is best served in the same area. I don’t like to separate my information. So it’s kind of out of line of you to say that people who use tables don’t know how to use HTML and don’t know anything about it. I prefer it and I happen to make pretty good use of it. Shouldn’t you be more worried in this case about people who don’t offer alternative descriptions and long descriptions of their graphic works, etc. on their pages??? You haven’t mentioned that once and THAT should really be our chief complaint and THAT should be what helps you to decide whether people REALLY know how to use HTML, shouldn’t it???