[Catalyst] C::C::FB and captchas or similar

Octavian Rasnita orasnita at gmail.com
Mon Mar 19 17:33:45 GMT 2007


>
> Hmmm... I haven't been focusing on this, but it is worth a read.  I am
> working on making the pages as simple as possible (no AJAXian-ness) for
> a combination of aesthetic and personal time reasons.  Any pointers to
> document design elements to encourage accessibility you can provide
> would be appreciated.

Hi,

The most important things that come to my mind, are the following:
1. All the relevant images should use an alt attribute. A relevant image is 
one that is a label for a link, or a photo that could be saved by the 
visitors, but not a one-pixel image. The images that are not important, 
should use alt="".

2. Dupplicate links, one after another, should be avoided. I have seen many 
cases where an image icon is followed by a text, and each of them are a 
separate link to the same page.

3. If you need to use captcha, specify in the alt attribute of the image, 
something like "If you can't see this image, you can do the following thing 
to access the page..."... because otherwise the blind users won't understand 
that they need to enter a text from an image, and they might submit that 
form for more times, without success. Of course, an alternative way of 
access should be offered.

4. If you present the data like a table, use an html table, and not 
preformatted text. Also, use a "normal" table layout and not 2 parallel 
tables that don't have any relation between them, but only visual.
Also, the first column and the first row of the table should contain data 
and not graphics that makes the table more nice, because the cells from 
those rows are spoken as row and column heads.
For more complicated tables, that contain column or row headers which span 
on more lines or columns, and have sub-headers, there are some rules for 
naming those headers, in order to associate those headers with the cells of 
the table, but I don't remember those rules. I think they can be found on 
w3c.org.

5. A very helpful thing is to begin the content of the page with a heading. 
It is much useful than putting a link at the top of the page with "skip" 
navigation" or "skip to content".
The blind users can jump directly to that heading, with a single hotkey. If 
the page have more other headings, it is also very helpful.

6. Some sites offer a "skip to contents" link, which is invisible, and it is 
put at the top of the page.
It is a one-pixel image link with a "Skip to content" alt attribute, that 
points to the beginning of the page content. Without it and without a 
heading for jumping directly to the important content, the users need to 
read all the navigation links in every page, one by one.

7. If possible, don't use Javascript at all.
If you need to use Javascript for validating a form, it is very ok, but use 
it in such a way that if the browser doesn't support Javascript, the form 
should also work.
So, don't put the onSubmit() event to send the form. Use onSubmit() just for 
validating, and return an alert if the form was not filled correctly, but 
return true and allow the form to be submitted in the standard 
non-javascript way.
(This is not a recommendation regarding the accessibility for the blind 
especially).

If you need to use Javascript that create menus, make sure that the menus 
are also accessible when the browser doesn't support Javascript. I have seen 
a menu made in Javascript that creates a list with sub-lists with links, and 
without Javascript, that list of lists is shown, and the screen readers sees 
it like a common list with links that can be accessed. The Javascript code 
just formats it and shows it like a menu.
Other menus are not accessible absolutely at all.
I have seen other menus made with Javascript that present a list of links, 
that could be clicked by the blind users, then the page is re-loaded, and a 
sub-list of links appears for that list element that was clicked, but it is 
not as friendly as the first one I've told about.

Don't use Javascript in the href=".." attribute of links. Use it in the 
onClick() event of that link instead if necessary.
If using it in the href attribute, that link cannot be opened in another 
window with shift+Enter (or right click, open in new window), and some blind 
users prefer this method, because after reading the opened page, they can 
close the window and return to the previous window, and the focus remains on 
the link that opened the window, so the users don't need to find that point 
again.
This way the search engines will also index the page targetted unlike when 
using javascript-based links.

8. Don't use href="#" and then use an onClick() event that open the page, 
possibly in another window.
Those links cannot be open in a new window if the visitor choose that, and 
they cannot avoid opening a new window if they want to not have a new 
window.

9. Even if opening a new window, don't hide the menus and the address bar.

10. Don't use Javascript to write something in the status bar. That text 
never helps, but it doesn't let the browser inform the user when the page 
has finished loading.

11. When presenting lists, use html lists, and not a simple list of bullet 
chars followed by a text. The screen readers inform the users about the 
number of the list elements, offer the possibility to jump at the end or 
beginning of the list, or jump to the next element in list...

12. Don't use labels for links that can be understood only in context.
So don't use "click here" or "here" links because if the user will jump from 
a link to another, only that text will be heared, or maybe his screen reader 
will make a list of links, and it could be pretty difficult to go to the 
page and see what is the link "click here" for.

13. Don't make an alternative page for the blind users, because most of them 
won't visit that page. That kind of pages are usually not updated, and 
that's why they don't visit those pages.
A site map could be helpful though, if it contains direct links to all the 
web pages from the site.

14. The pages with frames are accessible, but it is a good idea to avoid 
using frames.

15. Using css positioning is nice and recommended, but if the position of 
the elements on the page is in a different order than the order of those 
elements in the html code, it could make the web page structure pretty hard 
to understand.
For example, the user might move the virtual cursor at the top of the page, 
and when pressing tab it will land on a certain link, but if he will press 
the down arrow, the cursor might be on another element.
Unfortunately this is the main "advantage" of css, but the screen readers 
are not very good for working with this type of pages...

16. If using Flash annimations, there are some accessibility recommendations 
on the Macromedia web page, but they are not extraordinary accessible 
anyway, so Flash should be avoided, or the content should be presented as 
common html also.

17. When inserting direct links to .doc or .pdf files, specify this in the 
title of the link, like [pdf] or [doc] for letting the users know what type 
of link is that.
Those files are accessible for screen readers, but not when they are loaded 
with the browser plugin, and most of the times, if they are loaded in the 
browser, the computer freezes for a while, and it is not nice at all.

18. When using forms, don't use Javascript to automaticly send them when 
something changes in the form, for example when the user changed the active 
element in a combo box.
The blind must select with the keyboard all the combo box elements one by 
one, or jump to the wanted one if they know the start letter, and if the 
form is submitted automaticly, it is send after the first element chosen.
Also, those forms that get submitted after selecting something in a combo 
for inserting other elements in another combo, is not nice at all.
If the javascript code contain all the necessary elements and fill all the 
combos without needing to send the form for more times, it is more easy to 
use.

19. Use standard forms, and not forms that are created by Javascript, 
because most of them are not accessible for the blind.
For example, those Javascript programs like HTMLArea that can be used to 
format a text in a form are not accessible at all.
Not to mention that the html code created by that kind of programs is 
horrible, doesn't respect W3C recommendations, but it is not valid html at 
all.

20. Don't force the refresh of the page, without allowing the user to choose 
if he wants this or not.
After each refresh, the focus goes at the top of the page, and the user must 
go down and find the last position he was when reading that page.

I think these are the most important things, and I hope I didn't forget 
some.


Octavian




More information about the Catalyst mailing list