You are here

quail_api_guidelines.inc in Quail API 8

Same filename and directory in other branches
  1. 7 includes/quail_api_guidelines.inc

Contains quail guideline class objects for the quail api.

The guidelines here are modified versions provided by quail. They are intended to be used against indidivual snippets of html and not an entire page.

The quail library will look for guidelines by searching for a function called "${name_ofguideline}Guideline". Therefore, for a class of quail_api_allGuideline, the name of the guideline is 'quail_api_all'. This file must also be included before calling quail(), otherwise this guideline will not be found by the quail library.

Tags that have been removed are: documentHasTitleElement documentLangNotIdentified documentWordsNotInLanguageAreMarked skipToContentLinkProvided siteMap

File

includes/quail_api_guidelines.inc
View source
<?php

/**
 * @file
 * Contains quail guideline class objects for the quail api.
 *
 * The guidelines here are modified versions provided by quail.
 * They are intended to be used against indidivual snippets of html and not an
 * entire page.
 *
 * The quail library will look for guidelines by searching for a function
 * called "${name_ofguideline}Guideline".
 * Therefore, for a class of quail_api_allGuideline, the name of the guideline
 * is 'quail_api_all'.
 * This file must also be included before calling quail(), otherwise this
 * guideline will not be found by the quail library.
 *
 * Tags that have been removed are:
 *   documentHasTitleElement
 *   documentLangNotIdentified
 *   documentWordsNotInLanguageAreMarked
 *   skipToContentLinkProvided
 *   siteMap
 */

/**
 * All known tests are performed here, except for the removed tests.
 *
 * This is intended to be used on html snippets only, not an entire document.
 */
class Quail_api_allGuideline extends quailGuideline {
  var $tests = array(
    'aLinksDontOpenNewWindow',
    'aLinksMakeSenseOutOfContext',
    'aLinksToMultiMediaRequireTranscript',
    'aLinksToSoundFilesNeedTranscripts',
    'aMustContainText',
    'aSuspiciousLinkText',
    'appletContainsTextEquivalent',
    'appletContainsTextEquivalentInAlt',
    'appletProvidesMechanismToReturnToParent',
    'appletUIMustBeAccessible',
    'appletsDoNotFlicker',
    'appletsDoneUseColorAlone',
    'areaAltIdentifiesDestination',
    'areaAltRefersToText',
    'areaDontOpenNewWindow',
    'areaHasAltValue',
    'areaLinksToSoundFile',
    'basefontIsNotUsed',
    'blinkIsNotUsed',
    'blockquoteNotUsedForIndentation',
    'blockquoteUseForQuotations',
    'bodyActiveLinkColorContrast',
    'bodyColorContrast',
    'bodyLinkColorContrast',
    'bodyVisitedLinkColorContrast',
    'boldIsNotUsed',
    'checkboxHasLabel',
    'checkboxLabelIsNearby',
    'cssTextHasContrast',
    'documentAbbrIsUsed',
    'documentAcronymsHaveElement',
    'documentAllColorsAreSet',
    'documentAutoRedirectNotUsed',
    'documentIDsMustBeUnique',
    'documentIsWrittenClearly',
    'documentLangIsISO639Standard',
    'documentMetaNotUsedWithTimeout',
    'documentReadingDirection',
    'documentTitleDescribesDocument',
    'documentTitleIsNotPlaceholder',
    'documentTitleIsShort',
    'documentTitleNotEmpty',
    'documentVisualListsAreMarkedUp',
    'embedHasAssociatedNoEmbed',
    'embedProvidesMechanismToReturnToParent',
    'fileHasLabel',
    'fileLabelIsNearby',
    'fontIsNotUsed',
    'formDeleteIsReversable',
    'formErrorMessageHelpsUser',
    'formHasGoodErrorMessage',
    'formWithRequiredLabel',
    'frameRelationshipsMustBeDescribed',
    'frameSrcIsAccessible',
    'frameTitlesDescribeFunction',
    'framesHaveATitle',
    'framesetMustHaveNoFramesSection',
    'headerH1',
    'headerH1Format',
    'headerH2',
    'headerH2Format',
    'headerH3',
    'headerH3Format',
    'headerH4',
    'headerH4Format',
    'headerH5Format',
    'headerH6Format',
    'headersHaveText',
    'headersUseToMarkSections',
    'iIsNotUsed',
    'imgAltEmptyForDecorativeImages',
    'imgAltIsDifferent',
    'imgAltIsSameInText',
    'imgAltIsTooLong',
    'imgAltNotEmptyInAnchor',
    'imgAltNotPlaceHolder',
    'imgGifNoFlicker',
    'imgHasAlt',
    'imgHasLongDesc',
    'imgImportantNoSpacerAlt',
    'imgMapAreasHaveDuplicateLink',
    'imgNonDecorativeHasAlt',
    'imgNotReferredToByColorAlone',
    'imgWithMapHasUseMap',
    'inputCheckboxRequiresFieldset',
    'inputDoesNotUseColorAlone',
    'inputElementsDontHaveAlt',
    'inputImageAltIdentifiesPurpose',
    'inputImageAltIsNotFileName',
    'inputImageAltIsNotPlaceholder',
    'inputImageAltIsShort',
    'inputImageHasAlt',
    'inputImageNotDecorative',
    'inputTextHasLabel',
    'inputTextHasValue',
    'labelMustBeUnique',
    'labelMustNotBeEmpty',
    'listNotUsedForFormatting',
    'marqueeIsNotUsed',
    'objectDoesNotFlicker',
    'objectDoesNotUseColorAlone',
    'objectInterfaceIsAccessible',
    'objectLinkToMultimediaHasTextTranscript',
    'objectMustContainText',
    'objectProvidesMechanismToReturnToParent',
    'objectShouldHaveLongDescription',
    'objectTextUpdatesWhenObjectChanges',
    'pNotUsedAsHeader',
    'passwordHasLabel',
    'passwordLabelIsNearby',
    'preShouldNotBeUsedForTabularLayout',
    'radioHasLabel',
    'radioLabelIsNearby',
    'radioMarkedWithFieldgroupAndLegend',
    'scriptInBodyMustHaveNoscript',
    'scriptOndblclickRequiresOnKeypress',
    'scriptOnmousedownRequiresOnKeypress',
    'scriptOnmousemove',
    'scriptOnmouseoutHasOnmouseblur',
    'scriptOnmouseoverHasOnfocus',
    'scriptOnmouseupHasOnkeyup',
    'scriptUIMustBeAccessible',
    'scriptsDoNotFlicker',
    'scriptsDoNotUseColorAlone',
    'selectDoesNotChangeContext',
    'selectHasAssociatedLabel',
    'svgContainsTitle',
    'tabIndexFollowsLogicalOrder',
    'tableCaptionIdentifiesTable',
    'tableComplexHasSummary',
    'tableDataShouldHaveTh',
    'tableIsGrouped',
    'tableLayoutDataShouldNotHaveTh',
    'tableLayoutHasNoCaption',
    'tableLayoutHasNoSummary',
    'tableLayoutMakesSenseLinearized',
    'tableSummaryDescribesTable',
    'tableSummaryDoesNotDuplicateCaption',
    'tableSummaryIsEmpty',
    'tableUseColGroup',
    'tableUsesCaption',
    'tableWithBothHeadersUseScope',
    'tableWithMoreHeadersUseID',
    'tabularDataIsInTable',
    'textareaHasAssociatedLabel',
    'textareaLabelPositionedClose',
  );

}

/**
 * Section 508 Guideline.
 *
 * This is intended to be used on html snippets only, not an entire document.
 */
class Quail_api_section508Guideline extends quailGuideline {
  var $tests = array(
    'imgHasAlt',
    'imgAltIsDifferent',
    'imgAltIsTooLong',
    'imgNonDecorativeHasAlt',
    'imgImportantNoSpacerAlt',
    'imgAltNotPlaceHolder',
    'imgAltNotEmptyInAnchor',
    'imgAltIsSameInText',
    'objectTextUpdatesWhenObjectChanges',
    'objectLinkToMultimediaHasTextTranscript',
    'objectMustContainText',
    'scriptInBodyMustHaveNoscript',
    'aLinksToMultiMediaRequireTranscript',
    'imgNotReferredToByColorAlone',
    'appletsDoneUseColorAlone',
    'inputDoesNotUseColorAlone',
    'objectDoesNotUseColorAlone',
    'scriptsDoNotUseColorAlone',
    'imgMapAreasHaveDuplicateLink',
    'imgWithMapHasUseMap',
    'tableDataShouldHaveTh',
    'framesHaveATitle',
    'frameTitlesDescribeFunction',
    'frameSrcIsAccessible',
    'frameRelationshipsMustBeDescribed',
    'framesetMustHaveNoFramesSection',
    'imgGifNoFlicker',
    'appletsDoNotFlicker',
    'objectDoesNotFlicker',
    'scriptsDoNotFlicker',
    'scriptInBodyMustHaveNoscript',
    'appletContainsTextEquivalentInAlt',
    'appletContainsTextEquivalent',
    'appletUIMustBeAccessible',
    'inputTextHasLabel',
    'inputImageHasAlt',
    'inputImageAltIdentifiesPurpose',
    'inputImageAltIsShort',
    'inputImageAltIsNotFileName',
    'inputImageAltIsNotPlaceholder',
    'inputTextHasValue',
    'selectHasAssociatedLabel',
    'passwordHasLabel',
    'checkboxHasLabel',
    'fileHasLabel',
    'radioHasLabel',
    'documentAutoRedirectNotUsed',
    'documentMetaNotUsedWithTimeout',
    'headersHaveText',
  );

}

/**
 * WCAG 1.0 Level A Guideline.
 *
 * This is intended to be used on html snippets only, not an entire document.
 */
class Quail_api_wcag1aGuideline extends quailGuideline {
  var $tests = array(
    'imgHasAlt',
    'imgNonDecorativeHasAlt',
    'imgImportantNoSpacerAlt',
    'imgHasLongDesc',
    'imgAltIsSameInText',
    'aLinksToSoundFilesNeedTranscripts',
    'aLinksToMultiMediaRequireTranscript',
    'appletContainsTextEquivalentInAlt',
    'frameRelationshipsMustBeDescribed',
    'inputImageHasAlt',
    'inputImageAltIdentifiesPurpose',
    'areaHasAltValue',
    'areaAltIdentifiesDestination',
    'areaLinksToSoundFile',
    'objectTextUpdatesWhenObjectChanges',
    'objectContentUsableWhenDisabled',
    'objectLinkToMultimediaHasTextTranscript',
    'objectMustHaveTitle',
    'objectMustHaveValidTitle',
    'objectMustContainText',
    'scriptInBodyMustHaveNoscript',
    'objectWithClassIDHasNoText',
    'imageMapServerSide',
    'imgNotReferredToByColorAlone',
    'appletsDoneUseColorAlone',
    'inputDoesNotUseColorAlone',
    'objectDoesNotUseColorAlone',
    'scriptsDoNotUseColorAlone',
    'tableDataShouldHaveTh',
    'cssDocumentMakesSenseStyleTurnedOff',
    'documentContentReadableWithoutStylesheets',
    'objectTextUpdatesWhenObjectChanges',
    'objectWithClassIDHasNoText',
    'appletContainsTextEquivalent',
    'objectContentUsableWhenDisabled',
    'objectUIMustBeAccessible',
    'imgGifNoFlicker',
    'appletsDoNotFlicker',
    'objectDoesNotFlicker',
    'scriptsDoNotFlicker',
    'appletUIMustBeAccessible',
    'objectInterfaceIsAccessible',
    'scriptUIMustBeAccessible',
    'imgWithMapHasUseMap',
    'framesHaveATitle',
    'frameTitlesDescribeFunction',
    'svgContainsTitle',
    'headersHaveText',
  );

}

/**
 * WCAG 1.0 Level AA Guideline.
 *
 * This is intended to be used on html snippets only, not an entire document.
 */
class Quail_api_wcag1aaGuideline extends quailGuideline {
  var $tests = array(
    'imgHasAlt',
    'imgNonDecorativeHasAlt',
    'imgImportantNoSpacerAlt',
    'imgHasLongDesc',
    'imgAltIsSameInText',
    'aLinksToSoundFilesNeedTranscripts',
    'aLinksToMultiMediaRequireTranscript',
    'appletContainsTextEquivalentInAlt',
    'frameRelationshipsMustBeDescribed',
    'inputImageHasAlt',
    'inputImageAltIdentifiesPurpose',
    'areaHasAltValue',
    'areaAltIdentifiesDestination',
    'areaLinksToSoundFile',
    'objectTextUpdatesWhenObjectChanges',
    'objectContentUsableWhenDisabled',
    'objectLinkToMultimediaHasTextTranscript',
    'objectMustHaveTitle',
    'objectMustHaveValidTitle',
    'objectMustContainText',
    'objectWithClassIDHasNoText',
    'imageMapServerSide',
    'imgNotReferredToByColorAlone',
    'appletsDoneUseColorAlone',
    'objectDoesNotUseColorAlone',
    'scriptsDoNotUseColorAlone',
    'tableDataShouldHaveTh',
    'cssDocumentMakesSenseStyleTurnedOff',
    'documentContentReadableWithoutStylesheets',
    'objectTextUpdatesWhenObjectChanges',
    'objectWithClassIDHasNoText',
    'appletContainsTextEquivalent',
    'objectContentUsableWhenDisabled',
    'objectUIMustBeAccessible',
    'imgGifNoFlicker',
    'appletsDoNotFlicker',
    'objectDoesNotFlicker',
    'scriptsDoNotFlicker',
    'appletUIMustBeAccessible',
    'objectInterfaceIsAccessible',
    'scriptUIMustBeAccessible',
    'imgWithMapHasUseMap',
    'framesHaveATitle',
    'frameTitlesDescribeFunction',
    'imgWithMathShouldHaveMathEquivalent',
    'documentValidatesToDocType',
    'basefontIsNotUsed',
    'fontIsNotUsed',
    'headerH1',
    'headerH2',
    'headerH3',
    'headerH4',
    'headerH1Format',
    'headerH2Format',
    'headerH3Format',
    'headerH4Format',
    'headerH5Format',
    'headerH6Format',
    'menuNotUsedToFormatText',
    'listNotUsedForFormatting',
    'blockquoteNotUsedForIndentation',
    'tableLayoutDataShouldNotHaveTh',
    'framesetMustHaveNoFramesSection',
    'noframesSectionMustHaveTextEquivalent',
    'blinkIsNotUsed',
    'marqueeIsNotUsed',
    'documentMetaNotUsedWithTimeout',
    'documentAutoRedirectNotUsed',
    'aLinksDontOpenNewWindow',
    'areaDontOpenNewWindow',
    'textareaLabelPositionedClose',
    'passwordLabelIsNearby',
    'checkboxLabelIsNearby',
    'fileLabelIsNearby',
    'radioLabelIsNearby',
    'frameRelationshipsMustBeDescribed',
    'inputTextHasLabel',
    'selectHasAssociatedLabel',
    'textareaHasAssociatedLabel',
    'passwordHasLabel',
    'checkboxHasLabel',
    'radioHasLabel',
    'aLinksMakeSenseOutOfContext',
    'aSuspiciousLinkText',
    'documentTitleNotEmpty',
    'documentTitleIsShort',
    'documentTitleIsNotPlaceholder',
    'documentTitleDescribesDocument',
    'svgContainsTitle',
    'cssTextHasContrast',
    'headersHaveText',
  );

}

/**
 * WCAG 1.0 Level AAA Guideline.
 *
 * This is intended to be used on html snippets only, not an entire document.
 */
class Quail_api_wcag1aaaGuideline extends quailGuideline {
  var $tests = array(
    'imgHasAlt',
    'imgNonDecorativeHasAlt',
    'imgImportantNoSpacerAlt',
    'imgHasLongDesc',
    'imgAltIsSameInText',
    'aLinksToSoundFilesNeedTranscripts',
    'aLinksToMultiMediaRequireTranscript',
    'appletContainsTextEquivalentInAlt',
    'frameRelationshipsMustBeDescribed',
    'inputImageHasAlt',
    'inputImageAltIdentifiesPurpose',
    'areaHasAltValue',
    'areaAltIdentifiesDestination',
    'areaLinksToSoundFile',
    'objectTextUpdatesWhenObjectChanges',
    'objectContentUsableWhenDisabled',
    'objectLinkToMultimediaHasTextTranscript',
    'objectMustHaveTitle',
    'objectMustHaveValidTitle',
    'objectMustContainText',
    'objectWithClassIDHasNoText',
    'imgMapAreasHaveDuplicateLink',
    'imgNotReferredToByColorAlone',
    'appletsDoneUseColorAlone',
    'inputDoesNotUseColorAlone',
    'objectDoesNotUseColorAlone',
    'scriptsDoNotUseColorAlone',
    'tableDataShouldHaveTh',
    'cssDocumentMakesSenseStyleTurnedOff',
    'documentContentReadableWithoutStylesheets',
    'objectTextUpdatesWhenObjectChanges',
    'objectWithClassIDHasNoText',
    'appletContainsTextEquivalent',
    'objectContentUsableWhenDisabled',
    'objectUIMustBeAccessible',
    'imgGifNoFlicker',
    'appletsDoNotFlicker',
    'objectDoesNotFlicker',
    'scriptsDoNotFlicker',
    'appletUIMustBeAccessible',
    'objectInterfaceIsAccessible',
    'scriptUIMustBeAccessible',
    'imgWithMapHasUseMap',
    'framesHaveATitle',
    'frameTitlesDescribeFunction',
    'imgWithMathShouldHaveMathEquivalent',
    'documentValidatesToDocType',
    'basefontIsNotUsed',
    'fontIsNotUsed',
    'headerH1',
    'headerH2',
    'headerH3',
    'headerH4',
    'headerH1Format',
    'headerH2Format',
    'headerH3Format',
    'headerH4Format',
    'headerH5Format',
    'headerH6Format',
    'menuNotUsedToFormatText',
    'listNotUsedForFormatting',
    'blockquoteNotUsedForIndentation',
    'tableLayoutDataShouldNotHaveTh',
    'scriptOnclickRequiresOnKeypress',
    'scriptOndblclickRequiresOnKeypress',
    'scriptOnmousedownRequiresOnKeypress',
    'scriptOnmousemove',
    'scriptOnmouseoutHasOnmouseblur',
    'scriptOnmouseoverHasOnfocus',
    'scriptOnmouseupHasOnkeyup',
    'framesetMustHaveNoFramesSection',
    'noframesSectionMustHaveTextEquivalent',
    'blinkIsNotUsed',
    'marqueeIsNotUsed',
    'documentMetaNotUsedWithTimeout',
    'documentAutoRedirectNotUsed',
    'aLinksDontOpenNewWindow',
    'areaDontOpenNewWindow',
    'textareaLabelPositionedClose',
    'passwordLabelIsNearby',
    'checkboxLabelIsNearby',
    'fileLabelIsNearby',
    'radioLabelIsNearby',
    'frameRelationshipsMustBeDescribed',
    'inputTextHasLabel',
    'selectHasAssociatedLabel',
    'textareaHasAssociatedLabel',
    'passwordHasLabel',
    'checkboxHasLabel',
    'radioHasLabel',
    'aLinksMakeSenseOutOfContext',
    'aSuspiciousLinkText',
    'documentTitleNotEmpty',
    'documentTitleIsShort',
    'documentTitleIsNotPlaceholder',
    'documentTitleDescribesDocument',
    'addressForAuthor',
    'imgMapAreasHaveDuplicateLink',
    'documentAbbrIsUsed',
    'documentAcronymsHaveElement',
    'documentLangIsISO639Standard',
    'tableComplexHasSummary',
    'tableSummaryIsEmpty',
    'tableSummaryIsSufficient',
    'tableLayoutHasNoSummary',
    'inputTextHasTabIndex',
    'inputRadioHasTabIndex',
    'inputPasswordHasTabIndex',
    'inputCheckboxHasTabIndex',
    'inputFileHasTabIndex',
    'aLinksAreSeperatedByPrintableCharacters',
    'svgContainsTitle',
    'cssTextHasContrast',
    'headersHaveText',
  );

}

/**
 * WCAG 2.0 Level A Guideline.
 *
 * This is intended to be used on html snippets only, not an entire document.
 */
class Quail_api_wcag2aGuideline extends quailGuideline {
  var $tests = array(
    'imgHasAlt',
    'imgAltIsDifferent',
    'imgAltIsTooLong',
    'imgAltNotPlaceHolder',
    'imgAltNotEmptyInAnchor',
    'imgHasLongDesc',
    'imgAltIsSameInText',
    'imgAltEmptyForDecorativeImages',
    'appletContainsTextEquivalentInAlt',
    'appletContainsTextEquivalent',
    'inputImageHasAlt',
    'inputImageAltIdentifiesPurpose',
    'inputImageAltIsShort',
    'inputImageAltIsNotPlaceholder',
    'areaHasAltValue',
    'areaAltIdentifiesDestination',
    'areaLinksToSoundFile',
    'objectMustContainText',
    'embedHasAssociatedNoEmbed',
    'inputImageNotDecorative',
    'areaAltRefersToText',
    'inputElementsDontHaveAlt',
    'aLinksToSoundFilesNeedTranscripts',
    'aLinksToMultiMediaRequireTranscript',
    'objectShouldHaveLongDescription',
    'inputTextHasLabel',
    'pNotUsedAsHeader',
    'selectHasAssociatedLabel',
    'textareaHasAssociatedLabel',
    'textareaLabelPositionedClose',
    'tableLayoutHasNoCaption',
    'passwordHasLabel',
    'checkboxHasLabel',
    'fileHasLabel',
    'radioHasLabel',
    'passwordLabelIsNearby',
    'checkboxLabelIsNearby',
    'fileLabelIsNearby',
    'radioLabelIsNearby',
    'tableLayoutMakesSenseLinearized',
    'tableLayoutDataShouldNotHaveTh',
    'tableUsesCaption',
    'preShouldNotBeUsedForTabularLayout',
    'radioMarkedWithFieldgroupAndLegend',
    'tableIsGrouped',
    'tableUseColGroup',
    'tabularDataIsInTable',
    'tableCaptionIdentifiesTable',
    'tableWithBothHeadersUseScope',
    'tableWithMoreHeadersUseID',
    'inputCheckboxRequiresFieldset',
    'documentVisualListsAreMarkedUp',
    'documentReadingDirection',
    'tableLayoutMakesSenseLinearized',
    'imgNotReferredToByColorAlone',
    'appletsDoneUseColorAlone',
    'inputDoesNotUseColorAlone',
    'objectDoesNotUseColorAlone',
    'scriptsDoNotUseColorAlone',
    'bodyColorContrast',
    'bodyLinkColorContrast',
    'bodyActiveLinkColorContrast',
    'bodyVisitedLinkColorContrast',
    'documentAllColorsAreSet',
    'appletUIMustBeAccessible',
    'objectInterfaceIsAccessible',
    'scriptUIMustBeAccessible',
    'scriptOndblclickRequiresOnKeypress',
    'scriptOnmousedownRequiresOnKeypress',
    'scriptOnmousemove',
    'scriptOnmouseoutHasOnmouseblur',
    'scriptOnmouseoverHasOnfocus',
    'scriptOnmouseupHasOnkeyup',
    'appletProvidesMechanismToReturnToParent',
    'objectProvidesMechanismToReturnToParent',
    'embedProvidesMechanismToReturnToParent',
    'documentMetaNotUsedWithTimeout',
    'blinkIsNotUsed',
    'marqueeIsNotUsed',
    'documentAutoRedirectNotUsed',
    'imgGifNoFlicker',
    'appletsDoNotFlicker',
    'objectDoesNotFlicker',
    'scriptsDoNotFlicker',
    'framesHaveATitle',
    'frameTitlesDescribeFunction',
    'documentTitleNotEmpty',
    'documentTitleIsShort',
    'documentTitleIsNotPlaceholder',
    'documentTitleDescribesDocument',
    'aLinksMakeSenseOutOfContext',
    'aSuspiciousLinkText',
    'aMustContainText',
    'documentLangIsISO639Standard',
    'areaDontOpenNewWindow',
    'selectDoesNotChangeContext',
    'labelMustBeUnique',
    'labelMustNotBeEmpty',
    'formWithRequiredLabel',
    'documentIDsMustBeUnique',
    'svgContainsTitle',
    'headersHaveText',
  );

}

/**
 * WCAG 2.0 Level AA Guideline.
 *
 * This is intended to be used on html snippets only, not an entire document.
 */
class Quail_api_wcag2aaGuideline extends quailGuideline {
  var $tests = array(
    'imgHasAlt',
    'imgAltIsDifferent',
    'imgAltIsTooLong',
    'imgAltNotPlaceHolder',
    'imgAltNotEmptyInAnchor',
    'imgHasLongDesc',
    'imgAltIsSameInText',
    'imgAltEmptyForDecorativeImages',
    'appletContainsTextEquivalentInAlt',
    'appletContainsTextEquivalent',
    'inputImageHasAlt',
    'inputImageAltIdentifiesPurpose',
    'inputImageAltIsShort',
    'inputImageAltIsNotPlaceholder',
    'areaHasAltValue',
    'areaAltIdentifiesDestination',
    'areaLinksToSoundFile',
    'objectMustContainText',
    'embedHasAssociatedNoEmbed',
    'inputImageNotDecorative',
    'areaAltRefersToText',
    'inputElementsDontHaveAlt',
    'aLinksToSoundFilesNeedTranscripts',
    'aLinksToMultiMediaRequireTranscript',
    'inputTextHasLabel',
    'pNotUsedAsHeader',
    'selectHasAssociatedLabel',
    'textareaHasAssociatedLabel',
    'textareaLabelPositionedClose',
    'tableLayoutHasNoCaption',
    'passwordHasLabel',
    'checkboxHasLabel',
    'fileHasLabel',
    'radioHasLabel',
    'passwordLabelIsNearby',
    'checkboxLabelIsNearby',
    'fileLabelIsNearby',
    'radioLabelIsNearby',
    'tableDataShouldHaveTh',
    'tableLayoutDataShouldNotHaveTh',
    'tableUsesCaption',
    'preShouldNotBeUsedForTabularLayout',
    'radioMarkedWithFieldgroupAndLegend',
    'tableIsGrouped',
    'tableUseColGroup',
    'tabularDataIsInTable',
    'tableCaptionIdentifiesTable',
    'tableWithBothHeadersUseScope',
    'tableWithMoreHeadersUseID',
    'inputCheckboxRequiresFieldset',
    'documentVisualListsAreMarkedUp',
    'documentReadingDirection',
    'tableLayoutMakesSenseLinearized',
    'appletUIMustBeAccessible',
    'objectInterfaceIsAccessible',
    'scriptUIMustBeAccessible',
    'scriptOndblclickRequiresOnKeypress',
    'scriptOnmousedownRequiresOnKeypress',
    'scriptOnmousemove',
    'scriptOnmouseoutHasOnmouseblur',
    'scriptOnmouseoverHasOnfocus',
    'scriptOnmouseupHasOnkeyup',
    'documentMetaNotUsedWithTimeout',
    'imgGifNoFlicker',
    'appletsDoNotFlicker',
    'objectDoesNotFlicker',
    'scriptsDoNotFlicker',
    'framesHaveATitle',
    'frameTitlesDescribeFunction',
    'documentLangIsISO639Standard',
    'areaDontOpenNewWindow',
    'selectDoesNotChangeContext',
    'documentIDsMustBeUnique',
    'objectShouldHaveLongDescription',
    'blinkIsNotUsed',
    'marqueeIsNotUsed',
    'documentAutoRedirectNotUsed',
    'documentTitleNotEmpty',
    'documentTitleIsShort',
    'documentTitleIsNotPlaceholder',
    'documentTitleDescribesDocument',
    'appletProvidesMechanismToReturnToParent',
    'objectProvidesMechanismToReturnToParent',
    'embedProvidesMechanismToReturnToParent',
    'imgAltIsSameInText',
    'boldIsNotUsed',
    'iIsNotUsed',
    'basefontIsNotUsed',
    'fontIsNotUsed',
    'bodyColorContrast',
    'bodyLinkColorContrast',
    'bodyActiveLinkColorContrast',
    'bodyVisitedLinkColorContrast',
    'imgNotReferredToByColorAlone',
    'appletsDoneUseColorAlone',
    'inputDoesNotUseColorAlone',
    'objectDoesNotUseColorAlone',
    'scriptsDoNotUseColorAlone',
    'documentAllColorsAreSet',
    'aLinksMakeSenseOutOfContext',
    'aSuspiciousLinkText',
    'aMustContainText',
    'headerH1',
    'headerH2',
    'headerH3',
    'headerH4',
    'headerH4',
    'headerH1Format',
    'headerH2Format',
    'headerH3Format',
    'headerH4Format',
    'headerH5Format',
    'headerH6Format',
    'tabIndexFollowsLogicalOrder',
    'listNotUsedForFormatting',
    'blockquoteNotUsedForIndentation',
    'blockquoteUseForQuotations',
    'labelMustBeUnique',
    'labelMustNotBeEmpty',
    'formWithRequiredLabel',
    'formHasGoodErrorMessage',
    'formErrorMessageHelpsUser',
    'formDeleteIsReversable',
    'svgContainsTitle',
    'cssTextHasContrast',
    'headersHaveText',
  );

}

/**
 * WCAG 2.0 Level AAA Guideline.
 *
 * This is intended to be used on html snippets only, not an entire document.
 */
class Quail_api_wcag2aaaGuideline extends quailGuideline {
  var $tests = array(
    'imgHasAlt',
    'imgAltIsDifferent',
    'imgAltIsTooLong',
    'imgAltNotPlaceHolder',
    'imgAltNotEmptyInAnchor',
    'imgHasLongDesc',
    'imgAltIsSameInText',
    'imgAltEmptyForDecorativeImages',
    'appletContainsTextEquivalentInAlt',
    'appletContainsTextEquivalent',
    'inputImageHasAlt',
    'inputImageAltIdentifiesPurpose',
    'inputImageAltIsShort',
    'inputImageAltIsNotPlaceholder',
    'areaHasAltValue',
    'areaAltIdentifiesDestination',
    'objectMustContainText',
    'embedHasAssociatedNoEmbed',
    'inputImageNotDecorative',
    'inputElementsDontHaveAlt',
    'aLinksToSoundFilesNeedTranscripts',
    'aLinksToMultiMediaRequireTranscript',
    'objectShouldHaveLongDescription',
    'inputTextHasLabel',
    'pNotUsedAsHeader',
    'selectHasAssociatedLabel',
    'textareaHasAssociatedLabel',
    'textareaLabelPositionedClose',
    'tableLayoutHasNoCaption',
    'passwordHasLabel',
    'checkboxHasLabel',
    'fileHasLabel',
    'radioHasLabel',
    'passwordLabelIsNearby',
    'checkboxLabelIsNearby',
    'fileLabelIsNearby',
    'radioLabelIsNearby',
    'tableDataShouldHaveTh',
    'tableLayoutDataShouldNotHaveTh',
    'tableUsesCaption',
    'preShouldNotBeUsedForTabularLayout',
    'radioMarkedWithFieldgroupAndLegend',
    'tableIsGrouped',
    'tableUseColGroup',
    'tabularDataIsInTable',
    'tableCaptionIdentifiesTable',
    'tableWithBothHeadersUseScope',
    'tableWithMoreHeadersUseID',
    'inputCheckboxRequiresFieldset',
    'documentVisualListsAreMarkedUp',
    'documentReadingDirection',
    'tableLayoutMakesSenseLinearized',
    'boldIsNotUsed',
    'iIsNotUsed',
    'basefontIsNotUsed',
    'fontIsNotUsed',
    'inputDoesNotUseColorAlone',
    'objectDoesNotUseColorAlone',
    'scriptsDoNotUseColorAlone',
    'bodyColorContrast',
    'bodyLinkColorContrast',
    'bodyActiveLinkColorContrast',
    'bodyVisitedLinkColorContrast',
    'documentAllColorsAreSet',
    'bodyColorContrast',
    'bodyLinkColorContrast',
    'bodyActiveLinkColorContrast',
    'bodyVisitedLinkColorContrast',
    'objectInterfaceIsAccessible',
    'scriptUIMustBeAccessible',
    'scriptOndblclickRequiresOnKeypress',
    'scriptOnmousedownRequiresOnKeypress',
    'scriptOnmousemove',
    'scriptOnmouseoutHasOnmouseblur',
    'scriptOnmouseoverHasOnfocus',
    'scriptOnmouseupHasOnkeyup',
    'appletProvidesMechanismToReturnToParent',
    'objectProvidesMechanismToReturnToParent',
    'embedProvidesMechanismToReturnToParent',
    'documentMetaNotUsedWithTimeout',
    'blinkIsNotUsed',
    'marqueeIsNotUsed',
    'documentAutoRedirectNotUsed',
    'imgGifNoFlicker',
    'appletsDoNotFlicker',
    'objectDoesNotFlicker',
    'scriptsDoNotFlicker',
    'framesHaveATitle',
    'frameTitlesDescribeFunction',
    'documentTitleNotEmpty',
    'documentTitleIsShort',
    'documentTitleIsNotPlaceholder',
    'documentTitleDescribesDocument',
    'aMustContainText',
    'headerH1',
    'headerH2',
    'headerH3',
    'headerH4',
    'headerH4',
    'headerH1Format',
    'headerH2Format',
    'headerH3Format',
    'headerH4Format',
    'headerH5Format',
    'headerH6Format',
    'headersUseToMarkSections',
    'documentLangIsISO639Standard',
    'selectDoesNotChangeContext',
    'tabIndexFollowsLogicalOrder',
    'listNotUsedForFormatting',
    'blockquoteNotUsedForIndentation',
    'blockquoteUseForQuotations',
    'aLinksDontOpenNewWindow',
    'documentIDsMustBeUnique',
    'imgAltIsSameInText',
    'documentAbbrIsUsed',
    'documentAcronymsHaveElement',
    'labelMustBeUnique',
    'labelMustNotBeEmpty',
    'formWithRequiredLabel',
    'formHasGoodErrorMessage',
    'formErrorMessageHelpsUser',
    'formDeleteIsReversable',
    'formErrorMessageHelpsUser',
    'formDeleteIsReversable',
    'svgContainsTitle',
    'documentIsWrittenClearly',
    'cssTextHasContrast',
    'headersHaveText',
  );

}

Classes

Namesort descending Description
Quail_api_allGuideline All known tests are performed here, except for the removed tests.
Quail_api_section508Guideline Section 508 Guideline.
Quail_api_wcag1aaaGuideline WCAG 1.0 Level AAA Guideline.
Quail_api_wcag1aaGuideline WCAG 1.0 Level AA Guideline.
Quail_api_wcag1aGuideline WCAG 1.0 Level A Guideline.
Quail_api_wcag2aaaGuideline WCAG 2.0 Level AAA Guideline.
Quail_api_wcag2aaGuideline WCAG 2.0 Level AA Guideline.
Quail_api_wcag2aGuideline WCAG 2.0 Level A Guideline.