--- /dev/null
+#ifndef __ACCESS_H__
+#define __ACCESS_H__
+
+/* access.h -- carry out accessibility checks
+
+ Copyright University of Toronto
+ Portions (c) 1998-2006 (W3C) MIT, ERCIM, Keio University
+ See tidy.h for the copyright notice.
+
+*/
+
+/*********************************************************************
+* AccessibilityChecks
+*
+* Carries out processes for all accessibility checks. Traverses
+* through all the content within the tree and evaluates the tags for
+* accessibility.
+*
+* To perform the following checks, 'AccessibilityChecks' must be
+* called AFTER the tree structure has been formed.
+*
+* If, in the command prompt, there is no specification of which
+* accessibility priorities to check, no accessibility checks will be
+* performed. (ie. '1' for priority 1, '2' for priorities 1 and 2,
+* and '3') for priorities 1, 2 and 3.)
+*
+* Copyright University of Toronto
+* Programmed by: Mike Lam and Chris Ridpath
+* Modifications by : Terry Teague (TRT)
+*
+*********************************************************************/
+
+
+#include "forward.h"
+
+#if SUPPORT_ACCESSIBILITY_CHECKS
+
+/* The accessibility checks to perform depending on user's desire.
+
+ 1. priority 1
+ 2. priority 1 & 2
+ 3. priority 1, 2, & 3
+*/
+
+/* Determines if the client-side text link is found within the document
+typedef struct AreaLinks
+{
+ struct AreaLinks* next;
+ char* link;
+ Bool HasBeenFound;
+} AreaLinks;
+*/
+
+enum {
+ TEXTBUF_SIZE=128u
+};
+
+struct _TidyAccessImpl;
+typedef struct _TidyAccessImpl TidyAccessImpl;
+
+struct _TidyAccessImpl
+{
+ /* gets set from Tidy variable AccessibilityCheckLevel */
+ int PRIORITYCHK;
+
+ /* Number of characters that are found within the concatenated text */
+ int counter;
+
+ /* list of characters in the text nodes found within a container element */
+ tmbchar textNode[ TEXTBUF_SIZE ];
+
+ /* The list of characters found within one text node */
+ tmbchar text[ TEXTBUF_SIZE ];
+
+ /* Number of frame elements found within a frameset */
+ int numFrames;
+
+ /* Number of 'longdesc' attributes found within a frameset */
+ int HasCheckedLongDesc;
+
+ int CheckedHeaders;
+ int ListElements;
+ int OtherListElements;
+
+ /* For 'USEMAP' identifier */
+ Bool HasUseMap;
+ Bool HasName;
+ Bool HasMap;
+
+ /* For tracking nodes that are deleted from the original parse tree - TRT */
+ /* Node *access_tree; */
+
+ Bool HasTH;
+ Bool HasValidFor;
+ Bool HasValidId;
+ Bool HasValidRowHeaders;
+ Bool HasValidColumnHeaders;
+ Bool HasInvalidRowHeader;
+ Bool HasInvalidColumnHeader;
+ int ForID;
+
+ /* List containing map-links
+ AreaLinks* links;
+ AreaLinks* start;
+ AreaLinks* current;
+ */
+
+};
+
+
+/*
+ Determines which error/warning message should be displayed,
+ depending on the error code that was called.
+
+ Offset accessibility error codes by FIRST_ACCESS_ERR to avoid conflict with
+ other error codes defined in message.h and used in localize.c.
+*/
+enum accessErrorCodes
+{
+ FIRST_ACCESS_ERR = 1000, /* must be first */
+
+ /* [1.1.1.1] */ IMG_MISSING_ALT,
+ /* [1.1.1.2] */ IMG_ALT_SUSPICIOUS_FILENAME,
+ /* [1.1.1.3] */ IMG_ALT_SUSPICIOUS_FILE_SIZE,
+ /* [1.1.1.4] */ IMG_ALT_SUSPICIOUS_PLACEHOLDER,
+ /* [1.1.1.10] */ IMG_ALT_SUSPICIOUS_TOO_LONG,
+ /* [1.1.1.11] */ IMG_MISSING_ALT_BULLET,
+ /* [1.1.1.12] */ IMG_MISSING_ALT_H_RULE,
+ /* [1.1.2.1] */ IMG_MISSING_LONGDESC_DLINK,
+ /* [1.1.2.2] */ IMG_MISSING_DLINK,
+ /* [1.1.2.3] */ IMG_MISSING_LONGDESC,
+ /* [1.1.2.5] */ LONGDESC_NOT_REQUIRED,
+ /* [1.1.3.1] */ IMG_BUTTON_MISSING_ALT,
+ /* [1.1.4.1] */ APPLET_MISSING_ALT,
+ /* [1.1.5.1] */ OBJECT_MISSING_ALT,
+ /* [1.1.6.1] */ AUDIO_MISSING_TEXT_WAV,
+ /* [1.1.6.2] */ AUDIO_MISSING_TEXT_AU,
+ /* [1.1.6.3] */ AUDIO_MISSING_TEXT_AIFF,
+ /* [1.1.6.4] */ AUDIO_MISSING_TEXT_SND,
+ /* [1.1.6.5] */ AUDIO_MISSING_TEXT_RA,
+ /* [1.1.6.6] */ AUDIO_MISSING_TEXT_RM,
+ /* [1.1.8.1] */ FRAME_MISSING_LONGDESC,
+ /* [1.1.9.1] */ AREA_MISSING_ALT,
+ /* [1.1.10.1] */ SCRIPT_MISSING_NOSCRIPT,
+ /* [1.1.12.1] */ ASCII_REQUIRES_DESCRIPTION,
+ /* [1.2.1.1] */ IMG_MAP_SERVER_REQUIRES_TEXT_LINKS,
+ /* [1.4.1.1] */ MULTIMEDIA_REQUIRES_TEXT,
+ /* [1.5.1.1] */ IMG_MAP_CLIENT_MISSING_TEXT_LINKS,
+ /* [2.1.1.1] */ INFORMATION_NOT_CONVEYED_IMAGE,
+ /* [2.1.1.2] */ INFORMATION_NOT_CONVEYED_APPLET,
+ /* [2.1.1.3] */ INFORMATION_NOT_CONVEYED_OBJECT,
+ /* [2.1.1.4] */ INFORMATION_NOT_CONVEYED_SCRIPT,
+ /* [2.1.1.5] */ INFORMATION_NOT_CONVEYED_INPUT,
+ /* [2.2.1.1] */ COLOR_CONTRAST_TEXT,
+ /* [2.2.1.2] */ COLOR_CONTRAST_LINK,
+ /* [2.2.1.3] */ COLOR_CONTRAST_ACTIVE_LINK,
+ /* [2.2.1.4] */ COLOR_CONTRAST_VISITED_LINK,
+ /* [3.2.1.1] */ DOCTYPE_MISSING,
+ /* [3.3.1.1] */ STYLE_SHEET_CONTROL_PRESENTATION,
+ /* [3.5.1.1] */ HEADERS_IMPROPERLY_NESTED,
+ /* [3.5.2.1] */ POTENTIAL_HEADER_BOLD,
+ /* [3.5.2.2] */ POTENTIAL_HEADER_ITALICS,
+ /* [3.5.2.3] */ POTENTIAL_HEADER_UNDERLINE,
+ /* [3.5.3.1] */ HEADER_USED_FORMAT_TEXT,
+ /* [3.6.1.1] */ LIST_USAGE_INVALID_UL,
+ /* [3.6.1.2] */ LIST_USAGE_INVALID_OL,
+ /* [3.6.1.4] */ LIST_USAGE_INVALID_LI,
+ /* [4.1.1.1] */ INDICATE_CHANGES_IN_LANGUAGE,
+ /* [4.3.1.1] */ LANGUAGE_NOT_IDENTIFIED,
+ /* [4.3.1.1] */ LANGUAGE_INVALID,
+ /* [5.1.2.1] */ DATA_TABLE_MISSING_HEADERS,
+ /* [5.1.2.2] */ DATA_TABLE_MISSING_HEADERS_COLUMN,
+ /* [5.1.2.3] */ DATA_TABLE_MISSING_HEADERS_ROW,
+ /* [5.2.1.1] */ DATA_TABLE_REQUIRE_MARKUP_COLUMN_HEADERS,
+ /* [5.2.1.2] */ DATA_TABLE_REQUIRE_MARKUP_ROW_HEADERS,
+ /* [5.3.1.1] */ LAYOUT_TABLES_LINEARIZE_PROPERLY,
+ /* [5.4.1.1] */ LAYOUT_TABLE_INVALID_MARKUP,
+ /* [5.5.1.1] */ TABLE_MISSING_SUMMARY,
+ /* [5.5.1.2] */ TABLE_SUMMARY_INVALID_NULL,
+ /* [5.5.1.3] */ TABLE_SUMMARY_INVALID_SPACES,
+ /* [5.5.1.6] */ TABLE_SUMMARY_INVALID_PLACEHOLDER,
+ /* [5.5.2.1] */ TABLE_MISSING_CAPTION,
+ /* [5.6.1.1] */ TABLE_MAY_REQUIRE_HEADER_ABBR,
+ /* [5.6.1.2] */ TABLE_MAY_REQUIRE_HEADER_ABBR_NULL,
+ /* [5.6.1.3] */ TABLE_MAY_REQUIRE_HEADER_ABBR_SPACES,
+ /* [6.1.1.1] */ STYLESHEETS_REQUIRE_TESTING_LINK,
+ /* [6.1.1.2] */ STYLESHEETS_REQUIRE_TESTING_STYLE_ELEMENT,
+ /* [6.1.1.3] */ STYLESHEETS_REQUIRE_TESTING_STYLE_ATTR,
+ /* [6.2.1.1] */ FRAME_SRC_INVALID,
+ /* [6.2.2.1] */ TEXT_EQUIVALENTS_REQUIRE_UPDATING_APPLET,
+ /* [6.2.2.2] */ TEXT_EQUIVALENTS_REQUIRE_UPDATING_SCRIPT,
+ /* [6.2.2.3] */ TEXT_EQUIVALENTS_REQUIRE_UPDATING_OBJECT,
+ /* [6.3.1.1] */ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_SCRIPT,
+ /* [6.3.1.2] */ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_OBJECT,
+ /* [6.3.1.3] */ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_EMBED,
+ /* [6.3.1.4] */ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_APPLET,
+ /* [6.5.1.1] */ FRAME_MISSING_NOFRAMES,
+ /* [6.5.1.2] */ NOFRAMES_INVALID_NO_VALUE,
+ /* [6.5.1.3] */ NOFRAMES_INVALID_CONTENT,
+ /* [6.5.1.4] */ NOFRAMES_INVALID_LINK,
+ /* [7.1.1.1] */ REMOVE_FLICKER_SCRIPT,
+ /* [7.1.1.2] */ REMOVE_FLICKER_OBJECT,
+ /* [7.1.1.3] */ REMOVE_FLICKER_EMBED,
+ /* [7.1.1.4] */ REMOVE_FLICKER_APPLET,
+ /* [7.1.1.5] */ REMOVE_FLICKER_ANIMATED_GIF,
+ /* [7.2.1.1] */ REMOVE_BLINK_MARQUEE,
+ /* [7.4.1.1] */ REMOVE_AUTO_REFRESH,
+ /* [7.5.1.1] */ REMOVE_AUTO_REDIRECT,
+ /* [8.1.1.1] */ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_SCRIPT,
+ /* [8.1.1.2] */ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_OBJECT,
+ /* [8.1.1.3] */ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_APPLET,
+ /* [8.1.1.4] */ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_EMBED,
+ /* [9.1.1.1] */ IMAGE_MAP_SERVER_SIDE_REQUIRES_CONVERSION,
+ /* [9.3.1.1] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_DOWN,
+ /* [9.3.1.2] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_UP,
+ /* [9.3.1.3] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_CLICK,
+ /* [9.3.1.4] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OVER,
+ /* [9.3.1.5] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OUT,
+ /* [9.3.1.6] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_MOVE,
+ /* [10.1.1.1] */ NEW_WINDOWS_REQUIRE_WARNING_NEW,
+ /* [10.1.1.2] */ NEW_WINDOWS_REQUIRE_WARNING_BLANK,
+ /* [10.2.1.1] */ LABEL_NEEDS_REPOSITIONING_BEFORE_INPUT,
+ /* [10.2.1.2] */ LABEL_NEEDS_REPOSITIONING_AFTER_INPUT,
+ /* [10.4.1.1] */ FORM_CONTROL_REQUIRES_DEFAULT_TEXT,
+ /* [10.4.1.2] */ FORM_CONTROL_DEFAULT_TEXT_INVALID_NULL,
+ /* [10.4.1.3] */ FORM_CONTROL_DEFAULT_TEXT_INVALID_SPACES,
+ /* [11.2.1.1] */ REPLACE_DEPRECATED_HTML_APPLET,
+ /* [11.2.1.2] */ REPLACE_DEPRECATED_HTML_BASEFONT,
+ /* [11.2.1.3] */ REPLACE_DEPRECATED_HTML_CENTER,
+ /* [11.2.1.4] */ REPLACE_DEPRECATED_HTML_DIR,
+ /* [11.2.1.5] */ REPLACE_DEPRECATED_HTML_FONT,
+ /* [11.2.1.6] */ REPLACE_DEPRECATED_HTML_ISINDEX,
+ /* [11.2.1.7] */ REPLACE_DEPRECATED_HTML_MENU,
+ /* [11.2.1.8] */ REPLACE_DEPRECATED_HTML_S,
+ /* [11.2.1.9] */ REPLACE_DEPRECATED_HTML_STRIKE,
+ /* [11.2.1.10] */ REPLACE_DEPRECATED_HTML_U,
+ /* [12.1.1.1] */ FRAME_MISSING_TITLE,
+ /* [12.1.1.2] */ FRAME_TITLE_INVALID_NULL,
+ /* [12.1.1.3] */ FRAME_TITLE_INVALID_SPACES,
+ /* [12.4.1.1] */ ASSOCIATE_LABELS_EXPLICITLY,
+ /* [12.4.1.2] */ ASSOCIATE_LABELS_EXPLICITLY_FOR,
+ /* [12.4.1.3] */ ASSOCIATE_LABELS_EXPLICITLY_ID,
+ /* [13.1.1.1] */ LINK_TEXT_NOT_MEANINGFUL,
+ /* [13.1.1.2] */ LINK_TEXT_MISSING,
+ /* [13.1.1.3] */ LINK_TEXT_TOO_LONG,
+ /* [13.1.1.4] */ LINK_TEXT_NOT_MEANINGFUL_CLICK_HERE,
+ /* [13.1.1.5] */ LINK_TEXT_NOT_MEANINGFUL_MORE,
+ /* [13.1.1.6] */ LINK_TEXT_NOT_MEANINGFUL_FOLLOW_THIS,
+ /* [13.2.1.1] */ METADATA_MISSING,
+ /* [13.2.1.2] */ METADATA_MISSING_LINK,
+ /* [13.2.1.3] */ METADATA_MISSING_REDIRECT_AUTOREFRESH,
+ /* [13.10.1.1] */ SKIPOVER_ASCII_ART,
+
+ LAST_ACCESS_ERR /* must be last */
+};
+
+
+void TY_(AccessibilityHelloMessage)( TidyDocImpl* doc );
+void TY_(DisplayHTMLTableAlgorithm)( TidyDocImpl* doc );
+
+/************************************************************
+* AccessibilityChecks
+*
+* Traverses through the individual nodes of the tree
+* and checks attributes and elements for accessibility.
+* after the tree structure has been formed.
+************************************************************/
+
+void TY_(AccessibilityChecks)( TidyDocImpl* doc );
+
+
+#endif /* SUPPORT_ACCESSIBILITY_CHECKS */
+#endif /* __ACCESS_H__ */