1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns=
"http://www.w3.org/1999/xhtml" xml:
lang=
"en" lang=
"en"><head>
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" />
6 <meta name=
"description" content=
"Tables detailing HTML element and CSS property implementation coverage in HTML Purifier." />
7 <link rel=
"stylesheet" type=
"text/css" href=
"./style.css" />
9 <title>Implementation Progress - HTML Purifier
</title>
11 <style type=
"text/css">
13 td {padding-right:
1em;border-bottom:
1px solid #
000;padding-left:
0.5em;}
14 th {text-align:left;padding-top:
1.4em;font-size:
13pt;
15 border-bottom:
2px solid #
000;background:#FFF;}
16 thead th {text-align:left;padding:
0.1em;background-color:#EEE;}
18 .impl-yes {background:#
9D9;}
19 .impl-partial {background:#FFA;}
20 .impl-no {background:#CCC;}
24 .required {font-weight:bold;}
25 .feature {color:#
999;}
31 <h1>Implementation Progress
</h1>
33 <div id=
"filing">Filed under Development
</div>
34 <div id=
"index">Return to the
<a href=
"index.html">index
</a>.
</div>
38 <table cellspacing=
"0"><tbody>
39 <tr><td class=
"impl-yes">Implemented
</td></tr>
40 <tr><td class=
"impl-partial">Partially implemented
</td></tr>
41 <tr><td class=
"impl-no">Will not implement
</td></tr>
42 <tr><td class=
"danger">Dangerous attribute/property
</td></tr>
43 <tr><td class=
"css1">Present in CSS1
</td></tr>
44 <tr><td class=
"feature">Feature, requires extra work
</td></tr>
49 <table cellspacing=
"0">
52 <tr><th>Name
</th><th>Notes
</th></tr>
56 <tr><td>-</td><td>-</td></tr>
60 <tr><th colspan=
"2">Standard
</th></tr>
61 <tr class=
"css1 impl-yes"><td>background-color
</td><td>COMPOSITE(
<color
>, transparent)
</td></tr>
62 <tr class=
"css1 impl-yes"><td>background
</td><td>SHORTHAND, only for color, see below for info on background-image and friends
</td></tr>
63 <tr class=
"css1 impl-yes"><td>border
</td><td>SHORTHAND, MULTIPLE
</td></tr>
64 <tr class=
"css1 impl-yes"><td>border-color
</td><td>MULTIPLE
</td></tr>
65 <tr class=
"css1 impl-yes"><td>border-style
</td><td>MULTIPLE
</td></tr>
66 <tr class=
"css1 impl-yes"><td>border-width
</td><td>MULTIPLE
</td></tr>
67 <tr class=
"css1 impl-yes"><td>border-*
</td><td>SHORTHAND
</td></tr>
68 <tr class=
"impl-yes"><td>border-*-color
</td><td>COMPOSITE(
<color
>, transparent)
</td></tr>
69 <tr class=
"impl-yes"><td>border-*-style
</td><td>ENUM(none, hidden, dotted, dashed,
70 solid, double, groove, ridge, inset, outset)
</td></tr>
71 <tr class=
"css1 impl-yes"><td>border-*-width
</td><td>COMPOSITE(
<length
>, thin, medium, thick)
</td></tr>
72 <tr class=
"css1 impl-yes"><td>clear
</td><td>ENUM(none, left, right, both)
</td></tr>
73 <tr class=
"css1 impl-yes"><td>color
</td><td><color
></td></tr>
74 <tr class=
"css1 impl-yes"><td>float
</td><td>ENUM(left, right, none), May require layout
75 precautions with clear
</td></tr>
76 <tr class=
"css1 impl-yes"><td>font
</td><td>SHORTHAND
</td></tr>
77 <tr class=
"css1 impl-yes"><td>font-family
</td><td>CSS validator may complain if fallback font
78 family not specified
</td></tr>
79 <tr class=
"css1 impl-yes"><td>font-size
</td><td>COMPOSITE(
<absolute-size
>,
80 <relative-size
>,
<length
>,
<percentage
>)
</td></tr>
81 <tr class=
"css1 impl-yes"><td>font-style
</td><td>ENUM(normal, italic, oblique)
</td></tr>
82 <tr class=
"css1 impl-yes"><td>font-variant
</td><td>ENUM(normal, small-caps)
</td></tr>
83 <tr class=
"css1 impl-yes"><td>font-weight
</td><td>ENUM(normal, bold, bolder, lighter,
84 100,
200,
300,
400,
500,
600,
700,
800,
900), maybe special code for
85 in-between integers
</td></tr>
86 <tr class=
"css1 impl-yes"><td>letter-spacing
</td><td>COMPOSITE(
<length
>, normal)
</td></tr>
87 <tr class=
"css1 impl-yes"><td>line-height
</td><td>COMPOSITE(
<number
>,
88 <length
>,
<percentage
>, normal)
</td></tr>
89 <tr class=
"css1 impl-yes"><td>list-style-position
</td><td>ENUM(inside, outside),
90 Strange behavior in browsers
</td></tr>
91 <tr class=
"css1 impl-yes"><td>list-style-type
</td><td>ENUM(...),
92 Well-supported values are: disc, circle, square,
93 decimal, lower-roman, upper-roman, lower-alpha and upper-alpha. See also
94 CSS
3. Mostly IE lack of support.
</td></tr>
95 <tr class=
"css1 impl-yes"><td>list-style
</td><td>SHORTHAND
</td></tr>
96 <tr class=
"css1 impl-yes"><td>margin
</td><td>MULTIPLE
</td></tr>
97 <tr class=
"css1 impl-yes"><td>margin-*
</td><td>COMPOSITE(
<length
>,
98 <percentage
>, auto)
</td></tr>
99 <tr class=
"css1 impl-yes"><td>padding
</td><td>MULTIPLE
</td></tr>
100 <tr class=
"css1 impl-yes"><td>padding-*
</td><td>COMPOSITE(
<length
>(positive),
101 <percentage
>(positive))
</td></tr>
102 <tr class=
"css1 impl-yes"><td>text-align
</td><td>ENUM(left, right,
103 center, justify)
</td></tr>
104 <tr class=
"css1 impl-yes"><td>text-decoration
</td><td>No blink (argh my eyes), not
105 enum, can be combined (composite sorta): underline, overline,
106 line-through
</td></tr>
107 <tr class=
"css1 impl-yes"><td>text-indent
</td><td>COMPOSITE(
<length
>,
108 <percentage
>)
</td></tr>
109 <tr class=
"css1 impl-yes"><td>text-transform
</td><td>ENUM(capitalize, uppercase,
110 lowercase, none)
</td></tr>
111 <tr class=
"css1 impl-yes"><td>width
</td><td>COMPOSITE(
<length
>,
112 <percentage
>, auto), Interesting
</td></tr>
113 <tr class=
"css1 impl-yes"><td>word-spacing
</td><td>COMPOSITE(
<length
>, auto),
114 IE
5 no support
</td></tr>
118 <tr><th colspan=
"2">Table
</th></tr>
119 <tr class=
"impl-yes"><td>border-collapse
</td><td>ENUM(collapse, seperate)
</td></tr>
120 <tr class=
"impl-yes"><td>caption-side
</td><td>ENUM(top, bottom)
</td></tr>
121 <tr class=
"feature"><td>empty-cells
</td><td>ENUM(show, hide), No IE support makes this useless,
122 possible fix with
&nbsp;? Unknown release milestone.
</td></tr>
123 <tr class=
"impl-yes"><td>table-layout
</td><td>ENUM(auto, fixed)
</td></tr>
124 <tr class=
"impl-yes css1"><td>vertical-align
</td><td>COMPOSITE(ENUM(baseline, sub,
125 super, top, text-top, middle, bottom, text-bottom),
<percentage
>,
126 <length
>) Also applies to others with explicit height
</td></tr>
130 <tr><th colspan=
"2">Absolute positioning, unknown release milestone
</th></tr>
131 <tr class=
"danger impl-no"><td>bottom
</td><td rowspan=
"4">Dangerous, must be non-negative to even be considered,
132 but it's still possible to arbitrarily position by running over.
</td></tr>
133 <tr class=
"danger impl-no"><td>left
</td></tr>
134 <tr class=
"danger impl-no"><td>right
</td></tr>
135 <tr class=
"danger impl-no"><td>top
</td></tr>
136 <tr class=
"impl-no"><td>clip
</td><td>-
</td></tr>
137 <tr class=
"danger impl-no"><td>position
</td><td>ENUM(static, relative, absolute, fixed)
138 relative not absolute?
</td></tr>
139 <tr class=
"danger impl-no"><td>z-index
</td><td>Dangerous
</td></tr>
143 <tr><th colspan=
"2">Unknown
</th></tr>
144 <tr class=
"danger css1"><td>background-image
</td><td>Dangerous, target milestone
1.3</td></tr>
145 <tr class=
"css1"><td>background-attachment
</td><td>ENUM(scroll, fixed),
146 Depends on background-image
</td></tr>
147 <tr class=
"css1"><td>background-position
</td><td>Depends on background-image
</td></tr>
148 <tr class=
"danger impl-no"><td>cursor
</td><td>Dangerous but fluffy
</td></tr>
149 <tr class=
"danger css1"><td>display
</td><td>ENUM(...), Dangerous but interesting;
150 will not implement list-item, run-in (Opera only) or table (no IE);
151 inline-block has incomplete IE6 support and requires -moz-inline-box
152 for Mozilla. Unknown target milestone.
</td></tr>
153 <tr><td class=
"css1">height
</td><td>Interesting, why use it? Unknown target milestone.
</td></tr>
154 <tr class=
"danger css1"><td>list-style-image
</td><td>Dangerous? Target milestone
1.3</td></tr>
155 <tr class=
"impl-no"><td>max-height
</td><td rowspan=
"4">No IE
5/
6</td></tr>
156 <tr class=
"impl-no"><td>min-height
</td></tr>
157 <tr class=
"impl-no"><td>max-width
</td></tr>
158 <tr class=
"impl-no"><td>min-width
</td></tr>
159 <tr class=
"impl-no"><td>orphans
</td><td>No IE support
</td></tr>
160 <tr class=
"impl-no"><td>widows
</td><td>No IE support
</td></tr>
161 <tr><td>overflow
</td><td>ENUM, IE
5/
6 almost (remove visible if set). Unknown target milestone.
</td></tr>
162 <tr><td>page-break-after
</td><td>ENUM(auto, always, avoid, left, right),
163 IE
5.5/
6 and Opera. Unknown target milestone.
</td></tr>
164 <tr><td>page-break-before
</td><td>ENUM(auto, always, avoid, left, right),
165 Mostly supported. Unknown target milestone.
</td></tr>
166 <tr><td>page-break-inside
</td><td>ENUM(avoid, auto), Opera only. Unknown target milestone.
</td></tr>
167 <tr class=
"impl-no"><td>quotes
</td><td>May be dropped from CSS2, fairly useless for inline context
</td></tr>
168 <tr class=
"impl-no"><td>visibility
</td><td>ENUM(visible, hidden, collapse),
170 <tr class=
"css1 feature"><td>white-space
</td><td>ENUM(normal, pre, nowrap, pre-wrap,
171 pre-line), Spotty implementation:
172 pre (no IE
5/
6), nowrap (no IE
5),
173 pre-wrap (only Opera), pre-line (no support). Fixable? Unknown target milestone.
</td></tr>
176 <tbody class=
"impl-no">
177 <tr><th colspan=
"2">Aural
</th></tr>
178 <tr><td>azimuth
</td><td>-
</td></tr>
179 <tr><td>cue
</td><td>-
</td></tr>
180 <tr><td>cue-after
</td><td>-
</td></tr>
181 <tr><td>cue-before
</td><td>-
</td></tr>
182 <tr><td>elevation
</td><td>-
</td></tr>
183 <tr><td>pause-after
</td><td>-
</td></tr>
184 <tr><td>pause-before
</td><td>-
</td></tr>
185 <tr><td>pause
</td><td>-
</td></tr>
186 <tr><td>pitch-range
</td><td>-
</td></tr>
187 <tr><td>pitch
</td><td>-
</td></tr>
188 <tr><td>play-during
</td><td>-
</td></tr>
189 <tr><td>richness
</td><td>-
</td></tr>
190 <tr><td>speak-header
</td><td>Table related
</td></tr>
191 <tr><td>speak-numeral
</td><td>-
</td></tr>
192 <tr><td>speak-punctuation
</td><td>-
</td></tr>
193 <tr><td>speak
</td><td>-
</td></tr>
194 <tr><td>speech-rate
</td><td>-
</td></tr>
195 <tr><td>stress
</td><td>-
</td></tr>
196 <tr><td>voice-family
</td><td>-
</td></tr>
197 <tr><td>volume
</td><td>-
</td></tr>
200 <tbody class=
"impl-no">
201 <tr><th colspan=
"2">Will not implement
</th></tr>
202 <tr><td>content
</td><td>Not applicable for inline styles
</td></tr>
203 <tr><td>counter-increment
</td><td>Needs content, Opera only
</td></tr>
204 <tr><td>counter-reset
</td><td>Needs content, Opera only
</td></tr>
205 <tr><td>direction
</td><td>No support
</td></tr>
206 <tr><td>outline-color
</td><td rowspan=
"4">IE Mac and Opera on outside,
207 Mozilla on inside and needs -moz-outline, no IE support.
</td></tr>
208 <tr><td>outline-style
</td></tr>
209 <tr><td>outline-width
</td></tr>
210 <tr><td>outline
</td></tr>
211 <tr><td>unicode-bidi
</td><td>No support
</td></tr>
216 <h2>Interesting Attributes
</h2>
218 <table cellspacing=
"0">
221 <tr><th>Attribute
</th><th>Tags
</th><th>Notes
</th></tr>
227 <tr><td>-</td><td>-</td><td>-</td></tr>
232 <tr><th colspan=
"3">CSS
</th></tr>
233 <tr class=
"impl-yes"><td>style
</td><td>All
</td><td>Not all properties may be implemented, parser is good though.
</td></tr>
237 <tr><th colspan=
"3">Questionable
</th></tr>
238 <tr class=
"impl-no"><td>accesskey
</td><td>A
</td><td>May interfere with main interface
</td></tr>
239 <tr class=
"impl-no"><td>tabindex
</td><td>A
</td><td>May interfere with main interface
</td></tr>
240 <tr><td>target
</td><td>A
</td><td>Config enabled, only useful for frame layouts, disallowed in strict
</td></tr>
244 <tr><th colspan=
"3">Miscellaneous
</th></tr>
245 <tr><td>datetime
</td><td>DEL, INS
</td><td>No visible effect, ISO format
</td></tr>
246 <tr><td>rel
</td><td>A
</td><td>Largely user-defined: nofollow, tag (see microformats)
</td></tr>
247 <tr><td>rev
</td><td>A
</td><td>Largely user-defined: vote-*
</td></tr>
248 <tr class=
"feature"><td>axis
</td><td>TD, TH
</td><td>W3C only: No browser implementation
</td></tr>
249 <tr class=
"feature"><td>char
</td><td>COL, COLGROUP, TBODY, TD, TFOOT, TH, THEAD, TR
</td><td>W3C only: No browser implementation
</td></tr>
250 <tr class=
"feature"><td>headers
</td><td>TD, TH
</td><td>W3C only: No browser implementation
</td></tr>
251 <tr class=
"feature"><td>scope
</td><td>TD, TH
</td><td>W3C only: No browser implementation
</td></tr>
254 <tbody class=
"impl-yes">
255 <tr><th colspan=
"3">URI
</th></tr>
256 <tr><td rowspan=
"2">cite
</td><td>BLOCKQUOTE, Q
</td><td>For attribution
</td></tr>
257 <tr><td>DEL, INS
</td><td>Link to explanation why it changed
</td></tr>
258 <tr><td>href
</td><td>A
</td><td>-
</td></tr>
259 <tr><td>longdesc
</td><td>IMG
</td><td>-
</td></tr>
260 <tr class=
"required"><td>src
</td><td>IMG
</td><td>Required
</td></tr>
264 <tr><th colspan=
"3">Transform, target milestone
1.4</th></tr>
265 <tr><td rowspan=
"5">align
</td><td>CAPTION
</td><td>Near-equiv style 'caption-side', drop left and right
</td></tr>
266 <tr><td>IMG
</td><td rowspan=
"2">Margin-left and margin-right = auto or parent div
</td></tr>
267 <tr><td>TABLE
</td></tr>
268 <tr><td>HR
</td><td>Equivalent style 'text-align' (IE tested)
</td></tr>
269 <tr class=
"impl-yes"><td>H1, H2, H3, H4, H5, H6, P
</td><td>Equivalent style 'text-align'
</td></tr>
270 <tr class=
"required impl-yes"><td>alt
</td><td>IMG
</td><td>Required, insert image filename if src is present or default invalid image text
</td></tr>
271 <tr><td rowspan=
"3">bgcolor
</td><td>TABLE
</td><td>Equivalent style 'background-color' (IE tested)
</td></tr>
272 <tr><td>TR
</td><td>Equivalent style 'background-color' (IE tested)
</td></tr>
273 <tr><td>TD, TH
</td><td>Equivalent style 'background-color'
</td></tr>
274 <tr><td>border
</td><td>IMG
</td><td>Equivalent style 'border-width', only applies when link present
</td></tr>
275 <tr><td>clear
</td><td>BR
</td><td>Near-equiv style 'clear', transform 'all' into 'both'
</td></tr>
276 <tr class=
"impl-no"><td>compact
</td><td>DL, OL, UL
</td><td>Boolean, needs custom CSS class; rarely used anyway
</td></tr>
277 <tr class=
"required impl-yes"><td>dir
</td><td>BDO
</td><td>Required, insert ltr (or configuration value) if none
</td></tr>
278 <tr><td>height
</td><td>TD, TH
</td><td>Near-equiv style 'height', needs px suffix if original was in pixels
</td></tr>
279 <tr><td>hspace
</td><td>IMG
</td><td>Near-equiv styles 'margin-top' and 'margin-bottom', needs px suffix
</td></tr>
280 <tr class=
"impl-yes"><td>lang
</td><td>*
</td><td>Copy value to xml:lang
</td></tr>
281 <tr><td rowspan=
"2">name
</td><td>IMG
</td><td>Turn into ID
</td></tr>
282 <tr><td>A
</td><td>Turn into ID? (not deprecated, though in which specs?)
</td></tr>
283 <tr><td>noshade
</td><td>HR
</td><td>Boolean, style 'border-style:solid;'
</td></tr>
284 <tr><td>nowrap
</td><td>TD, TH
</td><td>Boolean, style 'white-space:nowrap;' (not compat with IE5)
</td></tr>
285 <tr><td>size
</td><td>HR
</td><td>Near-equiv 'width', needs px suffix if original was pixels
</td></tr>
286 <tr class=
"required impl-yes"><td>src
</td><td>IMG
</td><td>Required, insert blank or default img if not set
</td></tr>
287 <tr class=
"impl-yes"><td>start
</td><td>OL
</td><td>Poorly supported 'counter-reset', allowed in loose, dropped in strict
</td></tr>
288 <tr><td rowspan=
"3">type
</td><td>LI
</td><td rowspan=
"3">Equivalent style 'list-style-type', different allowed values though. (needs testing)
</td></tr>
291 <tr class=
"impl-yes"><td>value
</td><td>LI
</td><td>Poorly supported 'counter-reset', allowed in loose, dropped in strict
</td></tr>
292 <tr><td>vspace
</td><td>IMG
</td><td>Near-equiv styles 'margin-left' and 'margin-right', needs px suffix, see hspace
</td></tr>
293 <tr><td rowspan=
"2">width
</td><td>HR
</td><td rowspan=
"2">Near-equiv style 'width', needs px suffix if original was pixels
</td></tr>
294 <tr><td>TD, TH
</td></tr>
299 <div id=
"version">$Id$
</div>