Please also see my current work at The Enabled Web.

Section 508 manual evaluation

This procedure is designed to be used in parallel with an automated accessibility evaluation report produced by HiSoftware® or similar tools; it could also be used on its own without automated assistance. A companion reference guide is linked from each section and an evaluation tools page points to helpful software for developers.

This document is also useful in a training program for developers learning accessible techniques; please see our workshop description on this site. Developers familiar with these techniques may often find that a simple quick-check procedure is sufficient to identify most barriers to accessibility on a page.

Automated evaluation tools only check things that can be evaluated by a computer. These definitely do not include the human factors that are contained here. Even looking at human factors cannot guarantee accessibility for every possible user, but following this procedure will certainly represent a good-faith effort to make a page or site as accessibile as possible today.

The urgency of each question is identified as follows:

Syntax validation

Syntax validation reference

  1. Is the page valid HTML? (fix if "no") Best practice: XHTML 1.0 Strict or Transitional.
  2. Does the page use valid CSS? (fix if "no") Best practice: CSS should be entirely separate from HTML code.

Semantic validation

Semantic validation reference

  1. Must repair: Does the text of each link describe where the link goes? (fix if "no")
  2. Must repair: Do any links with the same text point to different places? (fix if "yes")
  3. Best practice: are headings properly nested by level? (fix if "no")
  4. Best practice: do headings accurately reflect the structure of the document content? (fix if "no")

Checkpoint A, text equivalents

Checkpoint A reference

  1. Must repair: Do images that convey content have equivalent alt-text? (fix if "no") Best practice: if you also use the title attribute, it should not duplicate the alt text. (Updated November 2007)
  2. Must repair: Do purely decorative images have empty alt-text (alt="")? (fix if "no")
  3. Does alternate text make sense in the context of the page as spoken? (fix if "no")
  4. Do images that convey complex content have longdesc attributes or equivalent text content elsewhere on the page? (fix if "no") May have to be evaluated by a domain expert.
  5. Does text content contained in images disappear when images are not available? (fix if "yes") Best practice: minimize the amount of text contained in images; use CSS for typography instead.
  6. Must repair: Does image map area alt-text describe the link destination correctly? (fix if "no") Best practice: if you also use the title attribute, it should not duplicate the alt text. (Updated November 2007)

Checkpoint B, multimedia equivalents

Checkpoint B reference

  1. Is synchronized captioning provided for all spoken content? (fix if "no"; may require a temporary alternate means of delivering the content)
  2. Additional review items may be provided later.

Checkpoint C, color

Checkpoint C reference

  1. Must repair: Is information conveyed by color also conveyed by context, markup, graphic coding, or other means? (fix if "no")
  2. Does the contrast between foreground and background colors have a luminosity contrast ratio of least 5:1 for both normal vision and color blindness? (fix if "no") Best practice: 10:1. (see reference for this checkpoint)
  3. Is a correct contrast ratio maintained when images are not available? (fix if "no")

Checkpoint D, styles

Checkpoint D reference

  1. Must repair: Are styles used to simulate headings or other semantic markup? (fix if "yes")
  2. With all styles disabled, is color and font information rendered in the browser's default style? (fix if "no")
  3. With all styles disabled, are headings, paragraphs, and lists obvious and sensible? (fix if "no")
  4. With all styles disabled, does the order of the page content make sense as read? (fix if "no")
  5. Best practice: With all styles disabled, is most text (other than logos and banners) rendered in text rather than images? (fix if "no")
  6. Best practice: With all styles disabled, does any content appear that was invisible before? (fix if "yes")

Checkpoint E, server-side image maps

Checkpoint E reference

  1. Does this page use server-side image maps? (fix if "yes") Comment: there is no reason to use these today, despite the exception allowed in checkpoint f.

Checkpoint F, client-side image maps

Checkpoint F reference

  1. See Checkpoint A for alt-text requirement.
  2. Best practice: Is there a non-graphic alternative to the image map, for example a drop-down selection control? (fix if "no")

Checkpoint G, simple tables

Checkpoint G reference

  1. Must repair: For tables containing data, are <th> elements used in the first row (and first column, if applicable)? (fix if "no")
  2. Must repair: Do <th> elements contain the scope (="col" or ="row") attribute? (fix if "no")
  3. Best practice: For tables containing data, is the summary attribute used to explain the meaning of the table if it is not otherwise evident from context? (fix if "no")
  4. Must repair: For tables that are used for layout only, are <th> elements or the summary attribute used at all? (fix if "yes") Best practice: minimize use of tables for layout only, and avoid deeply-nested or complex layout tables altogether.
  5. Must repair: If tables are used at all for layout, does the content linearize properly when layout tables are turned off? (fix if "no")

Checkpoint H, complex tables

Checkpoint H reference

  1. Must repair: For tables containing data, are <th> elements used in all header rows (and columns, if applicable)? (fix if "no")
  2. Must repair: Does each <th> element contain the id attribute? (fix if "no")
  3. Must repair: Does each <td> element contain a headers attribute that associates it with its column and row headers? (fix if "no") Note: <id> and <headers> serve the same function for complex tables that <scope> does for simple tables.
  4. Are the summary attribute and <thead> and <tbody> elements used to clarify the table meaning and structure if needed? (fix if "no")
  5. Best practice: use complex tables only if the data really makes sense in this format; otherwise, find a simpler way to present the data to all readers.
  6. Note: see Checkpoint G above for tables that are used for layout only. (Both checkpoints updated December 2007.)

Checkpoint I, frames

Checkpoint I reference

  1. Must repair: Does each <frame> element have a meaningful title attribute? (fix if "no")
  2. Must repair: Does the page have equivalent content in a <noframes> element for user agents that do not support frames? (fix if "no")
  3. Best practice: don't use frames.

Checkpoint J, flicker

Checkpoint J reference

  1. Must repair: Does any page element flicker at an unhealthy rate? (fix if "yes")
  2. Best practice: Does any element on the page move at all? (fix if "yes" unless the moving element conveys information relevant to the page content, and then refer to checkpoints B, L, and M)

Checkpoint K, text only

Checkpoint K reference

  1. Does this page have a text-only version? (fix if "yes" by making the page compliant with the rest of the checkpoints) Comment: there is no reason today to have separate versions, despite the grudging exception contained in this checkpoint. For quick repair, a text version must contain the same information as the basic page.

Checkpoint L, scripts

Checkpoint L reference

  1. Must repair: Are HTML event handlers accessible to both mouse and keyboard users? (fix if "no" unless mouseovers are purely decorative; e.g., changing color of a graphic link.) Best practice: use CSS :hover in place of JavaScript and graphic links.
  2. Must repair: Is all content and functionality generated by scripts also provided to user agents that do not support scripts? (fix if "no" unless "functionality" is purely decorative). Comment: Don't use href="javascript:..." for anything; it's not a URI!
  3. Best practice: Is modern "unobtrusive" JavaScript, compliant with W3C standards including WAI-ARIA, used in place of older coding techniques? (fix if "no") Comment: when done correctly, these coding techniques do not require the <noscript> element.

Checkpoint M, applets and plug-ins

Checkpoint M reference

  1. Are links provided to any special readers or plug-ins that are required to interpret page content? (fix if "no")
  2. Do special readers or plug-ins comply with the requirements of Section 508 paragraphs 1194.21(a)-(l), the Subpart B technical standards for software? (fix if "no"; requires separate evaluation)
  3. Are documents that are presented in commonly-supported formats such as PDF and Word constructed so as to be accessible? (fix if "no"; requires separate evaluation)

Checkpoint N, forms

Checkpoint N reference

  1. Must repair: Does each <input> element or control (except buttons) have an associated and visible <label> element or title attribute? (fix if "no")
  2. Must repair: Are all cues for filling out the form (mandatory fields, help boxes, error messages, and so on) available to users of assistive technology? (fix if "no")
  3. Is the tab order to reach the form and the tab order between form elements consistent with the normal order of entering form data? (fix if "no")
  4. Are logically-related groups of form elements identified with appropriate <fieldset>, <legend>, or <caption> elements? (fix if "no")
  5. Is placeholder text, if used, redundant or distracting to users of assistive technology? (fix if "yes") Comment: most properly labeled form elements no longer benefit from placeholder text.

Checkpoint O, skip links

Checkpoint O reference

  1. Must repair: Can a user navigate over groups of links, between multiple groups of links, and between sections of the page content by means of section headings or visible and audible local links? (fix if "no") Best practice: headings are most helpful for users of modern assistive technology; "skip" links and headings can be used in combination where appropriate.

Checkpoint P, timed response

Checkpoint P reference

  1. Must repair: If a timed response is required, is the user alerted and given sufficient time to indicate that more time is required? (fix if "no"; see also next item)
  2. In a timed environment such as an examination, are users who need more time accommodated in an appropriate alternative way? (fix if "no"; may be organizational rather than technical solution)

User validation

User validation reference

  1. Does all text (except in banner graphics) enlarge or shrink in response to changes in browser text size settings? (fix if "no")
  2. Does text enlarged with browser settings wrap within columns? (fix if "no")
  3. Do columns, page elements, or text lines overlap each other when text is enlarged with browser settings? (fix if "yes")
  4. Do actual low vision users encounter any remaining barriers? (fix if "yes") Comment: this and the following two items may be simulated, although actual users are best.
  5. Do actual blind users encounter any remaining barriers? (fix if "yes")
  6. Do actual users with other disabilities encounter any remaining barriers? (fix if "yes")