This page contains an overview of Section 508 requirements pertaining to the web and documents that are commonly found on the web. The checkpoints are presented in the order they appear in the law.
The list of the Section 508 requirements for web content is here: http://www.access-board.gov/sec508/standards.htm#22
The topic discussions below were originally written by Troy Hurteau in his online article Accessibility In a Nutshell, Section 508 Web Requirements Demystified. His remarks have been edited and used here because they are plain-spoken and to the point.
Discussion: This item means exactly what is says. If it's not text on a web page (you can test this by trying to copy/paste anything in a web page from the browser to notepad) then you have to provide some way for it to be interpreted as text. The reason this is so common is images. Images are everywhere on modern web sites.
Item A is also hotly debated. Most people will agree that not every image has to have real text associated with it. Many images in a web page's design might be strictly structural in nature. No one wants to encounter the words "Spacer GIF" fifty times in one document. It is perfectly acceptable to give some images empty "alt" text (alt="", no spaces). The fact remains that all images in a site must have an alt attribute, even if it's blank. If an image doesn't have alt text, the browser will give it alt text, the name of the file. File names for most images are not useful information, and are certainly never good descriptions.
If an image that does need alt text (a photo for example) would require an especially long text to describe it, you can create a "D-link". This is the upper case letter D hyper linked to an HTML document that gives the full description. The alt text for the image should now give a brief description of the image and then say something like, "See the D-Link for a full description."
Many documents refer to the "longdesc" attridute instead of D links. "longdesc" is the recommend standard, but many browsers still don't support it properly. D-links are ugly, but work.
This problem is so prolific because it's easy to overlook and can happen dozens of times on a single page. It is also the most straight-forward to fix.
Discussion: Other elements in a page can also need textual representation. Flash animations are one example. Movie clips, Power Point slides, and and other video or audio media.
Discussion: This item indicates that you shouldn't try to "color code" your web site. Color is a great indicator for those who can see it, but for others it will make things more confusing. If you want to draw attention to text, bold or italicize it.
Discussion: If you know what a style sheet is, all you need to know is that your document has to be readable if someone chooses not to use the style sheet. Style sheets are a way to control the look of HTML consistently across multiple documents. This can be as simple as setting the link color and font size, or as complicated as almost completely defining the layout of your page. You can turnoff style sheets in any browser to get an idea of what your pages look like without style sheets. You should test in a graphical browser with style sheets turned off, not a text browser to test for this requirement. If you page is hard to use in an "old" browser because it doesn't understand the style sheet then you are not meeting this requirement. Go back to the drawing board.
Discussion: Very few applications actually require server-side image maps. Good browsers are designed to make client-side image maps usable. Use client-side image maps. If you have to use Server-Side image maps, include a text link to every possible url the server-side image map might take the user.
Discussion: See above remarks for checkpoint (e).
Discussion: HTML defines a special tag for table row and column headers. Use the TH tag for any cell that is a header. Specify if it's a column header or row header. If you have a complex data table pick-up or look-up a good HTML reference. It will tell you exactly how to define your tabular data so that it's compliant.
Do not use TH in layout tables.
Discussion: If you have defined table header cells you are half way there. If a table has more than two levels of column or row headers then you will have to explicitly define which header each cell goes with. You don't have to do this for simple tabular data.
Discussion: If you don't understand frames, don't use them. If you understand frames, please don't use them unless you really have to (or really really want to). If you must use frames you have to title your documents. You should title all documents anyway.
Discussion: If you have any "animated graphics" on a page be sure that they don't create a blinking or flickering effect. If they do, and must remain that way the cannot "blink" in excess of twice per second.
Don't ever use the "blink tag" it's deprecated. Don't use blinking graphics they are distracting.
(k) A text-only page, with equivalent information or functionality, shall be provided to make a web site comply with the provisions of this part, when compliance cannot be accomplished in any other way. The content of the text-only page shall be updated whenever the primary page changes.
Discussion: If you can't meet the requirements any other way you can make a plain text copy of your content. The problem is that this is almost always just as much work as working to meet the requirements in the first place.
The exception to this is when you can write a PHP script to do your work for you. Usually this is only possible if you are already compliant or are nearly compliant, so it's a catch 22.
(l) When pages utilize scripting languages to display content, or to create interface elements, the information provided by the script shall be identified with functional text that can be read by assistive technology.
(m) When a web page requires that an applet, plug-in or other application be present on the client system to interpret page content, the page must provide a link to a plug-in or applet that complies with §1194.21(a) through (l).
Discussion: This means if you have a page that requires a plug-in to use, you have to link (to a compliant page) to the download for that plug-in on every page that uses it. Further more the plug-in itself must comply with other "non-web" software accessibility standards.
As per item A and B, the content you make for that plug-in must also be compliant when used in a compliant plug-in.
(n) When electronic forms are designed to be completed on-line, the form shall allow people using assistive technology to access the information, field elements, and functionality required for completion and submission of the form, including all directions and cues.
Discussion: For HTML forms, this mainly means that the user should be able to tab through the items in a logical order, and that if your form uses the "label tag", wrapped around the element and it's text label to clearly associate these to a text reader.
Discussion: This is perhaps the most confusing point of accessibility to some. You can provide anchor links that will make the page more accessible when rendered in a "text only" view. You can attach these anchor links to "spacer" or "invisible" images with proper alt text, so that users that get a text only view know what the links are for and users that don't need them won't see them. This will let a user get directly to content they want if they already know what their navigation options are and they don't want to navigate yet.