Laura Carlson wrote:
I would caution against using implicit labels.
I think your advice is correct. Here is the conundrum that had me using implicit labels in the first place:
a.) All mailman page-elements need to be embeddable into other pages; this means that I can't collide with unknown id's elsewhere on the page. Not too much of a problem; I can have a Mm- prefix to denote mailman ids.
b.) Many form elements will repeat. One example is a user looking at the options for >1 list at a time. Also, a.) means I can't know how many of "me" (where I'm a form-chunk) a site administrator has imbedded into the page.
Of course, "talking it out" has presented a potential solution; let me know if it seems off.
I'm thinking of using Kid to generate pseudo-random numbers for ids. This works great, except when someone wants to use an id selector in CSS or getElementById() in JavaScript.
If I do this, I'll have to use class attributes (which happily can contain many values) to disambiguate form elements for JavaScript, and JavaScript will have to add/remove class attributes to change display for CSS. This is fine save that View Source becomes more opaque for someone who just knows CSS and HTML.
- Keep the number of accesskeys to a minimum.
The only accesskeys I want to provide would be for speeding moderation. I'm filing the rest of your advice in the wiki, so that I may keep it in mind.
TABINDEX
having a sensible natural order to start with, meets WCAG requirements for HTML documents.
I think this is a good idea, but I'm not going to control the global order of the pages the controls sit in, which is probably an argument for forgoing tabindex all together.
If the tabindex attribute is not assigned to all fields, JAWS first moves through the items with a tabindex assigned, then moves through the other form fields and links in the order they appear on the page.
This is interesting. I have some "global" controls I was going to have sit "on top" of the content, and float it right. Now it sounds like I should put the global controls after the content, and use absolute positioning to put them on the right. Constrains the page-flow a bit more than I would like, but it is probably worth it.
On the other hand, the first form element in the global control set is "turn global controls on/off" so perhaps that won't be that much of a bother.
~ethan