Because I always doubt myself, and because it’s been quite a long time since I tested my forms (they were tested in JAWS7 which meant IE6 only… I could SayAll in Mozilla but the other quickkeys went bonkers…), I went back to see what they did again, with the form I posted above.
I never had a copy of JAWS6 but it’s one I would consider buying if the anecdotal info I hear is true (that it’s still heavily used in Europe).
If you just go through the page in SayAll or whatever (which plenty of people, if they are impatient like me, may not do), when you get to the form table in JAWS7 , it’s announced as a table and the summary is read out (on the actual page where the form is I don’t think it’s a good idea to leave description or instructions in the summary… better to have it outside and before), and everything is listed/mentioned as table stuff, til you get to my first input. You realise it’s a input and JAWS7 you need to specifically go into Forms Mode yourself so I hit enter and from then on, it’s as if it’s just a form with the titles read out (by default) type-in-edit-text.
After the last input of the form, you’re still in forms mode and I have another form question in the form but outside the table… I’m told I’m leaving the table and the legend of the next fieldset is read out and everything finishes like a typical form.
None of the table-ness really appear… if you are in Forms Mode, then as usual only form controls are read out. I didn’t think of it but I could have made the left td’s labels, that might have been smarter.
JAWS10 (which I can also test in Mozilla and that’s pretty much my default browser with JAWS now) pretty much acts the same way except it wants to jump you into forms mode. No mention of anyone being a table anywhere is mentioned until you go from the last input in the table to the next non-table fieldset… but if I’m sayAlling into the page, while I am shoved into Forms mode the summary does get read first.
Or maybe, just stop trying to hack things for screenreaders. I’m barely competent at their use anyway, and hacking for devices is a vicious circle as we know.
I hack for them the way I hack for IE6: if I can keep my semantics and it’s not a huge weird workaround I’ll do it, but if the bug really causes problems for other users, I have to either think of something else, or consider dropping support there. I’m rather unhappy that I have zero input or feedback over whether any of my pages are visited by a screen reader (besides mine) and if so, which versions.
JAWS6 is so nastily buggy I really don’t like the idea of hacking for it… though it might be the most widely used on in my area. That would also be a reason to continue catering for IE6 since Mozilla worked buggy at best.
JAWS10 on the other hand is pretty nice and I can use it in other browsers.
I still think it’s a bad idea to mix forms and non-forms markup, for semantics reasons, but perhaps my belief that it causes issues for screenreaders is wrong or irrelevant.
No, god, you’re absolutely right… most forms have explanations and other important text in non form controls and you totally don’t hear them! Not unless you go through the form first in reading mode which, esp if your reader automatically starts you out in forms mode, why would you? I’d be too impatient.
But the thing about whatever you’re wrapping your form controls in is, at least in JAWS, if you make sure all the info that’s relevant is in the control (and so don’t rely on any table semantics or list semantics if using those), you can make it act like a regular form. What’s valuable about your page you linked to is that you can stuff your tabled form with all the correct table semantics you want but the reader user is not able to take advantage of them if they’re filling out the form… and so information is lost, and people might not realise that.
If I were to rewrite my table and make it more “form-y” I’d make the row-scoped td’s labels and treat them similar to how I do multi-input labels like license plates and birthdates… currenty I hide labels and try to let the legend start things off. Orca doesn’t seem to read my titles but I am quite sure I’m doing it wrong : )
I’ve been trying to test this stuff in Orca but Orca works just so totally differently… no virtual buffer and it seems not to have a forms mode (or I’m just not finding it). Sometimes I wonder if we waste our time checking in some screen reader when the other five in use work completely differently. : (