Location: PHPKode > projects > OpenWolf Guidelines Validator > openWolf 0.9.9/wai/html_output.php
<?php

/*************************************************

openWolf - an HTML accessibility guidelines validator
Author: Geoff Munn (hide@address.com)
Version: 0.9.9

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

You may contact the author of openWolf by e-mail at: hide@address.com

The latest version of openWolf can be obtained from:
http://openwolf.sourceforge.net/

*************************************************/

	$html_header=<<<EOT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>Web Guidelines Validator results</title>
	<link rel="stylesheet" href="$default_theme/html/styles.css" type="text/css">
	<link rel="stylesheet" href="wai/html/styles.css" type="text/css">
	<script type="text/javascript" src="wai/html/scripts.js"></script>
</head>
<body class="results">
EOT;

	
	$html_footer=DEFAULT_FOOTER . "\n</body>\n</html>";

$html_appendix=<<<EOT
<hr>
<h2> <a name="validation">Appendix A. -- Validation</a></h2>

<p><strong>Validate accessibility with automatic tools and human
review. Automated methods are generally rapid and convenient but cannot
identify all accessibility issues. Human review can help ensure
clarity of language and ease of navigation.</strong>

<p>Begin using validation methods at the earliest stages of
development.  Accessibility issues identified early are easier to
correct and avoid.</p>

<p>Following are some important validation methods, discussed in more
detail in the <a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS#validation"> section
on validation in the Techniques Document</a>.</p>

<ol>
<li>Use an automated accessibility tool and browser validation tool.
Please note that software tools do not address all accessibility
issues, such as the meaningfulness of link text, the applicability of
a <a href="#text-equivalent" title="Definition of text equivalent"><span
class="dfn-instance">text equivalent</span></a>, etc.</li>

<li>Validate syntax (e.g., HTML, XML, etc.).</li>

<li>Validate style sheets (e.g., CSS).</li>

<li>Use a text-only browser or emulator.</li>

<li>Use multiple graphic browsers, with: 

<ul>
<li>sounds and graphics loaded,
<li>graphics not loaded,
<li>sounds not loaded,
<li>no mouse,
<li>frames, scripts, style sheets, and applets not loaded
</ul>
</li>

<li>Use several browsers, old and new.</li>

<li>Use a self-voicing
browser, a screen reader, magnification software, a small display,
etc.</li>

<li>Use spell and grammar checkers. A person reading a page with a
speech synthesizer may not be able to decipher the synthesizer's best
guess for a word with a spelling error. Eliminating grammar problems
increases comprehension.</li>

<li>Review the document for clarity and simplicity.
Readability statistics, such as those generated by some word
processors may be useful indicators of clarity and simplicity.  Better
still, ask an experienced (human) editor to review written content for
clarity. Editors can also improve the usability of documents by
identifying potentially sensitive cultural issues
that might arise due to language or icon usage.

<li>Invite people with disabilities to review documents.  Expert
and novice users with disabilities will provide valuable feedback
about accessibility or usability problems and their severity.

</ol>

<hr>
<h2> <a name="glossary">Appendix B. -- Glossary </a></h2>

<dl>

<dt class="glossary"><a name="accessible"><dfn><strong>Accessible</strong></dfn></a></dt>
<dd class="glossary">Content is accessible when it may
be used by someone with a disability.</dd>

<dt class="glossary"><a name="applet"><dfn><strong>Applet</strong></dfn></a></dt>

<dd class="glossary">A program inserted into a Web page.</dd>

<dt class="glossary"><a name="assistive-tech"><dfn><strong>Assistive technology</strong></dfn></a></dt>

<dd class="glossary">
Software or hardware that has been specifically designed to assist
people with disabilities in carrying out daily activities.  Assistive
technology includes wheelchairs, reading machines, devices for
grasping, etc.  In the area of Web Accessibility, common
software-based assistive technologies include screen readers, screen
magnifiers, speech synthesizers, and voice input software that operate
in conjunction with graphical desktop browsers (among other <a
href="#user-agent"><span class="dfn-instance">user
agents</span></a>). Hardware assistive technologies include
alternative keyboards and pointing devices.
</dd>

<dt class="glossary"><a name="ascii-art"><dfn><strong>ASCII art</strong></dfn></a></dt>

<dd class="glossary">ASCII art refers to text characters and symbols
that are combined to create an image. For example <abbr
title="smiley"> ";-)"</abbr> is the smiley emoticon. The following is
an ascii figure showing the relationship between flash frequency and
photoconvulsive response in patients with
eyes open and closed [<a name="ascii-chart" href="#authoring-tool">skip
over ascii figure</a> or 
consult a <a rel="Alternate" href="wai/html/ascii-chart-longdesc.html">description
of chart</a>]:

<pre> 
  %   __ __ __ __ __ __ __ __ __ __ __ __ __ __   
100 |             *                             |
 90 |                *  *                       |
 80 |          *           *                    |
 70 |             @           *                 |
 60 |          @                 *              |
 50 |       *        @              *           |
 40 |                   @              *        |
 30 |    *  @              @  @           *     |
 20 |                                           |
 10 |    @                       @  @  @  @     |
      0  5 10 15 20 25 30 35 40 45 50 55 60 65 70
      Flash frequency (Hertz)
</pre>

</dd>

<dt class="glossary"><a name="authoring-tool"><dfn><strong>Authoring tool</strong></dfn></a></dt>

<dd class="glossary"><abbr title="Hypertext Markup
Language">HTML</abbr> editors, document conversion tools, tools that
generate Web content from databases are all 
authoring tools. Refer to the
"Authoring Tool Accessibility Guidelines" (<a
href="#ref-WAI-AUTOOLS">[WAI-AUTOOLS]</a>) for information about developing
accessible tools.

<dt class="glossary"><a name="backward-compatible"><dfn><strong>Backward compatible</strong></dfn></a></dt>

<dd class="glossary">Design that continues to work with earlier versions
of a language, program, etc.</dd>

<dt class="glossary"><a name="braille"><dfn><strong>Braille</strong></dfn></a></dt>

<dd class="glossary">Braille uses six raised dots in different patterns to represent
letters and numbers to be read by people who are blind with their
fingertips. The word "Accessible" in braille follows:</dd>
<dd class="glossary"><img src="wai/html/access.gif" width="300" height="75"
alt="Accessible"> 

<dd class="glossary">A <a name="braille-display"><dfn><strong>braille display</strong></dfn>,</a>
commonly referred to as a "dynamic braille display," raises or lowers
dot patterns on command from an electronic device, usually a
computer. The result is a line of braille that can change from moment
to moment. Current dynamic braille displays range in size from one cell (six
or eight dots) to an eighty-cell line, most having
between twelve and twenty cells per line.</dd>

<dt class="glossary"><a name="content-developer"><dfn><strong>Content
developer</strong></dfn></a></dt>

<dd class="glossary">Someone who authors Web pages or designs Web sites.</dd>

<dt class="glossary"><a name="deprecated"><dfn><strong>Deprecated
</strong></dfn></a></dt>

<dd class="glossary">
A deprecated element or attribute is one that has been outdated by
newer constructs. Deprecated elements may become 
obsolete in future versions of HTML. The
<a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS#html-index">
index of HTML elements and attributes in
the Techniques Document</a> indicates which elements
and attributes are deprecated in HTML 4.0.</dd>
<dd class="glossary">
Authors should avoid using deprecated elements and attributes.
User agents should continue to support for
reasons of backward compatibility.
</dd>

<dt class="glossary"><a name="device-independent"><dfn><strong>Device independent</strong></dfn></a></dt>

<dd class="glossary">
Users must be able to interact with a user agent
(and the document it renders) using the supported input and output
devices of their choice and according to their needs. 
Input devices may include pointing devices,
keyboards, braille devices, head wands, microphones, and
others. Output devices may include monitors, speech synthesizers, and
braille devices.</dd>
<dd class="glossary">
Please note that "device-independent support" does not mean that
user agents must support every input or output device. User agents
should offer redundant input and output mechanisms for those devices
that are supported.  For example, if a user agent supports keyboard
and mouse input, users should be able to interact with all features
using either the keyboard or the mouse.
</dd>

<dt class="glossary"><a name="content-structure"><dfn><strong>Document Content,
Structure, and Presentation</strong></dfn></a></dt>

<dd class="glossary">The content of a document refers to
what it says to the user through natural language,
images, sounds, movies, animations, etc. 
The structure of a document is how it is 
organized logically (e.g., by chapter, with an
introduction and table of contents, etc.). 
An <a href="#element"><span class="dfn-instance">element</span></a> 
(e.g., P, STRONG, BLOCKQUOTE in HTML) that specifies document
structure is called a <a name="structural-element">structural
element</a>. The presentation of a
document is how the document is rendered (e.g., as print, as a
two-dimensional graphical presentation, as an text-only presentation,
as synthesized speech, as braille, etc.)
An <a href="#element"><span class="dfn-instance">element</span></a> 
that specifies document presentation (e.g., B, FONT, CENTER) 
is called a <a name="presentation-element">presentation
element</a>. 
</dd>

<dd class="glossary">
Consider a document header, for example. 
The content of the header is what 
the header says (e.g., "Sailboats"). In HTML,
the header is a structural element
marked up with, for example, an H2 element.
Finally, the presentation of the header might be
a bold block text in the margin, a centered line of text,
a title spoken with a certain voice style (like an aural
font), etc.
</dd>

<dt class="glossary"><a name="dhtml"><dfn><strong>Dynamic
HTML (DHTML)</strong></dfn></a></dt> 
<dd class="glossary">
<abbr title="Dynamic HTML">DHTML</abbr> is the marketing term applied to
a mixture of standards including HTML, 
<a href="#style-sheet" title="Definition of style sheets"><span class="dfn-instance">
style sheets</span></a>, the
Document Object Model <a href="#ref-DOM1">[DOM1]</a>
and scripting.
However, there is no W3C specification that formally defines 
DHTML.  Most guidelines may be applicable
to applications using DHTML, however the following guidelines focus on
issues related to scripting and style sheets: <a href="#gl-provide-equivalents" class="noxref">guideline 1</a>,
<a href="#gl-structure-presentation" class="noxref">guideline 3</a>, <a href="#gl-new-technologies" class="noxref">guideline 6</a>, 
<a href="#gl-movement" class="noxref">guideline 7</a>, and <a href="#gl-device-independence" class="noxref">guideline 9</a>.  </dd>

<dt class="glossary"><a name="element"><dfn><strong>Element</strong></dfn></a>
</dt>
<dd class="glossary">
<dd>This document uses the term "element" both
in the strict SGML sense (an element is a syntactic construct) and
more generally to mean a type
of content (such as video or sound) or a logical 
construct (such as a header or list). The second sense
emphasizes that a guideline inspired by HTML 
could easily apply to another markup language.

<dd class="glossary">
Note that some (SGML) elements have content that is rendered
(e.g., the P, LI, or TABLE elements in HTML), some are replaced
by external content (e.g., IMG), and some affect
processing (e.g., STYLE and SCRIPT cause information
to be processed by a style sheet or script engine).
An element that causes text characters
to be part of the document is called a <a name="text-element">
text element</a>.
</dd>

<dt class="glossary"><a name="equivalent"><dfn><strong>Equivalent</strong></dfn></a>
</dt>

<dd class="glossary">
Content is "equivalent" to other content when both fulfill essentially
the same function or purpose upon presentation to the user. 
In the context of
this document, the equivalent must fulfill  essentially the same function
for the person with a disability (at least insofar as is feasible, given
the nature of the disability and the state of technology), as the primary
content does for the person without any disability.
For example, the text "The Full Moon" might convey the same information
as an image of a full moon when presented to users. Note that
equivalent information focuses on <strong>fulfilling
the same function</strong>. If the image is
part of a link and understanding the image is crucial
to guessing the link target, an
equivalent must also give users an idea of the link target.
Providing equivalent information for inaccessible
content is one of the primary ways
authors can make their documents accessible to people with
disabilities.
</dd>

<dd class="glossary">
As part of fulfilling the same function of content
an equivalent may involve a description of that content
(i.e., what the content looks like or sounds like).
For example, in order for users to understand
the information conveyed by a complex chart, 
authors should describe the visual information in the chart.
</dd>

<dd class="glossary">
Since text content can be presented to the user as synthesized
speech, braille, and visually-displayed text, these guidelines
require <a name="text-equivalent"><dfn><strong>text
equivalents</strong></dfn></a> for graphic and audio information. 
Text equivalents must be
written so that they convey all essential content.
<a name="non-text-equivalent"><dfn><strong>Non-text
equivalents</strong></dfn></a> (e.g., an
auditory description of a visual presentation, a video of a person
telling a story using sign language as an 
equivalent for a written story, etc.)
also improve accessibility for 
people who cannot access visual information
or written text, including many individuals with blindness,
cognitive disabilities, learning disabilities, and deafness.

<dd class="glossary">
Equivalent information may be provided in a number of ways, 
including through attributes (e.g., a text value for the "alt"
attribute in HTML and SMIL), as part of element content (e.g., the
OBJECT in HTML), as part of the document's prose, or via a linked
document (e.g., designated by the "longdesc" attribute in HTML or a <a
name="d-link"><dfn>description link</dfn></a>).  Depending on the complexity of
the equivalent, it may be necessary to combine techniques (e.g., use
"alt" for an abbreviated equivalent, useful to familiar readers, 
in addition to "longdesc" for a link to more complete information, 
useful to first-time readers).  
The details of how and when to provide equivalent information
are part of the  Techniques Document 
(<a href="#ref-TECHNIQUES">[TECHNIQUES]</a>).
</dd>

<dd class="glossary">
A <a name="text-transcript"><dfn><strong>text transcript</strong></dfn></a> 
is a text equivalent of audio information that includes spoken
words and non-spoken sounds such as sound effects. 
A <a name="caption"><dfn><strong>caption</strong></dfn></a> is a text
transcript for the audio track of a video presentation that is
synchronized with the video and audio tracks. Captions are generally
rendered visually by being superimposed over the video, 
which benefits people who are deaf and
hard-of-hearing, and anyone who cannot hear the audio (e.g.,
when in a crowded room). 
A <a name="collated-text-transcript"><dfn><strong>collated
text transcript</strong></dfn></a> combines (collates) captions
with text descriptions of video information
(descriptions of the actions, body language, graphics, and scene
changes of the video track). These text equivalents make 
presentations accessible to people who are deaf-blind and to people who
cannot play movies, animations, etc. It also makes the information
available to search engines.
</dd>

<dd class="glossary">
One example of a non-text equivalent is an <a
name="auditory-description"><dfn><strong>auditory description</strong></dfn></a>
of the key visual elements of a presentation. 
The description is either a
prerecorded human voice or a synthesized voice (recorded or generated
on the fly). The auditory description
is synchronized with the audio track of the presentation, usually
during natural pauses in the audio track. 
Auditory descriptions include information about actions,
body language, graphics, and scene changes.
</dd>

<dt class="glossary"><a name="image"><dfn><strong>Image</strong></dfn></a></dt>

<dd class="glossary">A graphical presentation.</dd>

<dt class="glossary"><a name="image-map"><dfn><strong>Image map</strong></dfn></a></dt>

<dd class="glossary">An image that has been divided into regions with associated
actions. Clicking on an active region causes an action to occur.</dd>

<dd class="glossary"><a name="client-side-map">When a user clicks on an active region of a 
client-side image map,</a>
the user agent calculates in which region the click occurred and
follows the link associated with that region.  
<a name="server-side-map">Clicking on an active
region of a server-side image map</a> causes the coordinates of the click
to be sent to a server, which then performs some action.

<dd class="glossary">Content developers 
can make client-side image maps accessible by providing
device-independent access to the same links associated with the image
map's regions. Client-side image maps allow the user agent to provide
immediate feedback as to whether or not the user's pointer is over an
active region.
</dd>

<dt class="glossary"><a name="important"><dfn><strong>Important</strong></dfn></a></dt>

<dd class="glossary">Information in a document
is important if understanding that information is
crucial to understanding the document.</dd>

<dt class="glossary"><a name="linearized-table"><dfn><strong>Linearized table</strong></dfn></a></dt>

<dd class="glossary">A table rendering process where the contents of
the cells become a series of paragraphs (e.g., down
the page) one after another.  The paragraphs will occur in the same
order as the cells are defined in the document source.
Cells should make sense when read in order and should
include <a href="#structural-element">structural
elements</a> (that create paragraphs, headers, lists, etc.)
so the page makes sense after linearization.
</dd>

<dt class="glossary"><a name="link-text"><dfn><strong>Link text</strong></dfn></a></dt>

<dd class="glossary">The rendered text content of a link.
</dd>

<dt class="glossary"><a name="natural-language"><dfn><strong>Natural
Language</strong></dfn></a></dt>

<dd>Spoken, written, or signed human languages such as French,
Japanese, American Sign Language, and braille. 
The natural language of content may
be indicated with the "lang" attribute in HTML (<a
href="#ref-HTML40">[HTML40]</a>, section 8.1)
and the "xml:lang"
attribute in XML (<a
href="#ref-XML">[XML]</a>, section 2.12).
</dd>

<dt class="glossary"><a name="nav-mechanism"><dfn><strong>Navigation Mechanism</strong></dfn></a></dt>

<dd class="glossary">A navigation mechanism is any means by which a user can
navigate a page or site. Some typical mechanisms include:<BR>

<DL>
<DT><a name="navbar"><em>navigation bars</em></a>
<dd>A navigation bar is a collection of links 
to the most important parts of a document or site.
<DT><a name="sitemap"><em>site maps</em></a>
<dd> A site map provides a global view of the
organization of a page or site.
<DT><a name="table-of-contents"><em>tables of contents</em></a>
<dd> A table of contents generally lists 
(and links to) the most important sections of a document. 
</dd>
</dl>

<dt class="glossary"><a name="pda"><dfn><strong>Personal Digital Assistant
(PDA)</strong></dfn></a></dt>

<dd class="glossary">A <abbr title="Personal Digital Assistant">PDA</abbr> is a small,
portable computing device.  Most PDAs are used to track personal data
such as calendars, contacts, and electronic mail. A PDA is generally a
handheld device with a small screen that allows input from various
sources.</dd>

<dt class="glossary"><a name="screen-magnifier"><dfn><strong>Screen
magnifier</strong></dfn></a></dt>

<dd class="glossary">A software program that magnifies a portion of the screen, so
that it can be more easily viewed. Screen magnifiers
are used primarily by individuals
with low vision.</dd>

<dt class="glossary"><a name="screen-reader"><dfn><strong>Screen reader</strong></dfn></a></dt>

<dd class="glossary">A software program that reads the contents of the screen aloud
to a user. Screen readers are used primarily 
by individuals who are blind. Screen
readers can usually only read text that is printed, not painted, to
the screen.</dd>

<dt class="glossary"><a name="style-sheet"><dfn><strong>Style sheets</strong></dfn></a></dt>

<dd class="glossary">A style sheet is a set of statements that specify presentation of
a document. Style sheets may have three different origins: they
may be written by content providers, created by users, or
built into user agents. In CSS (<a href="#ref-CSS2">[CSS2]</a>),
the interaction of content provider, user, and user agent
style sheets is called the <dfn>cascade</dfn>.

<dd class="glossary"><a
name="presentation-markup"><dfn><strong>Presentation markup</strong></dfn></a>
is markup that achieves a stylistic (rather than structuring) effect
such as the B or I elements in HTML. Note that the STRONG and EM
elements are not considered presentation markup since they convey
information that is independent of a particular font style.

<DT class="glossary"><a
name="tabular-information"><dfn><strong>Tabular information</strong></dfn></a>
<dd>
When tables are used to represent logical relationships among
data -- text, numbers, images, etc., that information is
called "tabular information" and the tables are
called "data tables". The relationships expressed by a table
may be rendered visually (usually on a two-dimensional grid),
aurally (often preceding cells with header information), 
or in other formats.
</dd>

<dt class="glossary"><a name="until-user-agents">
<dfn><strong>Until user agents ...</strong></dfn></a></dt>

<dd class="glossary">
In most of the checkpoints, content developers are asked to
ensure the accessibility of their pages and sites. However, there are
accessibility needs that would be more appropriately met by 
<a href="#user-agent" title="Definition of user agent"><span class="dfn-instance">user
agents</span></a> (including 
<a href="#assistive-tech">
<span class="dfn-instance">assistive technologies</span></a>). 
As of the publication of
this document, not all user agents or
assistive technologies provide the accessibility control users require
(e.g., some user agents may not allow users to turn off blinking
content, or some screen readers may not handle tables well).
Checkpoints that contain the phrase "until user agents ..."  require
content developers to provide additional support for accessibility
until most user agents readily available to their
audience include the necessary accessibility features.</dd>

<dd class="glossary">
<strong>Note.</strong> The W3C WAI Web site 
(refer to <a href="#ref-WAI-UA-SUPPORT">[WAI-UA-SUPPORT]</a>)
provides information
about user agent support for accessibility features. 
Content developers are encouraged to consult this page
regularly for updated information.
</dd>

<dt class="glossary"><a name="user-agent"><dfn><strong>User
agent</strong></dfn></a></dt> <dd class="glossary">Software to access Web
content, including desktop graphical browsers, text browsers, voice
browsers, mobile phones, multimedia players, plug-ins, and some
software assistive technologies used in conjunction with browsers such as
screen readers, screen magnifiers, and voice recognition software.</dd>
</dl>

<HR title="separator before acknowledgments">
<!--NewPage--><!-- this is for html2ps -->
<H2 class="nonb"> <A NAME="Acknowledgments">Acknowledgments</A></H2>

<p>This report is based upon the Web Content Accessibility Guidelines 1.0 <a href="http://www.w3.org/TR/WAI-WEBCONTENT/">document</a>, published by the W3C.</p>
<p>The icons are provided courtesy of <a href="http://famfamfam.com">famfamfam.com</a></p>
<p>The W3C original document contains the following acknowledgements:</p>

<dl>
<dt>Web Content Guidelines Working Group Co-Chairs:</dt>

<dd><a href="mailto:hide@address.com">Chuck Letourneau</a>,
Starling Access Services</dd>

<dd><a href="mailto:hide@address.com">Gregg Vanderheiden</a>,
Trace Research and Development</dd>

<dt>W3C Team contacts:</dt>

<dd><a href="mailto:hide@address.com">Judy Brewer</a> and <a href="mailto:hide@address.com">Daniel Dardailler</a></dd>


<dt>We wish to thank the following people who have contributed their
time and valuable comments to shaping these guidelines:
</dt>

<dd>Harvey Bingham, Kevin Carey, Chetz Colwell, Neal Ewers, Geoff
Freed, Al Gilman, Larry Goldberg, Jon Gunderson, Eric Hansen,
Phill Jenkins, Leonard
Kasday, George Kerscher, Marja-Riitta Koivunen, Josh Krieger, Scott
Luebking, William Loughborough, Murray Maloney, Charles
McCathieNevile, MegaZone (Livingston Enterprises), Masafumi Nakane,
Mark Novak, Charles Oppermann, Mike Paciello, David Pawson, Michael Pieper,
Greg Rosmaita, Liam Quinn, Dave Raggett, T.V. Raman, Robert
Savellis, Jutta Treviranus, Steve Tyler, Jaap van Lelieveld, and
Jason White</dd>
</dl>

<p>The original draft of this document is based on "The Unified Web
Site Accessibility Guidelines" (<a href="#ref-UWSAG">[UWSAG]</a>)
compiled by the Trace R &amp; D Center at the University of Wisconsin.
That document includes a list of additional contributors.

<!--NewPage--><!-- this is for html2ps -->
<h2 class="nonb"> <a name="References">References</a></h2>

<P>For the latest version of any W3C specification please consult the
list of <a href="http://www.w3.org/TR">W3C Technical Reports</a>.</P>

<dl>

<dt><a name="ref-CSS1"><b>[CSS1]</b></a></dt>

<dd>"CSS, level 1 Recommendation", B. Bos, H. Wium Lie, eds.,
17 December 1996, revised 11 January 1999. 
The CSS1 Recommendation is:
 <a href="http://www.w3.org/TR/1999/REC-CSS1-19990111">
http://www.w3.org/TR/1999/REC-CSS1-19990111</a>.<BR>
The latest version of CSS1 is available at:
 <a href="http://www.w3.org/TR/REC-CSS1">
http://www.w3.org/TR/REC-CSS1</a>.
</dd>

<dt><a name="ref-CSS2"><b>[CSS2]</b></a></dt>

<dd>"CSS, level 2 Recommendation", B. Bos, H. Wium Lie, C. Lilley,
and I. Jacobs, eds., 12 May 1998.
The CSS2 Recommendation is:
 <a href="http://www.w3.org/TR/1998/REC-CSS2-19980512">
http://www.w3.org/TR/1998/REC-CSS2-19980512</a>.<BR>
The latest version of CSS2 is available at:
 <a href="http://www.w3.org/TR/REC-CSS2">
http://www.w3.org/TR/REC-CSS2</a>.

</dd>

<dt><a name="ref-DOM1"><b>[DOM1]</b></a></dt>
      <DD>&quot;Document Object Model (DOM) Level 1 Specification&quot;, 
V. Apparao, S. Byrne, M. Champion, S. Isaacs, I. Jacobs, A. Le Hors, G. Nicol,
J. Robie, R. Sutor, C. Wilson, and L. Wood, eds., 1 October 1998.
The DOM Level 1 Recommendation is: 
<A HREF="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001">
http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001</A>. <BR>
The latest version of DOM Level 1 is available at:
<A HREF="http://www.w3.org/TR/REC-DOM-Level-1">
http://www.w3.org/TR/REC-DOM-Level-1</A>
</DD>

<dt><a name="ref-HTML40"><b>[HTML40]</b></a></dt>

<dd>"HTML 4.0 Recommendation", D. Raggett, A. Le Hors, and I.
Jacobs, eds., 17 December 1997, revised 24 April 1998.
 The HTML 4.0 Recommendation is:
 <a href="http://www.w3.org/TR/1998/REC-html40-19980424">
http://www.w3.org/TR/1998/REC-html40-19980424</a>.<BR>
The latest version of HTML 4.0 is available at:
 <a href="http://www.w3.org/TR/REC-html40">
http://www.w3.org/TR/REC-html40</a>.
</dd>

<dt><a name="ref-HTML32"><b>[HTML32]</b></a></dt>

<dd>"HTML 3.2 Recommendation", D. Raggett, ed.,
14 January 1997. The latest version of HTML 3.2
is available at:
 <a href="http://www.w3.org/TR/REC-html32">
http://www.w3.org/TR/REC-html32</a>.</dd>

<dt><a name="ref-MATHML"><b>[MATHML]</b></a></dt>

<dd>"Mathematical Markup Language", P. Ion and R. Miner, eds.,
7 April 1998. The MathML 1.0
Recommendation is:
<a href="http://www.w3.org/TR/1998/REC-MathML-19980407">
http://www.w3.org/TR/1998/REC-MathML-19980407</a>.<BR>
The latest version of MathML 1.0 is available at:
<a href="http://www.w3.org/TR/REC-MathML">
http://www.w3.org/TRREC-MathML</a>.
</dd>

<dt><a name="ref-PNG"><b>[PNG]</b></a></dt>

<dd>"PNG (Portable Network Graphics) Specification", T. Boutell, ed.,
T. Lane, contributing ed., 1 October 1996.
The latest version of PNG 1.0 is:
<a href="http://www.w3.org/TR/REC-png">
http://www.w3.org/TR/REC-png</a>.
</dd>

<dt><a name="ref-RDF"><b>[RDF]</b></a></dt>

<dd>"Resource Description Framework
(RDF) Model and Syntax Specification", O. Lassila, R. Swick,
eds., 22 February 1999. The RDF Recommendation is:
<a href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222">
http://www.w3.org/TR/1999/REC-rdf-syntax-19990222</a>.<BR>
The latest version of RDF 1.0 is available at:
<a href="http://www.w3.org/TR/REC-rdf-syntax">
http://www.w3.org/TR/REC-rdf-syntax</a>
</dd>

<DT><A name="ref-RFC2068"><b>[RFC2068]</b></A></DT>

<DD><A href="http://www.ietf.org/rfc/rfc2068.txt">"HTTP Version 1.1"</a>, R. Fielding, J. Gettys, J. Mogul, H.
Frystyk Nielsen, and T. Berners-Lee, January 1997.</DD>

<dt><a name="ref-SMIL"><b>[SMIL]</b></a></dt>

<dd>"Synchronized Multimedia Integration Language (SMIL) 1.0
Specification", P. Hoschka, ed., 15 June 1998. 
The SMIL 1.0 Recommendation is:
 <a href="http://www.w3.org/TR/1998/REC-smil-19980615">
http://www.w3.org/TR/1998/REC-smil-19980615</a><BR>
The latest version of SMIL 1.0 is available at:
 <a href="http://www.w3.org/TR/REC-smil">
http://www.w3.org/TR/REC-smil</a>
</dd>

<dt><a name="ref-TECHNIQUES"><b>[TECHNIQUES]</b></a></dt>

<dd>"Techniques for Web Content Accessibility Guidelines 1.0", W. Chisholm, G. Vanderheiden, I. Jacobs, eds.
This document explains how to implement the checkpoints defined
in "Web Content Accessibility Guidelines 1.0". The latest draft of the techniques is
available at:
 <a href="http://www.w3.org/TR/WAI-WEBCONTENT-TECHS">
http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/</a></dd>


<dt><a name="ref-WAI-AUTOOLS"><b>[WAI-AUTOOLS]</b></a></dt>

<dd>"Authoring Tool Accessibility Guidelines", J. Treviranus,
J. Richards, I. Jacobs, C. McCathieNevile, eds. 
The latest Working Draft of these guidelines for designing
accessible authoring tools is available at:
 <a href="http://www.w3.org/TR/WAI-AUTOOLS/">
http://www.w3.org/TR/WAI-AUTOOLS/</a></dd>

<dt><a name="ref-WAI-UA-SUPPORT"><b>[WAI-UA-SUPPORT]</b></a></dt>

<dd>This page documents known support by user agents (including
assistive technologies) of some accessibility features listed
in this document. The page is available at:
 <a href="http://www.w3.org/WAI/Resources/WAI-UA-Support">
http://www.w3.org/WAI/Resources/WAI-UA-Support</a></dd>

<dt><a name="ref-WAI-USERAGENT"><b>[WAI-USERAGENT]</b></a></dt>

<dd>"User Agent Accessibility Guidelines", J. Gunderson 
and I. Jacobs, eds. 
The latest Working Draft of these guidelines for designing accessible
user agents is available at:
 <a href="http://www.w3.org/TR/WAI-USERAGENT/">
http://www.w3.org/TR/WAI-USERAGENT/</a></dd>

<dt><a name="ref-WCAG-ICONS"><b>[WCAG-ICONS]</b></a></dt>
<dd>Information about conformance icons for this document and how to
use them is available at 
<a href="http://www.w3.org/WAI/WCAG1-Conformance.html">
http://www.w3.org/WAI/WCAG1-Conformance.html</a></dd>

<dt><a name="ref-UWSAG"><b>[UWSAG]</b></a></dt>
<DD>"The Unified Web Site Accessibility Guidelines", G.
Vanderheiden, W. Chisholm, eds. 
The Unified Web Site Guidelines were compiled by the 
<a href="http://www.tracecenter.org/">Trace R
&amp; D Center</a> at the University of Wisconsin under funding from the
National Institute on Disability and Rehabilitation Research
(NIDRR),&nbsp; U.S. Dept. of Education. This document is
available at:
<a href="http://www.tracecenter.org/docs/html_guidelines/version8.htm">
http://www.tracecenter.org/docs/html_guidelines/version8.htm</a> 
</dd>

<dt><a name="ref-XML"><b>[XML]</b></a></dt>
<dd>"Extensible Markup Language (XML) 1.0.", T. Bray, J. Paoli, C.M. 
Sperberg-McQueen, eds., 10 February 1998. 
The XML 1.0 Recommendation is:
<a href="http://www.w3.org/TR/1998/REC-xml-19980210">
http://www.w3.org/TR/1998/REC-xml-19980210</a>.<BR>
The latest version of XML 1.0 is available at:
<a href="http://www.w3.org/TR/REC-xml">
http://www.w3.org/TR/REC-xml</a>
</dd>

</dl>

EOT;

function get_rule_priority($constant){
	switch($constant){
		case RESULT_FAIL:
			return 'fail';
			break;
		case RESULT_PASS:
			return 'pass';
			break;
		case RESULT_USER:
			return 'user';
			break;
		case RESULT_WARNING:
			return 'warning';
			break;
	}	
}

function get_icon_html($type){
	switch ($type){
		case(RESULT_PASS):
			$html="<img src=\"wai/html/flag_green.png\" height=\"16\" width=\"16\" alt=\"pass\" class=\"flag\">";
			break;
		case(RESULT_FAIL):
			$html="<img src=\"wai/html/flag_red.png\" height=\"16\" width=\"16\" alt=\"fail\" class=\"flag\">";
			break;
		case(RESULT_WARNING):
			$html="<img src=\"wai/html/flag_yellow.png\" height=\"16\" width=\"16\" alt=\"warning\" class=\"flag\">";
			break;
		case(RESULT_USER):
			$html="<img src=\"wai/html/flag_white.png\" height=\"16\" width=\"16\" alt=\"user check\" class=\"flag\">";
			break;
	}
	
	return $html;	
}

function output_results($wai, $parse, $html){
	//create a summary of the results types, grouped by priority:
	$summary=Array();
	
	foreach($wai as $this_wai){
		$type_present=Array();
		$instances=$this_wai['instances'];
		foreach($instances as $this_instance_type){
			if(!isset($type_present[$this_instance_type['type'][0]])){
				$type_present[$this_instance_type['type'][0]]=true;
				
				if(!isset($summary[$this_wai['priority']][$this_instance_type['type'][0]]))
					$summary[$this_wai['priority']][$this_instance_type['type'][0]]=1;
				else
					$summary[$this_wai['priority']][$this_instance_type['type'][0]]++;
			
			}
		}				
	}
	
	$instance=Array();
	$headers=get_guidelines();
	$current_header='';
	
	echo $html['header'];
	
	echo "<h1>Web Guidelines validator results</h1>\n";
	echo "<div id=\"page_scanned\"><a href=\"" . $html['url'] . "\">" . $html['url'] . "</a></div>\n";
	echo "<div id=\"summary_container\">\n";
	echo "<h2 class=\"summary\">Results summary</h2>\n";
	echo "<div id=\"priority1_container\">\n";
	echo "<h3 class=\"priority visible\" onclick=\"show_priority(this, '" . strtolower(PRIORITY_MUST) . "'); return false;\">Priority 1 checkpoints</h3>\n";
	
	//put in a summary of passes/fails and so forth:
	if(!isset($summary[PRIORITY_MUST])){
		echo "<p>This priority was not checked</p>\n";
	} else {
		echo "<ul>\n";
		echo "<li>" . get_icon_html(RESULT_PASS) . "Passed: " . @$summary[PRIORITY_MUST][RESULT_PASS] . "</li>\n";
		echo "<li>" . get_icon_html(RESULT_FAIL) . "Failed: " . @$summary[PRIORITY_MUST][RESULT_FAIL] . "</li>\n";
		echo "<li>" . get_icon_html(RESULT_WARNING) . "Warnings: " . @$summary[PRIORITY_MUST][RESULT_WARNING] . "</li>\n";
		echo "<li>" . get_icon_html(RESULT_USER) . "User checks: " . @$summary[PRIORITY_MUST][RESULT_USER] . "</li>\n";
		echo "</ul>\n";
	}
	echo "</div>\n";
	
	echo "<div id=\"priority2_container\">\n";
	echo "<h3 class=\"priority visible\" onclick=\"show_priority(this, '" . strtolower(PRIORITY_SHOULD) . "'); return false;\">Priority 2 checkpoints</h3>\n";
	//put in a summary of passes/fails and so forth:
	if(!isset($summary[PRIORITY_SHOULD])) {
		echo "<p>This priority was not checked</p>\n";
	} else {
		echo "<ul>\n";
		echo "<li>" . get_icon_html(RESULT_PASS) . "Passed: " . @$summary[PRIORITY_SHOULD][RESULT_PASS] . "</li>\n";
		echo "<li>" . get_icon_html(RESULT_FAIL) . "Failed: " . @$summary[PRIORITY_SHOULD][RESULT_FAIL] . "</li>\n";
		echo "<li>" . get_icon_html(RESULT_WARNING) . "Warnings: " . @$summary[PRIORITY_SHOULD][RESULT_WARNING] . "</li>\n";
		echo "<li>" . get_icon_html(RESULT_USER) . "User checks: " . @$summary[PRIORITY_SHOULD][RESULT_USER] . "</li>\n";
		echo "</ul>\n";
	}
	echo "</div>\n";
	
	echo "<div id=\"priority3_container\">\n";
	echo "<h3 class=\"priority visible\" onclick=\"show_priority(this, '" . strtolower(PRIORITY_MAY) . "'); return false;\">Priority 3 checkpoints</h3>\n";
	//put in a summary of passes/fails and so forth:
	if(!isset($summary[PRIORITY_MAY])){
		echo "<p>This priority was not checked</p>\n";
	} else { 
		echo "<ul>\n";
		echo "<li>" . get_icon_html(RESULT_PASS) . "Passed: " . @$summary[PRIORITY_MAY][RESULT_PASS] . "</li>\n";
		echo "<li>" . get_icon_html(RESULT_FAIL) . "Failed: " . @$summary[PRIORITY_MAY][RESULT_FAIL] . "</li>\n";
		echo "<li>" . get_icon_html(RESULT_WARNING) . "Warnings: " . @$summary[PRIORITY_MAY][RESULT_WARNING] . "</li>\n";
		echo "<li>" . get_icon_html(RESULT_USER) . "User checks: " . @$summary[PRIORITY_MAY][RESULT_USER] . "</li>\n";
		echo "</ul>\n";
	}
	echo "</div>\n";
	
	echo "</div>\n";
	echo "<br style=\"clear: both\">\n";
	foreach($wai as $key => $this_wai){
		if($this_wai['header']!=$current_header){
			if($current_header!=''){
				if(isset($headers[$current_header]['footer'])){
					echo "<div class=\"footer\">" . $headers[$current_header]['footer'] . "</div>\n";
				}
				echo "</div>\n";
				echo "</div>\n";
			}
			echo "<h2 class=\"guideline\">" . $headers[$this_wai['header']]['title'] . "</h2>\n";
			echo "<div class=\"guideline_container\">\n";
			echo "<h3 class=\"abstract\">" . $headers[$this_wai['header']]['abstract'] . "</h3>\n";
			echo "<div class=\"text\">" . $headers[$this_wai['header']]['text'] . "</div>\n";
			
			echo "<p class=\"checkpoints_header\"><img src=\"wai/html/page_white_magnify.png\" height=\"16\" width=\"16\" alt=\"checkpoints\" class=\"flag\">Checkpoints</p>\n";
			echo "<div class=\"checkpoints_container\">\n";
			$current_header=$this_wai['header'];
		}
		
		$key_bits=explode('_', $key);
		echo "<h3 class=\"checkpoint\"><img src=\"wai/html/information.png\" height=\"16\" width=\"16\" alt=\"information\" class=\"flag\">" . $key_bits[2] . '.' . $key_bits[3] . ' ' . $this_wai['rule_text'] . "</h3>\n";
		
		$has_hidden_instances=false;
		$instance_types=$this_wai['instances'];
		echo "<div class=\"priority_" . strtolower($this_wai['priority']) . "\">";
		foreach($instance_types as $key=>$this_instance_type){
			
			echo "<h4 class=\"checkpoint_instances\">";
			if($this_instance_type['type'][0]==RESULT_FAIL){
				echo "<img src=\"wai/html/flag_red.png\" height=\"16\" width=\"16\" alt=\"fail\" class=\"flag\">";
			}
			if($this_instance_type['type'][0]==RESULT_PASS){
				echo "<img src=\"wai/html/flag_green.png\" height=\"16\" width=\"16\" alt=\"pass\" class=\"flag\">";
			}
			if($this_instance_type['type'][0]==RESULT_USER){
				echo "<img src=\"wai/html/flag_white.png\" height=\"16\" width=\"16\" alt=\"user check\" class=\"flag\">";
			}
			if($this_instance_type['type'][0]==RESULT_WARNING){
				echo "<img src=\"wai/html/flag_yellow.png\" height=\"16\" width=\"16\" alt=\"warning\" class=\"flag\">";
			}
			
			//Replace this with the key of the instance, so we can remove this entry altogether:
			echo $key . "</h4>\n";
			
			$instance_count=0;
			$has_hidden_instances=false;
			
			echo "<div>\n";
			$num_instances=count($this_instance_type['indices']);
			for($i=0; $i<$num_instances; $i++){
									
				if($this_instance_type['indices'][$i]!=-1 && $this_instance_type['indices'][$i]!=-2){
					echo "<fieldset>\n";
					echo "\t<legend class=\"" . get_rule_priority($this_instance_type['type'][$i]) . "\" title=\"" . strip_tags($this_wai['rule_text']) . "\">Line " . $parse->allElements[$this_instance_type['indices'][$i]]['line'] . ', column ' . $parse->allElements[$this_instance_type['indices'][$i]]['column'] . "</legend>\n";
					$instance['elementIndex']=$this_instance_type['indices'][$i];
					$instance['highlight']=$this_instance_type['highlight'][$i];
					$instance['highlight_attribute']=$this_instance_type['highlight_attribute'][$i];
					
					if(isset($this_instance_type['highlight_limit'][$i]))
						$instance['highlight_limit']=$this_instance_type['highlight_limit'][$i];
						
					$code=$parse->getCode($instance);
					
					echo $code . "\n";
					if(isset($this_instance_type['info'][$i])){
						echo "<div class=\"info\">" . $this_instance_type['info'][$i] . "</div>\n";
					}
					echo "</fieldset>\n";
					$instance_count++;
					
					if($instance_count==INSTANCE_LIMIT && !$has_hidden_instances && $num_instances>INSTANCE_LIMIT){
						echo "<div class=\"more_instances\" onclick=\"show_all(this, " . $num_instances . "); return false;\">Show all " . $num_instances . " examples</div>\n";
						echo "<div class=\"hidden_instances\">\n";
						$has_hidden_instances=true;
					}
					
				}
				
				//This is a CSS result:
				if($this_instance_type['indices'][$i]==-2){
					echo "<fieldset>\n";
					echo "\t<legend class=\"" . get_rule_priority($this_instance_type['type'][$i]) . "\" title=\"" . strip_tags($this_wai['rule_text']) . "\">Location: " . $parse->getStyleSheetLocation($this_instance_type['stylesheet'][$i]) . "</legend>\n";
					$instance['elementIndex']=$this_instance_type['indices'][$i];
					$instance['highlight']=$this_instance_type['highlight'][$i];
					$instance['stylesheet']=$this_instance_type['stylesheet'][$i];
					$instance['rule']=$this_instance_type['rule'][$i];
					$instance['selector_group']=$this_instance_type['selector_group'][$i];
										
					$code=$parse->getCode($instance);
					
					echo $code . "\n";
					if(isset($this_instance_type['info'][$i])){
						echo "<div class=\"info\">" . $this_instance_type['info'][$i] . "</div>\n";
					}
					echo "</fieldset>\n";
					$instance_count++;
					
					if($instance_count==INSTANCE_LIMIT && !$has_hidden_instances && $num_instances>INSTANCE_LIMIT){
						echo "<div class=\"more_instances\" onclick=\"show_all(this, " . $num_instances . "); return false;\">Show all " . $num_instances . " examples</div>\n";
						echo "<div class=\"hidden_instances\">\n";
						$has_hidden_instances=true;
					}
				}
			}
			if($has_hidden_instances){
				echo "</div>\n";
				
			}
			echo "</div>\n";
			
		}
		
		echo "</div>\n";
		
	}
	
	echo "</div>\n";
	echo "</div>\n";
	
	echo $html['appendix'];
	
	echo $html['footer'];
}

function get_guidelines(){
	$headers=Array();

	$headers['g1']['title']='Guideline 1. Provide equivalent alternatives to auditory and visual content.';
	$headers['g1']['abstract']='Provide content that, when presented to the user, conveys essentially the same function or purpose as auditory or visual content.';
	$headers['g1']['text']="" .
	"<p>Although some people cannot use images, movies, sounds, applets, etc. directly, they may still use pages that include <a href=\"#equivalent\">equivalent</a> information to the visual or auditory content. The equivalent information must serve the same purpose as the visual or auditory content. Thus, a text equivalent for an image of an upward arrow that links to a table of contents could be &quot;Go to table of contents&quot;. In some cases, an equivalent should also describe the appearance of visual content (e.g., for complex charts, billboards, or diagrams) or the sound of auditory content (e.g., for audio samples used in education).</p>" .
	"<p>This guideline emphasizes the importance of providing <a href=\"#text-equivalent\">text equivalents</a> of non-text content (images, pre-recorded audio, video). The power of text equivalents lies in their capacity to be rendered in ways that are accessible to people from various disability groups using a variety of technologies. Text can be readily output to speech synthesizers and <a href=\"#braille-display\">braille displays</a>, and can be presented visually (in a variety of sizes) on computer displays and paper. Synthesized speech is critical for individuals who are blind and for many people with the reading difficulties that often accompany cognitive disabilities, learning disabilities, and deafness. Braille is essential for individuals who are both deaf and blind, as well as many individuals whose only sensory disability is blindness. Text displayed visually benefits users who are deaf as well as the majority of Web users.</p>" .
	"<p>Providing non-text equivalents (e.g., pictures, videos, and pre-recorded audio) of text is also beneficial to some users, especially nonreaders or people who have difficulty reading. In movies or visual presentations, visual action such as body language or other visual cues may not be accompanied by enough audio information to convey the same information. Unless verbal descriptions of this visual information are provided, people who cannot see (or look at) the visual content will not be able to perceive it.";
		
	$headers['g2']['title']='Guideline 2. Don\'t rely on color alone.';
	$headers['g2']['abstract']='Ensure that text and graphics are understandable when viewed without color.';
	$headers['g2']['text']="" .
	"<p>If color alone is used to convey information, people who cannot differentiate between certain colors and users with devices that have non-color or non-visual displays will not receive the information. When foreground and background colors are too close to the same hue, they may not provide sufficient contrast when viewed using monochrome displays or by people with different types of color deficits.</p>";
	
	$headers['g3']['title']='Guideline 3. Use markup and style sheets and do so properly.';
	$headers['g3']['abstract']='Mark up documents with the proper structural elements. Control presentation with style sheets rather than with presentation elements and attributes.';
	$headers['g3']['text']="" .
	"<p>Using markup improperly -- not according to specification -- hinders accessibility. Misusing markup for a presentation effect (e.g., using a table for layout or a header to change the font size) makes it difficult for users with specialized software to understand the organization of the page or to navigate through it. Furthermore, using presentation markup rather than structural markup to convey structure (e.g., constructing what looks like a table of data with an HTML PRE element) makes it difficult to render a page intelligibly to other devices (refer to the description of <a href=\"#content-structure\">difference between content, structure, and presentation</a>).</p>" .
	"<p>Content developers may be tempted to use (or misuse) constructs that achieve a desired formatting effect on older browsers. They must be aware that these practices cause accessibility problems and must consider whether the formatting effect is so critical as to warrant making the document inaccessible to some users.</p>" .
	"<p>At the other extreme, content developers must not sacrifice appropriate markup because a certain browser or assistive technology does not process it correctly. For example, it is appropriate to use the TABLE element in HTML to mark up <a href=\"#tabular-information\">tabular information</a> even though some older screen readers may not handle side-by-side text correctly (refer to <a href=\"#tech-linear-tables\">checkpoint 10.3</a>). Using TABLE correctly and creating tables that transform gracefully (refer to <a href=\"#gl-table-markup\">guideline 5</a>) makes it possible for software to render tables other than as two-dimensional grids.</p>";
	
	$headers['g4']['title']='Guideline 4. Clarify natural language usage';
	$headers['g4']['abstract']='Use markup that facilitates pronunciation or interpretation of abbreviated or foreign text.';
	$headers['g4']['text']="" .
	"<p>When content developers mark up natural language changes in a document, speech synthesizers and braille devices can automatically switch to the new language, making the document more accessible to multilingual users. Content developers should identify the predominant <a href=\"#natural-language\">natural language</a> of a document's content (through markup or HTTP headers). Content developers should also provide expansions of abbreviations and acronyms.</p>" .
	"<p>In addition to helping assistive technologies, natural language markup allows search engines to find key words and identify documents in a desired language. Natural language markup also improves readability of the Web for all people, including those with learning disabilities, cognitive disabilities, or people who are deaf.</p>" .
	"<p>When abbreviations and natural language changes are not identified, they may be indecipherable when machine-spoken or brailled.";
	
	$headers['g5']['title']='Guideline 5. Create tables that transform gracefully.';
	$headers['g5']['abstract']='Ensure that tables have necessary markup to be transformed by accessible browsers and other user agents.';
	$headers['g5']['text']="" .
	"<p>Tables should be used to mark up truly <a href=\"#tabular-information\">tabular information</a> (&quot;data tables&quot;). Content developers should avoid using them to lay out pages (&quot;layout tables&quot;). Tables for any use also present special problems to users of <a href=\"#screen-reader\">screen readers</a> (refer to <a href=\"#tech-linear-tables\">checkpoint 10.3</a>).</p>" .
	"<p>Some <a href=\"#user-agent\">user agents</a> allow users to navigate among table cells and access header and other table cell information. Unless marked-up properly, these tables will not provide user agents with the appropriate information. (Refer also to <a href=\"#gl-structure-presentation\">guideline 3</a>.)</p>" .
	"<p>The following checkpoints will directly benefit people who access a table through auditory means (e.g., a screen reader or an automobile-based personal computer) or who view only a portion of the page at a time (e.g., users with blindness or low vision using speech output or a <a href=\"#braille-display\">braille display</a>, or other users of devices with small displays, etc.).</p>";
	$headers['g5']['footer']="" .
	"<p>Refer also to checkpoint 10.3.</p>";
	
	$headers['g6']['title']='Guideline 6. Ensure that pages featuring new technologies transform gracefully.';
	$headers['g6']['abstract']='Ensure that pages are accessible even when newer technologies are not supported or are turned off.';
	$headers['g6']['text']="" .
	"<p>Although content developers are encouraged to use new technologies that solve problems raised by existing technologies, they should know how to make their pages still work with older browsers and people who choose to turn off features.</p>";
	$headers['g6']['footer']="" .
	"<p>Refer also to checkpoint 11.4.</p>";
	
	$headers['g7']['title']='Guideline 7. Ensure user control of time-sensitive content changes.';
	$headers['g7']['abstract']='Ensure that moving, blinking, scrolling, or auto-updating objects or pages may be paused or stopped.';
	$headers['g7']['text']="" .
	"<p>Some people with cognitive or visual disabilities are unable to read moving text quickly enough or at all. Movement can also cause such a distraction that the rest of the page becomes unreadable for people with cognitive disabilities. <a href=\"#screen-reader\">Screen readers</a> are unable to read moving text. People with physical disabilities might not be able to move quickly or accurately enough to interact with moving objects.</p>" .
	"<p><strong>Note.</strong> All of the following checkpoints involve some content developer responsibility <a href=\"#until-user-agents\">until user agents</a> provide adequate feature control mechanisms.</p>";
	$headers['g7']['footer']="" .
	"<p><strong>Note.</strong> The BLINK and MARQUEE elements are not defined in any W3C HTML specification and should not be used. Refer also to <a href=\"http://www.w3.org/TR/WAI-WEBCONTENT/#gl-use-w3c\">guideline 11</a>.</p>";
	
	$headers['g8']['title']='Guideline 8. Ensure direct accessibility of embedded user interfaces.';
	$headers['g8']['abstract']='Ensure that the user interface follows principles of accessible design: device-independent access to functionality, keyboard operability, self-voicing, etc.';
	$headers['g8']['text']="" .
	"<p>When an embedded object has its &quot;own interface&quot;, the interface -- like the interface to the browser itself -- must be accessible. If the interface of the embedded object cannot be made accessible, an alternative accessible solution must be provided.</p>" .
	"<p><strong>Note.</strong> For information about accessible interfaces, please consult the User Agent Accessibility Guidelines ([<a href=\"#ref-WAI-USERAGENT\">WAI-USERAGENT</a>]) and the Authoring Tool Accessibility Guidelines ([<a href=\"#ref-WAI-USERAGENT\">WAI-AUTOOL</a>]).</p>";
	
	$headers['g9']['title']='Guideline 9. Design for device-independence.';
	$headers['g9']['abstract']='Use features that enable activation of page elements via a variety of input devices.';
	$headers['g9']['text']="" .
	"<p><a href=\"#device-independent\">Device-independent</a> access means that the user may interact with the user agent or document with a preferred input (or output) device -- mouse, keyboard, voice, head wand, or other. If, for example, a form control can only be activated with a mouse or other pointing device, someone who is using the page without sight, with voice input, or with a keyboard or who is using some other non-pointing input device will not be able to use the form.</p>" .
	"<p><strong>Note.</strong> Providing text equivalents for image maps or images used as links makes it possible for users to interact with them without a pointing device. <a href=\"#gl-provide-equivalents\">Refer also to guideline 1</a>.</p>" .
	"<p>Generally, pages that allow keyboard interaction are also accessible through speech input or a command line interface.</p>";
	
	$headers['g10']['title']='Guideline 10. Use interim solutions.';
	$headers['g10']['abstract']='Use interim accessibility solutions so that assistive technologies and older browsers will operate correctly.';
	$headers['g10']['text']="" .
	"<p>For example, older browsers do not allow users to navigate to empty edit boxes. Older screen readers read lists of consecutive links as one link. These active elements are therefore difficult or impossible to access. Also, changing the current window or popping up new windows can be very disorienting to users who cannot see that this has happened.</p>" .
	"<p><strong>Note.</strong> The following checkpoints apply <a href=\"#until-user-agents\">until user agents</a> (including <a href=\"#assistive-tech\">assistive technologies</a>) address these issues. These checkpoints are classified as &quot;interim&quot;, meaning that the Web Content Guidelines Working Group considers them to be valid and necessary to Web accessibility as of the publication of this document. However, the Working Group does not expect these checkpoints to be necessary in the future, once Web technologies have incorporated anticipated features or capabilities.</p>";
	
	$headers['g11']['title']='Guideline 11. Use W3C technologies and guidelines.';
	$headers['g11']['abstract']='Use W3C technologies (according to specification) and follow accessibility guidelines. Where it is not possible to use a W3C technology, or doing so results in material that does not transform gracefully, provide an alternative version of the content that is accessible.';
	$headers['g11']['text']="" .
	"<p>The current guidelines recommend W3C technologies (e.g., HTML, CSS, etc.) for several reasons:</p>" .
	"<ul>" .
	"<li>W3C technologies include &quot;built-in&quot; accessibility features.</li>" . 
	"<li>W3C specifications undergo early review to ensure that accessibility issues are considered during the design phase.</li>" .
	"<li>W3C specifications are developed in an open, industry consensus process.</li>" .
	"</ul>" .
	"<p>Many non-W3C formats (e.g., PDF, Shockwave, etc.) require viewing with either plug-ins or stand-alone applications. Often, these formats cannot be viewed or navigated with standard <a href=\"#user-agent\">user agents</a> (including <a href=\"#assistive-tech\">assistive technologies</a>). Avoiding non-W3C and non-standard features (proprietary elements, attributes, properties, and extensions) will tend to make pages more accessible to more people using a wider variety of hardware and software. When inaccessible technologies (proprietary or not) must be used, equivalent accessible pages must be provided.</p>" .
	"<p>Even when W3C technologies are used, they must be used in accordance with accessibility guidelines. When using new technologies, ensure that they transform gracefully (Refer also to <a href=\"#gl-new-technologies\">guideline 6</a>.).</p>" .
	"<p><strong>Note.</strong> Converting documents (from PDF, PostScript, RTF, etc.) to W3C markup languages (HTML, XML) does not always create an accessible document. Therefore, validate each page for accessibility and usability after the conversion process (refer to the <a href=\"#validation\">section on validation</a>). If a page does not readily convert, either revise the page until its original representation converts appropriately or provide an HTML or plain text version.</p>";
	$headers['g11']['footer']="".
	"<p><a name=\"alt-page-note\"><strong>Note.</strong></a> Content developers should only resort to alternative pages when other solutions fail because alternative pages are generally updated less often than &quot;primary&quot; pages. An out-of-date page may be as frustrating as one that is inaccessible since, in both cases, the information presented on the original page is unavailable. Automatically generating alternative pages may lead to more frequent updates, but content developers must still be careful to ensure that generated pages always make sense, and that users are able to navigate a site by following links on primary pages, alternative pages, or both. Before resorting to an alternative page, reconsider the design of the original page; making it accessible is likely to improve it for all users.</p>";
	
	$headers['g12']['title']='Guideline 12. Provide context and orientation information.';
	$headers['g12']['abstract']='Provide context and orientation information to help users understand complex pages or elements.';
	$headers['g12']['text']="".
	"<p>Grouping elements and providing contextual information about the relationships between elements can be useful for all users. Complex relationships between parts of a page may be difficult for people with cognitive disabilities and people with visual disabilities to interpret.</p>";
	
	$headers['g13']['title']='Guideline 13. Provide clear navigation mechanisms.';
	$headers['g13']['abstract']='Provide clear and consistent navigation mechanisms -- orientation information, navigation bars, a site map, etc. -- to increase the likelihood that a person will find what they are looking for at a site.';
	$headers['g13']['text']="".
	"<p>Clear and consistent <a href=\"#nav-mechanism\">navigation mechanisms</a> are important to people with cognitive disabilities or blindness, and benefit all users.</p>";
	
	$headers['g14']['title']='Guideline 14. Ensure that documents are clear and simple.';
	$headers['g14']['abstract']='Ensure that documents are clear and simple so they may be more easily understood.';
	$headers['g14']['text']="".
	"<p>Consistent page layout, recognizable graphics, and easy to understand language benefit all users. In particular, they help people with cognitive disabilities or who have difficulty reading. (However, ensure that images have text equivalents for people who are blind, have low vision, or for any user who cannot or has chosen not to view graphics. Refer also to <a href=\"#gl-provide-equivalents\">guideline 1</a>.)</p>" .
	"<p>Using clear and simple language promotes effective communication. Access to written information can be difficult for people who have cognitive or learning disabilities. Using clear and simple language also benefits people whose first language differs from your own, including those people who communicate primarily in sign language.</p>";
	
	return $headers;
}
?>
Return current item: OpenWolf Guidelines Validator