HTML Tidy
0.1
|
00001 #ifndef __ACCESS_H__ 00002 #define __ACCESS_H__ 00003 00004 /* access.h -- carry out accessibility checks 00005 00006 Copyright University of Toronto 00007 Portions (c) 1998-2006 (W3C) MIT, ERCIM, Keio University 00008 See tidy.h for the copyright notice. 00009 00010 CVS Info : 00011 00012 $Author: arnaud02 $ 00013 $Date: 2006/09/12 15:14:44 $ 00014 $Revision: 1.7 $ 00015 00016 */ 00017 00018 /********************************************************************* 00019 * AccessibilityChecks 00020 * 00021 * Carries out processes for all accessibility checks. Traverses 00022 * through all the content within the tree and evaluates the tags for 00023 * accessibility. 00024 * 00025 * To perform the following checks, 'AccessibilityChecks' must be 00026 * called AFTER the tree structure has been formed. 00027 * 00028 * If, in the command prompt, there is no specification of which 00029 * accessibility priorities to check, no accessibility checks will be 00030 * performed. (ie. '1' for priority 1, '2' for priorities 1 and 2, 00031 * and '3') for priorities 1, 2 and 3.) 00032 * 00033 * Copyright University of Toronto 00034 * Programmed by: Mike Lam and Chris Ridpath 00035 * Modifications by : Terry Teague (TRT) 00036 * 00037 *********************************************************************/ 00038 00039 00040 #include "forward.h" 00041 00042 #if SUPPORT_ACCESSIBILITY_CHECKS 00043 00044 /* The accessibility checks to perform depending on user's desire. 00045 00046 1. priority 1 00047 2. priority 1 & 2 00048 3. priority 1, 2, & 3 00049 */ 00050 00051 /* Determines if the client-side text link is found within the document 00052 typedef struct AreaLinks 00053 { 00054 struct AreaLinks* next; 00055 char* link; 00056 Bool HasBeenFound; 00057 } AreaLinks; 00058 */ 00059 00060 enum { 00061 TEXTBUF_SIZE=128u 00062 }; 00063 00064 struct _TidyAccessImpl; 00065 typedef struct _TidyAccessImpl TidyAccessImpl; 00066 00067 struct _TidyAccessImpl 00068 { 00069 /* gets set from Tidy variable AccessibilityCheckLevel */ 00070 int PRIORITYCHK; 00071 00072 /* Number of characters that are found within the concatenated text */ 00073 int counter; 00074 00075 /* list of characters in the text nodes found within a container element */ 00076 tmbchar textNode[ TEXTBUF_SIZE ]; 00077 00078 /* The list of characters found within one text node */ 00079 tmbchar text[ TEXTBUF_SIZE ]; 00080 00081 /* Number of frame elements found within a frameset */ 00082 int numFrames; 00083 00084 /* Number of 'longdesc' attributes found within a frameset */ 00085 int HasCheckedLongDesc; 00086 00087 int CheckedHeaders; 00088 int ListElements; 00089 int OtherListElements; 00090 00091 /* For 'USEMAP' identifier */ 00092 Bool HasUseMap; 00093 Bool HasName; 00094 Bool HasMap; 00095 00096 /* For tracking nodes that are deleted from the original parse tree - TRT */ 00097 /* Node *access_tree; */ 00098 00099 Bool HasTH; 00100 Bool HasValidFor; 00101 Bool HasValidId; 00102 Bool HasValidRowHeaders; 00103 Bool HasValidColumnHeaders; 00104 Bool HasInvalidRowHeader; 00105 Bool HasInvalidColumnHeader; 00106 int ForID; 00107 00108 /* List containing map-links 00109 AreaLinks* links; 00110 AreaLinks* start; 00111 AreaLinks* current; 00112 */ 00113 00114 }; 00115 00116 00117 /* 00118 Determines which error/warning message should be displayed, 00119 depending on the error code that was called. 00120 00121 Offset accessibility error codes by FIRST_ACCESS_ERR to avoid conflict with 00122 other error codes defined in message.h and used in localize.c. 00123 */ 00124 enum accessErrorCodes 00125 { 00126 FIRST_ACCESS_ERR = 1000, /* must be first */ 00127 00128 /* [1.1.1.1] */ IMG_MISSING_ALT, 00129 /* [1.1.1.2] */ IMG_ALT_SUSPICIOUS_FILENAME, 00130 /* [1.1.1.3] */ IMG_ALT_SUSPICIOUS_FILE_SIZE, 00131 /* [1.1.1.4] */ IMG_ALT_SUSPICIOUS_PLACEHOLDER, 00132 /* [1.1.1.10] */ IMG_ALT_SUSPICIOUS_TOO_LONG, 00133 /* [1.1.1.11] */ IMG_MISSING_ALT_BULLET, 00134 /* [1.1.1.12] */ IMG_MISSING_ALT_H_RULE, 00135 /* [1.1.2.1] */ IMG_MISSING_LONGDESC_DLINK, 00136 /* [1.1.2.2] */ IMG_MISSING_DLINK, 00137 /* [1.1.2.3] */ IMG_MISSING_LONGDESC, 00138 /* [1.1.2.5] */ LONGDESC_NOT_REQUIRED, 00139 /* [1.1.3.1] */ IMG_BUTTON_MISSING_ALT, 00140 /* [1.1.4.1] */ APPLET_MISSING_ALT, 00141 /* [1.1.5.1] */ OBJECT_MISSING_ALT, 00142 /* [1.1.6.1] */ AUDIO_MISSING_TEXT_WAV, 00143 /* [1.1.6.2] */ AUDIO_MISSING_TEXT_AU, 00144 /* [1.1.6.3] */ AUDIO_MISSING_TEXT_AIFF, 00145 /* [1.1.6.4] */ AUDIO_MISSING_TEXT_SND, 00146 /* [1.1.6.5] */ AUDIO_MISSING_TEXT_RA, 00147 /* [1.1.6.6] */ AUDIO_MISSING_TEXT_RM, 00148 /* [1.1.8.1] */ FRAME_MISSING_LONGDESC, 00149 /* [1.1.9.1] */ AREA_MISSING_ALT, 00150 /* [1.1.10.1] */ SCRIPT_MISSING_NOSCRIPT, 00151 /* [1.1.12.1] */ ASCII_REQUIRES_DESCRIPTION, 00152 /* [1.2.1.1] */ IMG_MAP_SERVER_REQUIRES_TEXT_LINKS, 00153 /* [1.4.1.1] */ MULTIMEDIA_REQUIRES_TEXT, 00154 /* [1.5.1.1] */ IMG_MAP_CLIENT_MISSING_TEXT_LINKS, 00155 /* [2.1.1.1] */ INFORMATION_NOT_CONVEYED_IMAGE, 00156 /* [2.1.1.2] */ INFORMATION_NOT_CONVEYED_APPLET, 00157 /* [2.1.1.3] */ INFORMATION_NOT_CONVEYED_OBJECT, 00158 /* [2.1.1.4] */ INFORMATION_NOT_CONVEYED_SCRIPT, 00159 /* [2.1.1.5] */ INFORMATION_NOT_CONVEYED_INPUT, 00160 /* [2.2.1.1] */ COLOR_CONTRAST_TEXT, 00161 /* [2.2.1.2] */ COLOR_CONTRAST_LINK, 00162 /* [2.2.1.3] */ COLOR_CONTRAST_ACTIVE_LINK, 00163 /* [2.2.1.4] */ COLOR_CONTRAST_VISITED_LINK, 00164 /* [3.2.1.1] */ DOCTYPE_MISSING, 00165 /* [3.3.1.1] */ STYLE_SHEET_CONTROL_PRESENTATION, 00166 /* [3.5.1.1] */ HEADERS_IMPROPERLY_NESTED, 00167 /* [3.5.2.1] */ POTENTIAL_HEADER_BOLD, 00168 /* [3.5.2.2] */ POTENTIAL_HEADER_ITALICS, 00169 /* [3.5.2.3] */ POTENTIAL_HEADER_UNDERLINE, 00170 /* [3.5.3.1] */ HEADER_USED_FORMAT_TEXT, 00171 /* [3.6.1.1] */ LIST_USAGE_INVALID_UL, 00172 /* [3.6.1.2] */ LIST_USAGE_INVALID_OL, 00173 /* [3.6.1.4] */ LIST_USAGE_INVALID_LI, 00174 /* [4.1.1.1] */ INDICATE_CHANGES_IN_LANGUAGE, 00175 /* [4.3.1.1] */ LANGUAGE_NOT_IDENTIFIED, 00176 /* [4.3.1.1] */ LANGUAGE_INVALID, 00177 /* [5.1.2.1] */ DATA_TABLE_MISSING_HEADERS, 00178 /* [5.1.2.2] */ DATA_TABLE_MISSING_HEADERS_COLUMN, 00179 /* [5.1.2.3] */ DATA_TABLE_MISSING_HEADERS_ROW, 00180 /* [5.2.1.1] */ DATA_TABLE_REQUIRE_MARKUP_COLUMN_HEADERS, 00181 /* [5.2.1.2] */ DATA_TABLE_REQUIRE_MARKUP_ROW_HEADERS, 00182 /* [5.3.1.1] */ LAYOUT_TABLES_LINEARIZE_PROPERLY, 00183 /* [5.4.1.1] */ LAYOUT_TABLE_INVALID_MARKUP, 00184 /* [5.5.1.1] */ TABLE_MISSING_SUMMARY, 00185 /* [5.5.1.2] */ TABLE_SUMMARY_INVALID_NULL, 00186 /* [5.5.1.3] */ TABLE_SUMMARY_INVALID_SPACES, 00187 /* [5.5.1.6] */ TABLE_SUMMARY_INVALID_PLACEHOLDER, 00188 /* [5.5.2.1] */ TABLE_MISSING_CAPTION, 00189 /* [5.6.1.1] */ TABLE_MAY_REQUIRE_HEADER_ABBR, 00190 /* [5.6.1.2] */ TABLE_MAY_REQUIRE_HEADER_ABBR_NULL, 00191 /* [5.6.1.3] */ TABLE_MAY_REQUIRE_HEADER_ABBR_SPACES, 00192 /* [6.1.1.1] */ STYLESHEETS_REQUIRE_TESTING_LINK, 00193 /* [6.1.1.2] */ STYLESHEETS_REQUIRE_TESTING_STYLE_ELEMENT, 00194 /* [6.1.1.3] */ STYLESHEETS_REQUIRE_TESTING_STYLE_ATTR, 00195 /* [6.2.1.1] */ FRAME_SRC_INVALID, 00196 /* [6.2.2.1] */ TEXT_EQUIVALENTS_REQUIRE_UPDATING_APPLET, 00197 /* [6.2.2.2] */ TEXT_EQUIVALENTS_REQUIRE_UPDATING_SCRIPT, 00198 /* [6.2.2.3] */ TEXT_EQUIVALENTS_REQUIRE_UPDATING_OBJECT, 00199 /* [6.3.1.1] */ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_SCRIPT, 00200 /* [6.3.1.2] */ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_OBJECT, 00201 /* [6.3.1.3] */ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_EMBED, 00202 /* [6.3.1.4] */ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_APPLET, 00203 /* [6.5.1.1] */ FRAME_MISSING_NOFRAMES, 00204 /* [6.5.1.2] */ NOFRAMES_INVALID_NO_VALUE, 00205 /* [6.5.1.3] */ NOFRAMES_INVALID_CONTENT, 00206 /* [6.5.1.4] */ NOFRAMES_INVALID_LINK, 00207 /* [7.1.1.1] */ REMOVE_FLICKER_SCRIPT, 00208 /* [7.1.1.2] */ REMOVE_FLICKER_OBJECT, 00209 /* [7.1.1.3] */ REMOVE_FLICKER_EMBED, 00210 /* [7.1.1.4] */ REMOVE_FLICKER_APPLET, 00211 /* [7.1.1.5] */ REMOVE_FLICKER_ANIMATED_GIF, 00212 /* [7.2.1.1] */ REMOVE_BLINK_MARQUEE, 00213 /* [7.4.1.1] */ REMOVE_AUTO_REFRESH, 00214 /* [7.5.1.1] */ REMOVE_AUTO_REDIRECT, 00215 /* [8.1.1.1] */ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_SCRIPT, 00216 /* [8.1.1.2] */ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_OBJECT, 00217 /* [8.1.1.3] */ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_APPLET, 00218 /* [8.1.1.4] */ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_EMBED, 00219 /* [9.1.1.1] */ IMAGE_MAP_SERVER_SIDE_REQUIRES_CONVERSION, 00220 /* [9.3.1.1] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_DOWN, 00221 /* [9.3.1.2] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_UP, 00222 /* [9.3.1.3] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_CLICK, 00223 /* [9.3.1.4] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OVER, 00224 /* [9.3.1.5] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OUT, 00225 /* [9.3.1.6] */ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_MOVE, 00226 /* [10.1.1.1] */ NEW_WINDOWS_REQUIRE_WARNING_NEW, 00227 /* [10.1.1.2] */ NEW_WINDOWS_REQUIRE_WARNING_BLANK, 00228 /* [10.2.1.1] */ LABEL_NEEDS_REPOSITIONING_BEFORE_INPUT, 00229 /* [10.2.1.2] */ LABEL_NEEDS_REPOSITIONING_AFTER_INPUT, 00230 /* [10.4.1.1] */ FORM_CONTROL_REQUIRES_DEFAULT_TEXT, 00231 /* [10.4.1.2] */ FORM_CONTROL_DEFAULT_TEXT_INVALID_NULL, 00232 /* [10.4.1.3] */ FORM_CONTROL_DEFAULT_TEXT_INVALID_SPACES, 00233 /* [11.2.1.1] */ REPLACE_DEPRECATED_HTML_APPLET, 00234 /* [11.2.1.2] */ REPLACE_DEPRECATED_HTML_BASEFONT, 00235 /* [11.2.1.3] */ REPLACE_DEPRECATED_HTML_CENTER, 00236 /* [11.2.1.4] */ REPLACE_DEPRECATED_HTML_DIR, 00237 /* [11.2.1.5] */ REPLACE_DEPRECATED_HTML_FONT, 00238 /* [11.2.1.6] */ REPLACE_DEPRECATED_HTML_ISINDEX, 00239 /* [11.2.1.7] */ REPLACE_DEPRECATED_HTML_MENU, 00240 /* [11.2.1.8] */ REPLACE_DEPRECATED_HTML_S, 00241 /* [11.2.1.9] */ REPLACE_DEPRECATED_HTML_STRIKE, 00242 /* [11.2.1.10] */ REPLACE_DEPRECATED_HTML_U, 00243 /* [12.1.1.1] */ FRAME_MISSING_TITLE, 00244 /* [12.1.1.2] */ FRAME_TITLE_INVALID_NULL, 00245 /* [12.1.1.3] */ FRAME_TITLE_INVALID_SPACES, 00246 /* [12.4.1.1] */ ASSOCIATE_LABELS_EXPLICITLY, 00247 /* [12.4.1.2] */ ASSOCIATE_LABELS_EXPLICITLY_FOR, 00248 /* [12.4.1.3] */ ASSOCIATE_LABELS_EXPLICITLY_ID, 00249 /* [13.1.1.1] */ LINK_TEXT_NOT_MEANINGFUL, 00250 /* [13.1.1.2] */ LINK_TEXT_MISSING, 00251 /* [13.1.1.3] */ LINK_TEXT_TOO_LONG, 00252 /* [13.1.1.4] */ LINK_TEXT_NOT_MEANINGFUL_CLICK_HERE, 00253 /* [13.1.1.5] */ LINK_TEXT_NOT_MEANINGFUL_MORE, 00254 /* [13.1.1.6] */ LINK_TEXT_NOT_MEANINGFUL_FOLLOW_THIS, 00255 /* [13.2.1.1] */ METADATA_MISSING, 00256 /* [13.2.1.2] */ METADATA_MISSING_LINK, 00257 /* [13.2.1.3] */ METADATA_MISSING_REDIRECT_AUTOREFRESH, 00258 /* [13.10.1.1] */ SKIPOVER_ASCII_ART, 00259 00260 LAST_ACCESS_ERR /* must be last */ 00261 }; 00262 00263 00264 void TY_(AccessibilityHelloMessage)( TidyDocImpl* doc ); 00265 void TY_(DisplayHTMLTableAlgorithm)( TidyDocImpl* doc ); 00266 00267 /************************************************************ 00268 * AccessibilityChecks 00269 * 00270 * Traverses through the individual nodes of the tree 00271 * and checks attributes and elements for accessibility. 00272 * after the tree structure has been formed. 00273 ************************************************************/ 00274 00275 void TY_(AccessibilityChecks)( TidyDocImpl* doc ); 00276 00277 00278 #endif /* SUPPORT_ACCESSIBILITY_CHECKS */ 00279 #endif /* __ACCESS_H__ */