I had an excellent suggestion made over in the FileField queue regarding the accessibility of the file upload widget. This issue (#638526: Accessibility of the upload) also made some good suggestions that could be applied to the larger scope of CCK.
Essentially the suggestion is to use fieldsets when possible because the label of the fieldset is announced when using text-to-speech applications such as JAWS or VoiceOver. Right now we're simply using a table header for the whole table instead of a label or some other markup that screen-readers can pick up.
So for example (see screenshot):
- Set up a multivalue text field on a content type.
- Turn on JAWS (for Windows, free for 15 minutes of demo usage) or VoiceOver (built-in to Mac OS X under the Univeral Access preference pane).
- Open IE (Windows) or Safari (Mac) and visit node/add/[type].
- Tab through the elements until you reach the text fields. Instead of something useful like "Names of participants, text field, blank", you just get "text field, blank". Which gives you absolutely no indication of what those textfields are used for.
| Comment | File | Size | Author |
|---|---|---|---|
| #1 | content_multifield_accessiblity.patch | 2.52 KB | quicksketch |
| multivalue-textfield.png | 10.66 KB | quicksketch |
Comments
Comment #1
quicksketchThis isn't as seamless as I'd hoped, but it provides a good starting point. Instead of using the table header it now uses a fieldset around the table, with some basic CSS to help match the existing styles. Unfortunately for visual consistency we need to add a colon after the label, since this isn't added automatically for us like it is for other field elements.