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>
35 <div id=
"home"><a href=
"http://htmlpurifier.org/">HTML Purifier
</a> End-User Documentation
</div>
38 <strong>Warning:
</strong> This table is kept for historical purposes and
39 is not being actively updated.
44 <table cellspacing=
"0"><tbody>
45 <tr><td class=
"impl-yes">Implemented
</td></tr>
46 <tr><td class=
"impl-partial">Partially implemented
</td></tr>
47 <tr><td class=
"impl-no">Not priority to implement
</td></tr>
48 <tr><td class=
"danger">Dangerous attribute/property
</td></tr>
49 <tr><td class=
"css1">Present in CSS1
</td></tr>
50 <tr><td class=
"feature">Feature, requires extra work
</td></tr>
55 <table cellspacing=
"0">
58 <tr><th>Name
</th><th>Notes
</th></tr>
62 <tr><td>-</td><td>-</td></tr>
66 <tr><th colspan=
"2">Standard
</th></tr>
67 <tr class=
"css1 impl-yes"><td>background-color
</td><td>COMPOSITE(
<color
>, transparent)
</td></tr>
68 <tr class=
"css1 impl-yes"><td>background
</td><td>SHORTHAND, currently alias for background-color
</td></tr>
69 <tr class=
"css1 impl-yes"><td>border
</td><td>SHORTHAND, MULTIPLE
</td></tr>
70 <tr class=
"css1 impl-yes"><td>border-color
</td><td>MULTIPLE
</td></tr>
71 <tr class=
"css1 impl-yes"><td>border-style
</td><td>MULTIPLE
</td></tr>
72 <tr class=
"css1 impl-yes"><td>border-width
</td><td>MULTIPLE
</td></tr>
73 <tr class=
"css1 impl-yes"><td>border-*
</td><td>SHORTHAND
</td></tr>
74 <tr class=
"impl-yes"><td>border-*-color
</td><td>COMPOSITE(
<color
>, transparent)
</td></tr>
75 <tr class=
"impl-yes"><td>border-*-style
</td><td>ENUM(none, hidden, dotted, dashed,
76 solid, double, groove, ridge, inset, outset)
</td></tr>
77 <tr class=
"css1 impl-yes"><td>border-*-width
</td><td>COMPOSITE(
<length
>, thin, medium, thick)
</td></tr>
78 <tr class=
"css1 impl-yes"><td>clear
</td><td>ENUM(none, left, right, both)
</td></tr>
79 <tr class=
"css1 impl-yes"><td>color
</td><td><color
></td></tr>
80 <tr class=
"css1 impl-yes"><td>float
</td><td>ENUM(left, right, none), May require layout
81 precautions with clear
</td></tr>
82 <tr class=
"css1 impl-yes"><td>font
</td><td>SHORTHAND
</td></tr>
83 <tr class=
"css1 impl-yes"><td>font-family
</td><td>CSS validator may complain if fallback font
84 family not specified
</td></tr>
85 <tr class=
"css1 impl-yes"><td>font-size
</td><td>COMPOSITE(
<absolute-size
>,
86 <relative-size
>,
<length
>,
<percentage
>)
</td></tr>
87 <tr class=
"css1 impl-yes"><td>font-style
</td><td>ENUM(normal, italic, oblique)
</td></tr>
88 <tr class=
"css1 impl-yes"><td>font-variant
</td><td>ENUM(normal, small-caps)
</td></tr>
89 <tr class=
"css1 impl-yes"><td>font-weight
</td><td>ENUM(normal, bold, bolder, lighter,
90 100,
200,
300,
400,
500,
600,
700,
800,
900), maybe special code for
91 in-between integers
</td></tr>
92 <tr class=
"css1 impl-yes"><td>letter-spacing
</td><td>COMPOSITE(
<length
>, normal)
</td></tr>
93 <tr class=
"css1 impl-yes"><td>line-height
</td><td>COMPOSITE(
<number
>,
94 <length
>,
<percentage
>, normal)
</td></tr>
95 <tr class=
"css1 impl-yes"><td>list-style-position
</td><td>ENUM(inside, outside),
96 Strange behavior in browsers
</td></tr>
97 <tr class=
"css1 impl-yes"><td>list-style-type
</td><td>ENUM(...),
98 Well-supported values are: disc, circle, square,
99 decimal, lower-roman, upper-roman, lower-alpha and upper-alpha. See also
100 CSS
3. Mostly IE lack of support.
</td></tr>
101 <tr class=
"css1 impl-yes"><td>list-style
</td><td>SHORTHAND
</td></tr>
102 <tr class=
"css1 impl-yes"><td>margin
</td><td>MULTIPLE
</td></tr>
103 <tr class=
"css1 impl-yes"><td>margin-*
</td><td>COMPOSITE(
<length
>,
104 <percentage
>, auto)
</td></tr>
105 <tr class=
"css1 impl-yes"><td>padding
</td><td>MULTIPLE
</td></tr>
106 <tr class=
"css1 impl-yes"><td>padding-*
</td><td>COMPOSITE(
<length
>(positive),
107 <percentage
>(positive))
</td></tr>
108 <tr class=
"css1 impl-yes"><td>text-align
</td><td>ENUM(left, right,
109 center, justify)
</td></tr>
110 <tr class=
"css1 impl-yes"><td>text-decoration
</td><td>No blink (argh my eyes), not
111 enum, can be combined (composite sorta): underline, overline,
112 line-through
</td></tr>
113 <tr class=
"css1 impl-yes"><td>text-indent
</td><td>COMPOSITE(
<length
>,
114 <percentage
>)
</td></tr>
115 <tr class=
"css1 impl-yes"><td>text-transform
</td><td>ENUM(capitalize, uppercase,
116 lowercase, none)
</td></tr>
117 <tr class=
"css1 impl-yes"><td>width
</td><td>COMPOSITE(
<length
>,
118 <percentage
>, auto), Interesting
</td></tr>
119 <tr class=
"css1 impl-yes"><td>word-spacing
</td><td>COMPOSITE(
<length
>, auto),
120 IE
5 no support
</td></tr>
124 <tr><th colspan=
"2">Table
</th></tr>
125 <tr class=
"impl-yes"><td>border-collapse
</td><td>ENUM(collapse, seperate)
</td></tr>
126 <tr class=
"impl-yes"><td>border-space
</td><td>MULTIPLE
</td></tr>
127 <tr class=
"impl-yes"><td>caption-side
</td><td>ENUM(top, bottom)
</td></tr>
128 <tr class=
"feature"><td>empty-cells
</td><td>ENUM(show, hide), No IE support makes this useless,
129 possible fix with
&nbsp;? Unknown release milestone.
</td></tr>
130 <tr class=
"impl-yes"><td>table-layout
</td><td>ENUM(auto, fixed)
</td></tr>
131 <tr class=
"impl-yes css1"><td>vertical-align
</td><td>COMPOSITE(ENUM(baseline, sub,
132 super, top, text-top, middle, bottom, text-bottom),
<percentage
>,
133 <length
>) Also applies to others with explicit height
</td></tr>
137 <tr><th colspan=
"2">Absolute positioning, unknown release milestone
</th></tr>
138 <tr class=
"danger impl-no"><td>bottom
</td><td rowspan=
"4">Dangerous, must be non-negative to even be considered,
139 but it's still possible to arbitrarily position by running over.
</td></tr>
140 <tr class=
"danger impl-no"><td>left
</td></tr>
141 <tr class=
"danger impl-no"><td>right
</td></tr>
142 <tr class=
"danger impl-no"><td>top
</td></tr>
143 <tr class=
"impl-no"><td>clip
</td><td>-
</td></tr>
144 <tr class=
"danger impl-no"><td>position
</td><td>ENUM(static, relative, absolute, fixed)
145 relative not absolute?
</td></tr>
146 <tr class=
"danger impl-no"><td>z-index
</td><td>Dangerous
</td></tr>
150 <tr><th colspan=
"2">Unknown
</th></tr>
151 <tr class=
"danger css1 impl-yes"><td>background-image
</td><td>Dangerous
</td></tr>
152 <tr class=
"css1 impl-yes"><td>background-attachment
</td><td>ENUM(scroll, fixed),
153 Depends on background-image
</td></tr>
154 <tr class=
"css1 impl-yes"><td>background-position
</td><td>Depends on background-image
</td></tr>
155 <tr class=
"danger impl-no"><td>cursor
</td><td>Dangerous but fluffy
</td></tr>
156 <tr class=
"danger impl-yes"><td>display
</td><td>ENUM(...), Dangerous but interesting;
157 will not implement list-item, run-in (Opera only) or table (no IE);
158 inline-block has incomplete IE6 support and requires -moz-inline-box
159 for Mozilla. Unknown target milestone.
</td></tr>
160 <tr class=
"css1 impl-yes"><td>height
</td><td>Interesting, why use it? Unknown target milestone.
</td></tr>
161 <tr class=
"danger css1 impl-yes"><td>list-style-image
</td><td>Dangerous?
</td></tr>
162 <tr class=
"impl-no"><td>max-height
</td><td rowspan=
"4">No IE
5/
6</td></tr>
163 <tr class=
"impl-no"><td>min-height
</td></tr>
164 <tr class=
"impl-no"><td>max-width
</td></tr>
165 <tr class=
"impl-no"><td>min-width
</td></tr>
166 <tr class=
"impl-no"><td>orphans
</td><td>No IE support
</td></tr>
167 <tr class=
"impl-no"><td>widows
</td><td>No IE support
</td></tr>
168 <tr><td>overflow
</td><td>ENUM, IE
5/
6 almost (remove visible if set). Unknown target milestone.
</td></tr>
169 <tr><td>page-break-after
</td><td>ENUM(auto, always, avoid, left, right),
170 IE
5.5/
6 and Opera. Unknown target milestone.
</td></tr>
171 <tr><td>page-break-before
</td><td>ENUM(auto, always, avoid, left, right),
172 Mostly supported. Unknown target milestone.
</td></tr>
173 <tr><td>page-break-inside
</td><td>ENUM(avoid, auto), Opera only. Unknown target milestone.
</td></tr>
174 <tr class=
"impl-no"><td>quotes
</td><td>May be dropped from CSS2, fairly useless for inline context
</td></tr>
175 <tr class=
"danger impl-yes"><td>visibility
</td><td>ENUM(visible, hidden, collapse),
177 <tr class=
"css1 feature impl-partial"><td>white-space
</td><td>ENUM(normal, pre, nowrap, pre-wrap,
178 pre-line), Spotty implementation:
179 pre (no IE
5/
6),
<em>nowrap
</em> (no IE
5, supported),
180 pre-wrap (only Opera), pre-line (no support). Fixable? Unknown target milestone.
</td></tr>
183 <tbody class=
"impl-no">
184 <tr><th colspan=
"2">Aural
</th></tr>
185 <tr><td>azimuth
</td><td>-
</td></tr>
186 <tr><td>cue
</td><td>-
</td></tr>
187 <tr><td>cue-after
</td><td>-
</td></tr>
188 <tr><td>cue-before
</td><td>-
</td></tr>
189 <tr><td>elevation
</td><td>-
</td></tr>
190 <tr><td>pause-after
</td><td>-
</td></tr>
191 <tr><td>pause-before
</td><td>-
</td></tr>
192 <tr><td>pause
</td><td>-
</td></tr>
193 <tr><td>pitch-range
</td><td>-
</td></tr>
194 <tr><td>pitch
</td><td>-
</td></tr>
195 <tr><td>play-during
</td><td>-
</td></tr>
196 <tr><td>richness
</td><td>-
</td></tr>
197 <tr><td>speak-header
</td><td>Table related
</td></tr>
198 <tr><td>speak-numeral
</td><td>-
</td></tr>
199 <tr><td>speak-punctuation
</td><td>-
</td></tr>
200 <tr><td>speak
</td><td>-
</td></tr>
201 <tr><td>speech-rate
</td><td>-
</td></tr>
202 <tr><td>stress
</td><td>-
</td></tr>
203 <tr><td>voice-family
</td><td>-
</td></tr>
204 <tr><td>volume
</td><td>-
</td></tr>
207 <tbody class=
"impl-no">
208 <tr><th colspan=
"2">Will not implement
</th></tr>
209 <tr><td>content
</td><td>Not applicable for inline styles
</td></tr>
210 <tr><td>counter-increment
</td><td>Needs content, Opera only
</td></tr>
211 <tr><td>counter-reset
</td><td>Needs content, Opera only
</td></tr>
212 <tr><td>direction
</td><td>No support
</td></tr>
213 <tr><td>outline-color
</td><td rowspan=
"4">IE Mac and Opera on outside,
214 Mozilla on inside and needs -moz-outline, no IE support.
</td></tr>
215 <tr><td>outline-style
</td></tr>
216 <tr><td>outline-width
</td></tr>
217 <tr><td>outline
</td></tr>
218 <tr><td>unicode-bidi
</td><td>No support
</td></tr>
223 <h2>Interesting Attributes
</h2>
225 <table cellspacing=
"0">
228 <tr><th>Attribute
</th><th>Tags
</th><th>Notes
</th></tr>
234 <tr><td>-</td><td>-</td><td>-</td></tr>
239 <tr><th colspan=
"3">CSS
</th></tr>
240 <tr class=
"impl-yes"><td>style
</td><td>All
</td><td>Parser is reasonably functional. Status here doesn't count individual properties.
</td></tr>
244 <tr><th colspan=
"3">Questionable
</th></tr>
245 <tr class=
"impl-no"><td>accesskey
</td><td>A
</td><td>May interfere with main interface
</td></tr>
246 <tr class=
"impl-no"><td>tabindex
</td><td>A
</td><td>May interfere with main interface
</td></tr>
247 <tr class=
"impl-yes"><td>target
</td><td>A
</td><td>Config enabled, only useful for frame layouts, disallowed in strict
</td></tr>
251 <tr><th colspan=
"3">Miscellaneous
</th></tr>
252 <tr><td>datetime
</td><td>DEL, INS
</td><td>No visible effect, ISO format
</td></tr>
253 <tr class=
"impl-yes"><td>rel
</td><td>A
</td><td>Largely user-defined: nofollow, tag (see microformats)
</td></tr>
254 <tr class=
"impl-yes"><td>rev
</td><td>A
</td><td>Largely user-defined: vote-*
</td></tr>
255 <tr class=
"feature"><td>axis
</td><td>TD, TH
</td><td>W3C only: No browser implementation
</td></tr>
256 <tr class=
"feature"><td>char
</td><td>COL, COLGROUP, TBODY, TD, TFOOT, TH, THEAD, TR
</td><td>W3C only: No browser implementation
</td></tr>
257 <tr class=
"feature"><td>headers
</td><td>TD, TH
</td><td>W3C only: No browser implementation
</td></tr>
258 <tr class=
"impl-yes"><td>scope
</td><td>TD, TH
</td><td>W3C only: No browser implementation
</td></tr>
261 <tbody class=
"impl-yes">
262 <tr><th colspan=
"3">URI
</th></tr>
263 <tr><td rowspan=
"2">cite
</td><td>BLOCKQUOTE, Q
</td><td>For attribution
</td></tr>
264 <tr><td>DEL, INS
</td><td>Link to explanation why it changed
</td></tr>
265 <tr><td>href
</td><td>A
</td><td>-
</td></tr>
266 <tr><td>longdesc
</td><td>IMG
</td><td>-
</td></tr>
267 <tr class=
"required"><td>src
</td><td>IMG
</td><td>Required
</td></tr>
271 <tr><th colspan=
"3">Transform
</th></tr>
272 <tr class=
"impl-yes"><td rowspan=
"5">align
</td><td>CAPTION
</td><td>'caption-side' for top/bottom, 'text-align' for left/right
</td></tr>
273 <tr class=
"impl-yes"><td>IMG
</td><td rowspan=
"3">See specimens/html-align-to-css.html
</td></tr>
274 <tr class=
"impl-yes"><td>TABLE
</td></tr>
275 <tr class=
"impl-yes"><td>HR
</td></tr>
276 <tr class=
"impl-yes"><td>H1, H2, H3, H4, H5, H6, P
</td><td>Equivalent style 'text-align'
</td></tr>
277 <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>
278 <tr class=
"impl-yes"><td rowspan=
"3">bgcolor
</td><td>TABLE
</td><td>Superset style 'background-color'
</td></tr>
279 <tr class=
"impl-yes"><td>TR
</td><td>Superset style 'background-color'
</td></tr>
280 <tr class=
"impl-yes"><td>TD, TH
</td><td>Superset style 'background-color'
</td></tr>
281 <tr class=
"impl-yes"><td>border
</td><td>IMG
</td><td>Equivalent style
<code>border:[number]px solid
</code></td></tr>
282 <tr class=
"impl-yes"><td>clear
</td><td>BR
</td><td>Near-equiv style 'clear', transform 'all' into 'both'
</td></tr>
283 <tr class=
"impl-no"><td>compact
</td><td>DL, OL, UL
</td><td>Boolean, needs custom CSS class; rarely used anyway
</td></tr>
284 <tr class=
"required impl-yes"><td>dir
</td><td>BDO
</td><td>Required, insert ltr (or configuration value) if none
</td></tr>
285 <tr class=
"impl-yes"><td>height
</td><td>TD, TH
</td><td>Near-equiv style 'height', needs px suffix if original was in pixels
</td></tr>
286 <tr class=
"impl-yes"><td>hspace
</td><td>IMG
</td><td>Near-equiv styles 'margin-top' and 'margin-bottom', needs px suffix
</td></tr>
287 <tr class=
"impl-yes"><td>lang
</td><td>*
</td><td>Copy value to xml:lang
</td></tr>
288 <tr class=
"impl-yes"><td rowspan=
"2">name
</td><td>IMG
</td><td>Turn into ID
</td></tr>
289 <tr class=
"impl-yes"><td>A
</td><td>Turn into ID
</td></tr>
290 <tr class=
"impl-yes"><td>noshade
</td><td>HR
</td><td>Boolean, style 'border-style:solid;'
</td></tr>
291 <tr class=
"impl-yes"><td>nowrap
</td><td>TD, TH
</td><td>Boolean, style 'white-space:nowrap;' (not compat with IE5)
</td></tr>
292 <tr class=
"impl-yes"><td>size
</td><td>HR
</td><td>Near-equiv 'height', needs px suffix if original was pixels
</td></tr>
293 <tr class=
"required impl-yes"><td>src
</td><td>IMG
</td><td>Required, insert blank or default img if not set
</td></tr>
294 <tr class=
"impl-yes"><td>start
</td><td>OL
</td><td>Poorly supported 'counter-reset', allowed in loose, dropped in strict
</td></tr>
295 <tr class=
"impl-yes"><td rowspan=
"3">type
</td><td>LI
</td><td rowspan=
"3">Equivalent style 'list-style-type', different allowed values though. (needs testing)
</td></tr>
296 <tr class=
"impl-yes"><td>OL
</td></tr>
297 <tr class=
"impl-yes"><td>UL
</td></tr>
298 <tr class=
"impl-yes"><td>value
</td><td>LI
</td><td>Poorly supported 'counter-reset', allowed in loose, dropped in strict
</td></tr>
299 <tr class=
"impl-yes"><td>vspace
</td><td>IMG
</td><td>Near-equiv styles 'margin-left' and 'margin-right', needs px suffix, see hspace
</td></tr>
300 <tr class=
"impl-yes"><td rowspan=
"2">width
</td><td>HR
</td><td rowspan=
"2">Near-equiv style 'width', needs px suffix if original was pixels
</td></tr>
301 <tr class=
"impl-yes"><td>TD, TH
</td></tr>
308 <!-- vim: et sw=4 sts=4