4 /* attrs.h -- recognize HTML attributes
6 (c) 1998-2007 (W3C) MIT, ERCIM, Keio University
7 See tidy.h for the copyright notice.
13 /* declaration for methods that check attribute values */
14 typedef void (AttrCheck)(TidyDocImpl* doc, Node *node, AttVal *attval);
22 struct _Attribute* next;
27 Anchor/Node linked list
37 typedef struct _Anchor Anchor;
39 #if !defined(ATTRIBUTE_HASH_LOOKUP)
40 #define ATTRIBUTE_HASH_LOOKUP 1
43 #if ATTRIBUTE_HASH_LOOKUP
46 ATTRIBUTE_HASH_SIZE=178u
51 Attribute const* attr;
52 struct _AttrHash* next;
55 typedef struct _AttrHash AttrHash;
60 ANCHOR_HASH_SIZE=1021u
63 struct _TidyAttribImpl
65 /* anchor/node lookup */
66 Anchor* anchor_hash[ANCHOR_HASH_SIZE];
68 /* Declared literal attributes */
69 Attribute* declared_attr_list;
71 #if ATTRIBUTE_HASH_LOOKUP
72 AttrHash* hashtab[ATTRIBUTE_HASH_SIZE];
76 typedef struct _TidyAttribImpl TidyAttribImpl;
78 #define XHTML_NAMESPACE "http://www.w3.org/1999/xhtml"
80 AttrCheck TY_(CheckUrl);
82 /* public method for finding attribute definition by name */
83 const Attribute* TY_(CheckAttribute)( TidyDocImpl* doc, Node *node, AttVal *attval );
85 const Attribute* TY_(FindAttribute)( TidyDocImpl* doc, AttVal *attval );
87 AttVal* TY_(GetAttrByName)( Node *node, ctmbstr name );
89 void TY_(DropAttrByName)( TidyDocImpl* doc, Node *node, ctmbstr name );
91 AttVal* TY_(AddAttribute)( TidyDocImpl* doc,
92 Node *node, ctmbstr name, ctmbstr value );
94 AttVal* TY_(RepairAttrValue)(TidyDocImpl* doc, Node* node, ctmbstr name, ctmbstr value);
96 Bool TY_(IsUrl)( TidyDocImpl* doc, ctmbstr attrname );
98 /* Bool IsBool( TidyDocImpl* doc, ctmbstr attrname ); */
100 Bool TY_(IsScript)( TidyDocImpl* doc, ctmbstr attrname );
102 /* may id or name serve as anchor? */
103 Bool TY_(IsAnchorElement)( TidyDocImpl* doc, Node* node );
106 In CSS1, selectors can contain only the characters A-Z, 0-9, and
107 Unicode characters 161-255, plus dash (-); they cannot start with
108 a dash or a digit; they can also contain escaped characters and any
109 Unicode character as a numeric code (see next item).
111 The backslash followed by at most four hexadecimal digits (0..9A..F)
112 stands for the Unicode character with that number.
114 Any character except a hexadecimal digit can be escaped to remove its
115 special meaning, by putting a backslash in front.
117 #508936 - CSS class naming for -clean option
119 Bool TY_(IsCSS1Selector)( ctmbstr buf );
121 Bool TY_(IsValidHTMLID)(ctmbstr id);
122 Bool TY_(IsValidXMLID)(ctmbstr id);
124 /* removes anchor for specific node */
125 void TY_(RemoveAnchorByNode)( TidyDocImpl* doc, ctmbstr name, Node *node );
127 /* free all anchors */
128 void TY_(FreeAnchors)( TidyDocImpl* doc );
131 /* public methods for inititializing/freeing attribute dictionary */
132 void TY_(InitAttrs)( TidyDocImpl* doc );
133 void TY_(FreeAttrTable)( TidyDocImpl* doc );
135 void TY_(AppendToClassAttr)( TidyDocImpl* doc, AttVal *classattr, ctmbstr classname );
137 the same attribute name can't be used
138 more than once in each element
140 void TY_(RepairDuplicateAttributes)( TidyDocImpl* doc, Node* node, Bool isXml );
141 void TY_(SortAttributes)(Node* node, TidyAttrSortStrategy strat);
143 Bool TY_(IsBoolAttribute)( AttVal* attval );
144 Bool TY_(attrIsEvent)( AttVal* attval );
146 AttVal* TY_(AttrGetById)( Node* node, TidyAttrId id );
148 uint TY_(NodeAttributeVersions)( Node* node, TidyAttrId id );
150 /* 0 == TidyAttr_UNKNOWN */
151 #define AttrId(av) ((av) && (av)->dict ? (av)->dict->id : TidyAttr_UNKNOWN)
152 #define AttrIsId(av, atid) ((av) && (av)->dict && ((av)->dict->id == atid))
154 #define AttrHasValue(attr) ((attr) && (attr)->value)
155 #define AttrValueIs(attr, val) (AttrHasValue(attr) && \
156 TY_(tmbstrcasecmp)((attr)->value, val) == 0)
157 #define AttrContains(attr, val) (AttrHasValue(attr) && \
158 TY_(tmbsubstr)((attr)->value, val) != NULL)
159 #define AttrVersions(attr) ((attr) && (attr)->dict ? (attr)->dict->versions : VERS_PROPRIETARY)
161 #define AttrsHaveSameId(a, b) (a && b && a->dict && b->dict && a->dict->id && \
162 b->dict->id && a->dict->id == b->dict->id)
164 #define attrIsABBR(av) AttrIsId( av, TidyAttr_ABBR )
165 #define attrIsACCEPT(av) AttrIsId( av, TidyAttr_ACCEPT )
166 #define attrIsACCEPT_CHARSET(av) AttrIsId( av, TidyAttr_ACCEPT_CHARSET )
167 #define attrIsACCESSKEY(av) AttrIsId( av, TidyAttr_ACCESSKEY )
168 #define attrIsACTION(av) AttrIsId( av, TidyAttr_ACTION )
169 #define attrIsADD_DATE(av) AttrIsId( av, TidyAttr_ADD_DATE )
170 #define attrIsALIGN(av) AttrIsId( av, TidyAttr_ALIGN )
171 #define attrIsALINK(av) AttrIsId( av, TidyAttr_ALINK )
172 #define attrIsALT(av) AttrIsId( av, TidyAttr_ALT )
173 #define attrIsARCHIVE(av) AttrIsId( av, TidyAttr_ARCHIVE )
174 #define attrIsAXIS(av) AttrIsId( av, TidyAttr_AXIS )
175 #define attrIsBACKGROUND(av) AttrIsId( av, TidyAttr_BACKGROUND )
176 #define attrIsBGCOLOR(av) AttrIsId( av, TidyAttr_BGCOLOR )
177 #define attrIsBGPROPERTIES(av) AttrIsId( av, TidyAttr_BGPROPERTIES )
178 #define attrIsBORDER(av) AttrIsId( av, TidyAttr_BORDER )
179 #define attrIsBORDERCOLOR(av) AttrIsId( av, TidyAttr_BORDERCOLOR )
180 #define attrIsBOTTOMMARGIN(av) AttrIsId( av, TidyAttr_BOTTOMMARGIN )
181 #define attrIsCELLPADDING(av) AttrIsId( av, TidyAttr_CELLPADDING )
182 #define attrIsCELLSPACING(av) AttrIsId( av, TidyAttr_CELLSPACING )
183 #define attrIsCHAR(av) AttrIsId( av, TidyAttr_CHAR )
184 #define attrIsCHAROFF(av) AttrIsId( av, TidyAttr_CHAROFF )
185 #define attrIsCHARSET(av) AttrIsId( av, TidyAttr_CHARSET )
186 #define attrIsCHECKED(av) AttrIsId( av, TidyAttr_CHECKED )
187 #define attrIsCITE(av) AttrIsId( av, TidyAttr_CITE )
188 #define attrIsCLASS(av) AttrIsId( av, TidyAttr_CLASS )
189 #define attrIsCLASSID(av) AttrIsId( av, TidyAttr_CLASSID )
190 #define attrIsCLEAR(av) AttrIsId( av, TidyAttr_CLEAR )
191 #define attrIsCODE(av) AttrIsId( av, TidyAttr_CODE )
192 #define attrIsCODEBASE(av) AttrIsId( av, TidyAttr_CODEBASE )
193 #define attrIsCODETYPE(av) AttrIsId( av, TidyAttr_CODETYPE )
194 #define attrIsCOLOR(av) AttrIsId( av, TidyAttr_COLOR )
195 #define attrIsCOLS(av) AttrIsId( av, TidyAttr_COLS )
196 #define attrIsCOLSPAN(av) AttrIsId( av, TidyAttr_COLSPAN )
197 #define attrIsCOMPACT(av) AttrIsId( av, TidyAttr_COMPACT )
198 #define attrIsCONTENT(av) AttrIsId( av, TidyAttr_CONTENT )
199 #define attrIsCOORDS(av) AttrIsId( av, TidyAttr_COORDS )
200 #define attrIsDATA(av) AttrIsId( av, TidyAttr_DATA )
201 #define attrIsDATAFLD(av) AttrIsId( av, TidyAttr_DATAFLD )
202 #define attrIsDATAFORMATAS(av) AttrIsId( av, TidyAttr_DATAFORMATAS )
203 #define attrIsDATAPAGESIZE(av) AttrIsId( av, TidyAttr_DATAPAGESIZE )
204 #define attrIsDATASRC(av) AttrIsId( av, TidyAttr_DATASRC )
205 #define attrIsDATETIME(av) AttrIsId( av, TidyAttr_DATETIME )
206 #define attrIsDECLARE(av) AttrIsId( av, TidyAttr_DECLARE )
207 #define attrIsDEFER(av) AttrIsId( av, TidyAttr_DEFER )
208 #define attrIsDIR(av) AttrIsId( av, TidyAttr_DIR )
209 #define attrIsDISABLED(av) AttrIsId( av, TidyAttr_DISABLED )
210 #define attrIsENCODING(av) AttrIsId( av, TidyAttr_ENCODING )
211 #define attrIsENCTYPE(av) AttrIsId( av, TidyAttr_ENCTYPE )
212 #define attrIsFACE(av) AttrIsId( av, TidyAttr_FACE )
213 #define attrIsFOR(av) AttrIsId( av, TidyAttr_FOR )
214 #define attrIsFRAME(av) AttrIsId( av, TidyAttr_FRAME )
215 #define attrIsFRAMEBORDER(av) AttrIsId( av, TidyAttr_FRAMEBORDER )
216 #define attrIsFRAMESPACING(av) AttrIsId( av, TidyAttr_FRAMESPACING )
217 #define attrIsGRIDX(av) AttrIsId( av, TidyAttr_GRIDX )
218 #define attrIsGRIDY(av) AttrIsId( av, TidyAttr_GRIDY )
219 #define attrIsHEADERS(av) AttrIsId( av, TidyAttr_HEADERS )
220 #define attrIsHEIGHT(av) AttrIsId( av, TidyAttr_HEIGHT )
221 #define attrIsHREF(av) AttrIsId( av, TidyAttr_HREF )
222 #define attrIsHREFLANG(av) AttrIsId( av, TidyAttr_HREFLANG )
223 #define attrIsHSPACE(av) AttrIsId( av, TidyAttr_HSPACE )
224 #define attrIsHTTP_EQUIV(av) AttrIsId( av, TidyAttr_HTTP_EQUIV )
225 #define attrIsID(av) AttrIsId( av, TidyAttr_ID )
226 #define attrIsISMAP(av) AttrIsId( av, TidyAttr_ISMAP )
227 #define attrIsITEMID(av) AttrIsId( av, TidyAttr_ITEMID )
228 #define attrIsITEMPROP(av) AttrIsId( av, TidyAttr_ITEMPROP )
229 #define attrIsITEMREF(av) AttrIsId( av, TidyAttr_ITEMREF )
230 #define attrIsITEMSCOPE(av) AttrIsId( av, TidyAttr_ITEMSCOPE )
231 #define attrIsITEMTYPE(av) AttrIsId( av, TidyAttr_ITEMTYPE )
232 #define attrIsLABEL(av) AttrIsId( av, TidyAttr_LABEL )
233 #define attrIsLANG(av) AttrIsId( av, TidyAttr_LANG )
234 #define attrIsLANGUAGE(av) AttrIsId( av, TidyAttr_LANGUAGE )
235 #define attrIsLAST_MODIFIED(av) AttrIsId( av, TidyAttr_LAST_MODIFIED )
236 #define attrIsLAST_VISIT(av) AttrIsId( av, TidyAttr_LAST_VISIT )
237 #define attrIsLEFTMARGIN(av) AttrIsId( av, TidyAttr_LEFTMARGIN )
238 #define attrIsLINK(av) AttrIsId( av, TidyAttr_LINK )
239 #define attrIsLONGDESC(av) AttrIsId( av, TidyAttr_LONGDESC )
240 #define attrIsLOWSRC(av) AttrIsId( av, TidyAttr_LOWSRC )
241 #define attrIsMARGINHEIGHT(av) AttrIsId( av, TidyAttr_MARGINHEIGHT )
242 #define attrIsMARGINWIDTH(av) AttrIsId( av, TidyAttr_MARGINWIDTH )
243 #define attrIsMAXLENGTH(av) AttrIsId( av, TidyAttr_MAXLENGTH )
244 #define attrIsMEDIA(av) AttrIsId( av, TidyAttr_MEDIA )
245 #define attrIsMETHOD(av) AttrIsId( av, TidyAttr_METHOD )
246 #define attrIsMULTIPLE(av) AttrIsId( av, TidyAttr_MULTIPLE )
247 #define attrIsNAME(av) AttrIsId( av, TidyAttr_NAME )
248 #define attrIsNOHREF(av) AttrIsId( av, TidyAttr_NOHREF )
249 #define attrIsNORESIZE(av) AttrIsId( av, TidyAttr_NORESIZE )
250 #define attrIsNOSHADE(av) AttrIsId( av, TidyAttr_NOSHADE )
251 #define attrIsNOWRAP(av) AttrIsId( av, TidyAttr_NOWRAP )
252 #define attrIsOBJECT(av) AttrIsId( av, TidyAttr_OBJECT )
253 #define attrIsOnAFTERUPDATE(av) AttrIsId( av, TidyAttr_OnAFTERUPDATE )
254 #define attrIsOnBEFOREUNLOAD(av) AttrIsId( av, TidyAttr_OnBEFOREUNLOAD )
255 #define attrIsOnBEFOREUPDATE(av) AttrIsId( av, TidyAttr_OnBEFOREUPDATE )
256 #define attrIsOnBLUR(av) AttrIsId( av, TidyAttr_OnBLUR )
257 #define attrIsOnCHANGE(av) AttrIsId( av, TidyAttr_OnCHANGE )
258 #define attrIsOnCLICK(av) AttrIsId( av, TidyAttr_OnCLICK )
259 #define attrIsOnDATAAVAILABLE(av) AttrIsId( av, TidyAttr_OnDATAAVAILABLE )
260 #define attrIsOnDATASETCHANGED(av) AttrIsId( av, TidyAttr_OnDATASETCHANGED )
261 #define attrIsOnDATASETCOMPLETE(av) AttrIsId( av, TidyAttr_OnDATASETCOMPLETE )
262 #define attrIsOnDBLCLICK(av) AttrIsId( av, TidyAttr_OnDBLCLICK )
263 #define attrIsOnERRORUPDATE(av) AttrIsId( av, TidyAttr_OnERRORUPDATE )
264 #define attrIsOnFOCUS(av) AttrIsId( av, TidyAttr_OnFOCUS )
265 #define attrIsOnKEYDOWN(av) AttrIsId( av, TidyAttr_OnKEYDOWN )
266 #define attrIsOnKEYPRESS(av) AttrIsId( av, TidyAttr_OnKEYPRESS )
267 #define attrIsOnKEYUP(av) AttrIsId( av, TidyAttr_OnKEYUP )
268 #define attrIsOnLOAD(av) AttrIsId( av, TidyAttr_OnLOAD )
269 #define attrIsOnMOUSEDOWN(av) AttrIsId( av, TidyAttr_OnMOUSEDOWN )
270 #define attrIsOnMOUSEMOVE(av) AttrIsId( av, TidyAttr_OnMOUSEMOVE )
271 #define attrIsOnMOUSEOUT(av) AttrIsId( av, TidyAttr_OnMOUSEOUT )
272 #define attrIsOnMOUSEOVER(av) AttrIsId( av, TidyAttr_OnMOUSEOVER )
273 #define attrIsOnMOUSEUP(av) AttrIsId( av, TidyAttr_OnMOUSEUP )
274 #define attrIsOnRESET(av) AttrIsId( av, TidyAttr_OnRESET )
275 #define attrIsOnROWENTER(av) AttrIsId( av, TidyAttr_OnROWENTER )
276 #define attrIsOnROWEXIT(av) AttrIsId( av, TidyAttr_OnROWEXIT )
277 #define attrIsOnSELECT(av) AttrIsId( av, TidyAttr_OnSELECT )
278 #define attrIsOnSUBMIT(av) AttrIsId( av, TidyAttr_OnSUBMIT )
279 #define attrIsOnUNLOAD(av) AttrIsId( av, TidyAttr_OnUNLOAD )
280 #define attrIsPROFILE(av) AttrIsId( av, TidyAttr_PROFILE )
281 #define attrIsPROMPT(av) AttrIsId( av, TidyAttr_PROMPT )
282 #define attrIsRBSPAN(av) AttrIsId( av, TidyAttr_RBSPAN )
283 #define attrIsREADONLY(av) AttrIsId( av, TidyAttr_READONLY )
284 #define attrIsREL(av) AttrIsId( av, TidyAttr_REL )
285 #define attrIsREV(av) AttrIsId( av, TidyAttr_REV )
286 #define attrIsRIGHTMARGIN(av) AttrIsId( av, TidyAttr_RIGHTMARGIN )
287 #define attrIsROLE(av) AttrIsId( av, TidyAttr_ROLE )
288 #define attrIsROWS(av) AttrIsId( av, TidyAttr_ROWS )
289 #define attrIsROWSPAN(av) AttrIsId( av, TidyAttr_ROWSPAN )
290 #define attrIsRULES(av) AttrIsId( av, TidyAttr_RULES )
291 #define attrIsSCHEME(av) AttrIsId( av, TidyAttr_SCHEME )
292 #define attrIsSCOPE(av) AttrIsId( av, TidyAttr_SCOPE )
293 #define attrIsSCROLLING(av) AttrIsId( av, TidyAttr_SCROLLING )
294 #define attrIsSELECTED(av) AttrIsId( av, TidyAttr_SELECTED )
295 #define attrIsSHAPE(av) AttrIsId( av, TidyAttr_SHAPE )
296 #define attrIsSHOWGRID(av) AttrIsId( av, TidyAttr_SHOWGRID )
297 #define attrIsSHOWGRIDX(av) AttrIsId( av, TidyAttr_SHOWGRIDX )
298 #define attrIsSHOWGRIDY(av) AttrIsId( av, TidyAttr_SHOWGRIDY )
299 #define attrIsSIZE(av) AttrIsId( av, TidyAttr_SIZE )
300 #define attrIsSPAN(av) AttrIsId( av, TidyAttr_SPAN )
301 #define attrIsSRC(av) AttrIsId( av, TidyAttr_SRC )
302 #define attrIsSTANDBY(av) AttrIsId( av, TidyAttr_STANDBY )
303 #define attrIsSTART(av) AttrIsId( av, TidyAttr_START )
304 #define attrIsSTYLE(av) AttrIsId( av, TidyAttr_STYLE )
305 #define attrIsSUMMARY(av) AttrIsId( av, TidyAttr_SUMMARY )
306 #define attrIsTABINDEX(av) AttrIsId( av, TidyAttr_TABINDEX )
307 #define attrIsTARGET(av) AttrIsId( av, TidyAttr_TARGET )
308 #define attrIsTEXT(av) AttrIsId( av, TidyAttr_TEXT )
309 #define attrIsTITLE(av) AttrIsId( av, TidyAttr_TITLE )
310 #define attrIsTOPMARGIN(av) AttrIsId( av, TidyAttr_TOPMARGIN )
311 #define attrIsTYPE(av) AttrIsId( av, TidyAttr_TYPE )
312 #define attrIsUSEMAP(av) AttrIsId( av, TidyAttr_USEMAP )
313 #define attrIsVALIGN(av) AttrIsId( av, TidyAttr_VALIGN )
314 #define attrIsVALUE(av) AttrIsId( av, TidyAttr_VALUE )
315 #define attrIsVALUETYPE(av) AttrIsId( av, TidyAttr_VALUETYPE )
316 #define attrIsVERSION(av) AttrIsId( av, TidyAttr_VERSION )
317 #define attrIsVLINK(av) AttrIsId( av, TidyAttr_VLINK )
318 #define attrIsVSPACE(av) AttrIsId( av, TidyAttr_VSPACE )
319 #define attrIsWIDTH(av) AttrIsId( av, TidyAttr_WIDTH )
320 #define attrIsWRAP(av) AttrIsId( av, TidyAttr_WRAP )
321 #define attrIsXMLNS(av) AttrIsId( av, TidyAttr_XMLNS )
322 #define attrIsXML_LANG(av) AttrIsId( av, TidyAttr_XML_LANG )
323 #define attrIsXML_SPACE(av) AttrIsId( av, TidyAttr_XML_SPACE )
324 #define attrIsARIA_ACTIVEDESCENDANT(av) AttrIsId( av, TidyAttr_ARIA_ACTIVEDESCENDANT )
325 #define attrIsARIA_ATOMIC(av) AttrIsId( av, TidyAttr_ARIA_ATOMIC )
326 #define attrIsARIA_AUTOCOMPLETE(av) AttrIsId( av, TidyAttr_ARIA_AUTOCOMPLETE )
327 #define attrIsARIA_BUSY(av) AttrIsId( av, TidyAttr_ARIA_BUSY )
328 #define attrIsARIA_CHECKED(av) AttrIsId( av, TidyAttr_ARIA_CHECKED )
329 #define attrIsARIA_CONTROLS(av) AttrIsId( av, TidyAttr_ARIA_CONTROLS )
330 #define attrIsARIA_DESCRIBEDBY(av) AttrIsId( av, TidyAttr_ARIA_DESCRIBEDBY )
331 #define attrIsARIA_DISABLED(av) AttrIsId( av, TidyAttr_ARIA_DISABLED )
332 #define attrIsARIA_DROPEFFECT(av) AttrIsId( av, TidyAttr_ARIA_DROPEFFECT )
333 #define attrIsARIA_EXPANDED(av) AttrIsId( av, TidyAttr_ARIA_EXPANDED )
334 #define attrIsARIA_FLOWTO(av) AttrIsId( av, TidyAttr_ARIA_FLOWTO )
335 #define attrIsARIA_GRABBED(av) AttrIsId( av, TidyAttr_ARIA_GRABBED )
336 #define attrIsARIA_HASPOPUP(av) AttrIsId( av, TidyAttr_ARIA_HASPOPUP )
337 #define attrIsARIA_HIDDEN(av) AttrIsId( av, TidyAttr_ARIA_HIDDEN )
338 #define attrIsARIA_INVALID(av) AttrIsId( av, TidyAttr_ARIA_INVALID )
339 #define attrIsARIA_LABEL(av) AttrIsId( av, TidyAttr_ARIA_LABEL )
340 #define attrIsARIA_LABELLEDBY(av) AttrIsId( av, TidyAttr_ARIA_LABELLEDBY )
341 #define attrIsARIA_LEVEL(av) AttrIsId( av, TidyAttr_ARIA_LEVEL )
342 #define attrIsARIA_LIVE(av) AttrIsId( av, TidyAttr_ARIA_LIVE )
343 #define attrIsARIA_MULTILINE(av) AttrIsId( av, TidyAttr_ARIA_MULTILINE )
344 #define attrIsARIA_MULTISELECTABLE(av) AttrIsId( av, TidyAttr_ARIA_MULTISELECTABLE )
345 #define attrIsARIA_ORIENTATION(av) AttrIsId( av, TidyAttr_ARIA_ORIENTATION )
346 #define attrIsARIA_OWNS(av) AttrIsId( av, TidyAttr_ARIA_OWNS )
347 #define attrIsARIA_POSINSET(av) AttrIsId( av, TidyAttr_ARIA_POSINSET )
348 #define attrIsARIA_PRESSED(av) AttrIsId( av, TidyAttr_ARIA_PRESSED )
349 #define attrIsARIA_READONLY(av) AttrIsId( av, TidyAttr_ARIA_READONLY )
350 #define attrIsARIA_RELEVANT(av) AttrIsId( av, TidyAttr_ARIA_RELEVANT )
351 #define attrIsARIA_REQUIRED(av) AttrIsId( av, TidyAttr_ARIA_REQUIRED )
352 #define attrIsARIA_SELECTED(av) AttrIsId( av, TidyAttr_ARIA_SELECTED )
353 #define attrIsARIA_SETSIZE(av) AttrIsId( av, TidyAttr_ARIA_SETSIZE )
354 #define attrIsARIA_SORT(av) AttrIsId( av, TidyAttr_ARIA_SORT )
355 #define attrIsARIA_VALUEMAX(av) AttrIsId( av, TidyAttr_ARIA_VALUEMAX )
356 #define attrIsARIA_VALUEMIN(av) AttrIsId( av, TidyAttr_ARIA_VALUEMIN )
357 #define attrIsARIA_VALUENOW(av) AttrIsId( av, TidyAttr_ARIA_VALUENOW )
358 #define attrIsARIA_VALUETEXT(av) AttrIsId( av, TidyAttr_ARIA_VALUETEXT )
362 /* Attribute Retrieval macros
364 #define attrGetHREF( nod ) TY_(AttrGetById)( nod, TidyAttr_HREF )
365 #define attrGetSRC( nod ) TY_(AttrGetById)( nod, TidyAttr_SRC )
366 #define attrGetID( nod ) TY_(AttrGetById)( nod, TidyAttr_ID )
367 #define attrGetNAME( nod ) TY_(AttrGetById)( nod, TidyAttr_NAME )
368 #define attrGetSUMMARY( nod ) TY_(AttrGetById)( nod, TidyAttr_SUMMARY )
369 #define attrGetALT( nod ) TY_(AttrGetById)( nod, TidyAttr_ALT )
370 #define attrGetLONGDESC( nod ) TY_(AttrGetById)( nod, TidyAttr_LONGDESC )
371 #define attrGetUSEMAP( nod ) TY_(AttrGetById)( nod, TidyAttr_USEMAP )
372 #define attrGetISMAP( nod ) TY_(AttrGetById)( nod, TidyAttr_ISMAP )
373 #define attrGetLANGUAGE( nod ) TY_(AttrGetById)( nod, TidyAttr_LANGUAGE )
374 #define attrGetTYPE( nod ) TY_(AttrGetById)( nod, TidyAttr_TYPE )
375 #define attrGetVALUE( nod ) TY_(AttrGetById)( nod, TidyAttr_VALUE )
376 #define attrGetCONTENT( nod ) TY_(AttrGetById)( nod, TidyAttr_CONTENT )
377 #define attrGetTITLE( nod ) TY_(AttrGetById)( nod, TidyAttr_TITLE )
378 #define attrGetXMLNS( nod ) TY_(AttrGetById)( nod, TidyAttr_XMLNS )
379 #define attrGetDATAFLD( nod ) TY_(AttrGetById)( nod, TidyAttr_DATAFLD )
380 #define attrGetWIDTH( nod ) TY_(AttrGetById)( nod, TidyAttr_WIDTH )
381 #define attrGetHEIGHT( nod ) TY_(AttrGetById)( nod, TidyAttr_HEIGHT )
382 #define attrGetFOR( nod ) TY_(AttrGetById)( nod, TidyAttr_FOR )
383 #define attrGetSELECTED( nod ) TY_(AttrGetById)( nod, TidyAttr_SELECTED )
384 #define attrGetCHECKED( nod ) TY_(AttrGetById)( nod, TidyAttr_CHECKED )
385 #define attrGetLANG( nod ) TY_(AttrGetById)( nod, TidyAttr_LANG )
386 #define attrGetTARGET( nod ) TY_(AttrGetById)( nod, TidyAttr_TARGET )
387 #define attrGetHTTP_EQUIV( nod ) TY_(AttrGetById)( nod, TidyAttr_HTTP_EQUIV )
388 #define attrGetREL( nod ) TY_(AttrGetById)( nod, TidyAttr_REL )
390 #define attrGetOnMOUSEMOVE( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEMOVE )
391 #define attrGetOnMOUSEDOWN( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEDOWN )
392 #define attrGetOnMOUSEUP( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEUP )
393 #define attrGetOnCLICK( nod ) TY_(AttrGetById)( nod, TidyAttr_OnCLICK )
394 #define attrGetOnMOUSEOVER( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEOVER )
395 #define attrGetOnMOUSEOUT( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEOUT )
396 #define attrGetOnKEYDOWN( nod ) TY_(AttrGetById)( nod, TidyAttr_OnKEYDOWN )
397 #define attrGetOnKEYUP( nod ) TY_(AttrGetById)( nod, TidyAttr_OnKEYUP )
398 #define attrGetOnKEYPRESS( nod ) TY_(AttrGetById)( nod, TidyAttr_OnKEYPRESS )
399 #define attrGetOnFOCUS( nod ) TY_(AttrGetById)( nod, TidyAttr_OnFOCUS )
400 #define attrGetOnBLUR( nod ) TY_(AttrGetById)( nod, TidyAttr_OnBLUR )
402 #define attrGetBGCOLOR( nod ) TY_(AttrGetById)( nod, TidyAttr_BGCOLOR )
404 #define attrGetLINK( nod ) TY_(AttrGetById)( nod, TidyAttr_LINK )
405 #define attrGetALINK( nod ) TY_(AttrGetById)( nod, TidyAttr_ALINK )
406 #define attrGetVLINK( nod ) TY_(AttrGetById)( nod, TidyAttr_VLINK )
408 #define attrGetTEXT( nod ) TY_(AttrGetById)( nod, TidyAttr_TEXT )
409 #define attrGetSTYLE( nod ) TY_(AttrGetById)( nod, TidyAttr_STYLE )
410 #define attrGetABBR( nod ) TY_(AttrGetById)( nod, TidyAttr_ABBR )
411 #define attrGetCOLSPAN( nod ) TY_(AttrGetById)( nod, TidyAttr_COLSPAN )
412 #define attrGetFONT( nod ) TY_(AttrGetById)( nod, TidyAttr_FONT )
413 #define attrGetBASEFONT( nod ) TY_(AttrGetById)( nod, TidyAttr_BASEFONT )
414 #define attrGetROWSPAN( nod ) TY_(AttrGetById)( nod, TidyAttr_ROWSPAN )
416 #define attrGetROLE( nod ) TY_(AttrGetById)( nod, TidyAttr_ROLE )
418 #define attrGetARIA_ACTIVEDESCENDANT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_ACTIVEDESCENDANT )
419 #define attrGetARIA_ATOMIC( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_ATOMIC )
420 #define attrGetARIA_AUTOCOMPLETE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_AUTOCOMPLETE )
421 #define attrGetARIA_BUSY( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_BUSY )
422 #define attrGetARIA_CHECKED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_CHECKED )
423 #define attrGetARIA_CONTROLS( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_CONTROLS )
424 #define attrGetARIA_DESCRIBEDBY( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_DESCRIBEDBY )
425 #define attrGetARIA_DISABLED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_DISABLED )
426 #define attrGetARIA_DROPEFFECT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_DROPEFFECT )
427 #define attrGetARIA_EXPANDED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_EXPANDED )
428 #define attrGetARIA_FLOWTO( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_FLOWTO )
429 #define attrGetARIA_GRABBED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_GRABBED )
430 #define attrGetARIA_HASPOPUP( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_HASPOPUP )
431 #define attrGetARIA_HIDDEN( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_HIDDEN )
432 #define attrGetARIA_INVALID( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_INVALID )
433 #define attrGetARIA_LABEL( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_LABEL )
434 #define attrGetARIA_LABELLEDBY( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_LABELLEDBY )
435 #define attrGetARIA_LEVEL( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_LEVEL )
436 #define attrGetARIA_LIVE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_LIVE )
437 #define attrGetARIA_MULTILINE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_MULTILINE )
438 #define attrGetARIA_MULTISELECTABLE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_MULTISELECTABLE )
439 #define attrGetARIA_ORIENTATION( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_ORIENTATION )
440 #define attrGetARIA_OWNS( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_OWNS )
441 #define attrGetARIA_POSINSET( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_POSINSET )
442 #define attrGetARIA_PRESSED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_PRESSED )
443 #define attrGetARIA_READONLY( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_READONLY )
444 #define attrGetARIA_RELEVANT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_RELEVANT )
445 #define attrGetARIA_REQUIRED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_REQUIRED )
446 #define attrGetARIA_SELECTED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_SELECTED )
447 #define attrGetARIA_SETSIZE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_SETSIZE )
448 #define attrGetARIA_SORT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_SORT )
449 #define attrGetARIA_VALUEMAX( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_VALUEMAX )
450 #define attrGetARIA_VALUEMIN( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_VALUEMIN )
451 #define attrGetARIA_VALUENOW( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_VALUENOW )
452 #define attrGetARIA_VALUETEXT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_VALUETEXT )
454 #endif /* __ATTRS_H__ */