2006-11-19 02:36:47 +00:00
<?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en" > < head >
< meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" / >
2006-11-19 04:31:48 +00:00
< meta name = "description" content = "Tables detailing HTML element and CSS property implementation coverage in HTML Purifier." / >
2006-11-19 02:36:47 +00:00
< link rel = "stylesheet" type = "text/css" href = "./style.css" / >
2006-11-19 04:31:48 +00:00
< title > Implementation Progress - HTML Purifier< / title >
2006-11-19 02:36:47 +00:00
< style type = "text/css" >
td {padding-right:1em;border-bottom:1px solid #000;padding-left:0.5em;}
th {text-align:left;padding-top:1.4em;font-size:13pt;
border-bottom:2px solid #000;background:#FFF;}
thead th {text-align:left;padding:0.1em;background-color:#EEE;}
.impl-yes {background:#9D9;}
.impl-partial {background:#FFA;}
.impl-no {background:#CCC;}
.danger {color:#600;}
.css1 {color:#060;}
.required {font-weight:bold;}
.feature {color:#999;}
< / style >
< / head > < body >
< h1 > Implementation Progress< / h1 >
2006-11-19 04:31:48 +00:00
< div id = "filing" > Filed under Development< / div >
< div id = "index" > Return to the < a href = "index.html" > index< / a > .< / div >
2007-04-22 22:22:48 +00:00
< div id = "home" > < a href = "http://htmlpurifier.org/" > HTML Purifier< / a > End-User Documentation< / div >
2006-11-19 04:31:48 +00:00
2006-11-19 02:36:47 +00:00
< h2 > Key< / h2 >
< table cellspacing = "0" > < tbody >
< tr > < td class = "impl-yes" > Implemented< / td > < / tr >
< tr > < td class = "impl-partial" > Partially implemented< / td > < / tr >
< tr > < td class = "impl-no" > Will not implement< / td > < / tr >
< tr > < td class = "danger" > Dangerous attribute/property< / td > < / tr >
< tr > < td class = "css1" > Present in CSS1< / td > < / tr >
< tr > < td class = "feature" > Feature, requires extra work< / td > < / tr >
< / tbody > < / table >
2006-11-19 04:56:50 +00:00
< h2 > CSS< / h2 >
2006-11-19 02:36:47 +00:00
< table cellspacing = "0" >
< thead >
< tr > < th > Name< / th > < th > Notes< / th > < / tr >
< / thead >
<!--
< tr > < td > -< / td > < td > -< / td > < / tr >
-->
< tbody >
< tr > < th colspan = "2" > Standard< / th > < / tr >
< tr class = "css1 impl-yes" > < td > background-color< / td > < td > COMPOSITE(< color> , transparent)< / td > < / tr >
2007-01-20 02:21:43 +00:00
< tr class = "css1 impl-yes" > < td > background< / td > < td > SHORTHAND, currently alias for background-color< / td > < / tr >
2006-11-19 02:36:47 +00:00
< tr class = "css1 impl-yes" > < td > border< / td > < td > SHORTHAND, MULTIPLE< / td > < / tr >
< tr class = "css1 impl-yes" > < td > border-color< / td > < td > MULTIPLE< / td > < / tr >
< tr class = "css1 impl-yes" > < td > border-style< / td > < td > MULTIPLE< / td > < / tr >
< tr class = "css1 impl-yes" > < td > border-width< / td > < td > MULTIPLE< / td > < / tr >
< tr class = "css1 impl-yes" > < td > border-*< / td > < td > SHORTHAND< / td > < / tr >
< tr class = "impl-yes" > < td > border-*-color< / td > < td > COMPOSITE(< color> , transparent)< / td > < / tr >
< tr class = "impl-yes" > < td > border-*-style< / td > < td > ENUM(none, hidden, dotted, dashed,
solid, double, groove, ridge, inset, outset)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > border-*-width< / td > < td > COMPOSITE(< length> , thin, medium, thick)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > clear< / td > < td > ENUM(none, left, right, both)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > color< / td > < td > < color> < / td > < / tr >
< tr class = "css1 impl-yes" > < td > float< / td > < td > ENUM(left, right, none), May require layout
precautions with clear< / td > < / tr >
< tr class = "css1 impl-yes" > < td > font< / td > < td > SHORTHAND< / td > < / tr >
< tr class = "css1 impl-yes" > < td > font-family< / td > < td > CSS validator may complain if fallback font
family not specified< / td > < / tr >
< tr class = "css1 impl-yes" > < td > font-size< / td > < td > COMPOSITE(< absolute-size> ,
< relative-size> , < length> , < percentage> )< / td > < / tr >
< tr class = "css1 impl-yes" > < td > font-style< / td > < td > ENUM(normal, italic, oblique)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > font-variant< / td > < td > ENUM(normal, small-caps)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > font-weight< / td > < td > ENUM(normal, bold, bolder, lighter,
100, 200, 300, 400, 500, 600, 700, 800, 900), maybe special code for
in-between integers< / td > < / tr >
< tr class = "css1 impl-yes" > < td > letter-spacing< / td > < td > COMPOSITE(< length> , normal)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > line-height< / td > < td > COMPOSITE(< number> ,
< length> , < percentage> , normal)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > list-style-position< / td > < td > ENUM(inside, outside),
Strange behavior in browsers< / td > < / tr >
< tr class = "css1 impl-yes" > < td > list-style-type< / td > < td > ENUM(...),
Well-supported values are: disc, circle, square,
decimal, lower-roman, upper-roman, lower-alpha and upper-alpha. See also
CSS 3. Mostly IE lack of support.< / td > < / tr >
< tr class = "css1 impl-yes" > < td > list-style< / td > < td > SHORTHAND< / td > < / tr >
< tr class = "css1 impl-yes" > < td > margin< / td > < td > MULTIPLE< / td > < / tr >
< tr class = "css1 impl-yes" > < td > margin-*< / td > < td > COMPOSITE(< length> ,
< percentage> , auto)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > padding< / td > < td > MULTIPLE< / td > < / tr >
< tr class = "css1 impl-yes" > < td > padding-*< / td > < td > COMPOSITE(< length> (positive),
< percentage> (positive))< / td > < / tr >
< tr class = "css1 impl-yes" > < td > text-align< / td > < td > ENUM(left, right,
center, justify)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > text-decoration< / td > < td > No blink (argh my eyes), not
enum, can be combined (composite sorta): underline, overline,
line-through< / td > < / tr >
< tr class = "css1 impl-yes" > < td > text-indent< / td > < td > COMPOSITE(< length> ,
< percentage> )< / td > < / tr >
< tr class = "css1 impl-yes" > < td > text-transform< / td > < td > ENUM(capitalize, uppercase,
lowercase, none)< / td > < / tr >
< tr class = "css1 impl-yes" > < td > width< / td > < td > COMPOSITE(< length> ,
< percentage> , auto), Interesting< / td > < / tr >
< tr class = "css1 impl-yes" > < td > word-spacing< / td > < td > COMPOSITE(< length> , auto),
IE 5 no support< / td > < / tr >
< / tbody >
< tbody >
< tr > < th colspan = "2" > Table< / th > < / tr >
< tr class = "impl-yes" > < td > border-collapse< / td > < td > ENUM(collapse, seperate)< / td > < / tr >
< tr class = "impl-yes" > < td > caption-side< / td > < td > ENUM(top, bottom)< / td > < / tr >
< tr class = "feature" > < td > empty-cells< / td > < td > ENUM(show, hide), No IE support makes this useless,
possible fix with & nbsp;? Unknown release milestone.< / td > < / tr >
< tr class = "impl-yes" > < td > table-layout< / td > < td > ENUM(auto, fixed)< / td > < / tr >
< tr class = "impl-yes css1" > < td > vertical-align< / td > < td > COMPOSITE(ENUM(baseline, sub,
super, top, text-top, middle, bottom, text-bottom), < percentage> ,
< length> ) Also applies to others with explicit height< / td > < / tr >
< / tbody >
< tbody >
< tr > < th colspan = "2" > Absolute positioning, unknown release milestone< / th > < / tr >
2006-11-23 22:15:35 +00:00
< tr class = "danger impl-no" > < td > bottom< / td > < td rowspan = "4" > Dangerous, must be non-negative to even be considered,
but it's still possible to arbitrarily position by running over.< / td > < / tr >
< tr class = "danger impl-no" > < td > left< / td > < / tr >
< tr class = "danger impl-no" > < td > right< / td > < / tr >
< tr class = "danger impl-no" > < td > top< / td > < / tr >
< tr class = "impl-no" > < td > clip< / td > < td > -< / td > < / tr >
< tr class = "danger impl-no" > < td > position< / td > < td > ENUM(static, relative, absolute, fixed)
2006-11-19 02:36:47 +00:00
relative not absolute?< / td > < / tr >
2006-11-23 22:15:35 +00:00
< tr class = "danger impl-no" > < td > z-index< / td > < td > Dangerous< / td > < / tr >
2006-11-19 02:36:47 +00:00
< / tbody >
< tbody >
< tr > < th colspan = "2" > Unknown< / th > < / tr >
2007-01-15 01:16:25 +00:00
< tr class = "danger css1 impl-yes" > < td > background-image< / td > < td > Dangerous, target milestone 1.3< / td > < / tr >
< tr class = "css1 impl-yes" > < td > background-attachment< / td > < td > ENUM(scroll, fixed),
2006-11-19 02:36:47 +00:00
Depends on background-image< / td > < / tr >
2007-01-20 01:46:37 +00:00
< tr class = "css1 impl-yes" > < td > background-position< / td > < td > Depends on background-image< / td > < / tr >
2006-11-19 02:36:47 +00:00
< tr class = "danger impl-no" > < td > cursor< / td > < td > Dangerous but fluffy< / td > < / tr >
< tr class = "danger css1" > < td > display< / td > < td > ENUM(...), Dangerous but interesting;
will not implement list-item, run-in (Opera only) or table (no IE);
inline-block has incomplete IE6 support and requires -moz-inline-box
for Mozilla. Unknown target milestone.< / td > < / tr >
2007-03-29 23:48:54 +00:00
< tr class = "css1 impl-yes" > < td > height< / td > < td > Interesting, why use it? Unknown target milestone.< / td > < / tr >
2007-01-14 16:26:47 +00:00
< tr class = "danger css1 impl-yes" > < td > list-style-image< / td > < td > Dangerous?< / td > < / tr >
2006-11-19 02:36:47 +00:00
< tr class = "impl-no" > < td > max-height< / td > < td rowspan = "4" > No IE 5/6< / td > < / tr >
< tr class = "impl-no" > < td > min-height< / td > < / tr >
< tr class = "impl-no" > < td > max-width< / td > < / tr >
< tr class = "impl-no" > < td > min-width< / td > < / tr >
< tr class = "impl-no" > < td > orphans< / td > < td > No IE support< / td > < / tr >
< tr class = "impl-no" > < td > widows< / td > < td > No IE support< / td > < / tr >
< tr > < td > overflow< / td > < td > ENUM, IE 5/6 almost (remove visible if set). Unknown target milestone.< / td > < / tr >
< tr > < td > page-break-after< / td > < td > ENUM(auto, always, avoid, left, right),
IE 5.5/6 and Opera. Unknown target milestone.< / td > < / tr >
< tr > < td > page-break-before< / td > < td > ENUM(auto, always, avoid, left, right),
Mostly supported. Unknown target milestone.< / td > < / tr >
< tr > < td > page-break-inside< / td > < td > ENUM(avoid, auto), Opera only. Unknown target milestone.< / td > < / tr >
< tr class = "impl-no" > < td > quotes< / td > < td > May be dropped from CSS2, fairly useless for inline context< / td > < / tr >
< tr class = "impl-no" > < td > visibility< / td > < td > ENUM(visible, hidden, collapse),
Dangerous< / td > < / tr >
< tr class = "css1 feature" > < td > white-space< / td > < td > ENUM(normal, pre, nowrap, pre-wrap,
pre-line), Spotty implementation:
pre (no IE 5/6), nowrap (no IE 5),
pre-wrap (only Opera), pre-line (no support). Fixable? Unknown target milestone.< / td > < / tr >
< / tbody >
< tbody class = "impl-no" >
< tr > < th colspan = "2" > Aural< / th > < / tr >
< tr > < td > azimuth< / td > < td > -< / td > < / tr >
< tr > < td > cue< / td > < td > -< / td > < / tr >
< tr > < td > cue-after< / td > < td > -< / td > < / tr >
< tr > < td > cue-before< / td > < td > -< / td > < / tr >
< tr > < td > elevation< / td > < td > -< / td > < / tr >
< tr > < td > pause-after< / td > < td > -< / td > < / tr >
< tr > < td > pause-before< / td > < td > -< / td > < / tr >
< tr > < td > pause< / td > < td > -< / td > < / tr >
< tr > < td > pitch-range< / td > < td > -< / td > < / tr >
< tr > < td > pitch< / td > < td > -< / td > < / tr >
< tr > < td > play-during< / td > < td > -< / td > < / tr >
< tr > < td > richness< / td > < td > -< / td > < / tr >
< tr > < td > speak-header< / td > < td > Table related< / td > < / tr >
< tr > < td > speak-numeral< / td > < td > -< / td > < / tr >
< tr > < td > speak-punctuation< / td > < td > -< / td > < / tr >
< tr > < td > speak< / td > < td > -< / td > < / tr >
< tr > < td > speech-rate< / td > < td > -< / td > < / tr >
< tr > < td > stress< / td > < td > -< / td > < / tr >
< tr > < td > voice-family< / td > < td > -< / td > < / tr >
< tr > < td > volume< / td > < td > -< / td > < / tr >
< / tbody >
< tbody class = "impl-no" >
< tr > < th colspan = "2" > Will not implement< / th > < / tr >
< tr > < td > content< / td > < td > Not applicable for inline styles< / td > < / tr >
< tr > < td > counter-increment< / td > < td > Needs content, Opera only< / td > < / tr >
< tr > < td > counter-reset< / td > < td > Needs content, Opera only< / td > < / tr >
< tr > < td > direction< / td > < td > No support< / td > < / tr >
< tr > < td > outline-color< / td > < td rowspan = "4" > IE Mac and Opera on outside,
Mozilla on inside and needs -moz-outline, no IE support.< / td > < / tr >
< tr > < td > outline-style< / td > < / tr >
< tr > < td > outline-width< / td > < / tr >
< tr > < td > outline< / td > < / tr >
< tr > < td > unicode-bidi< / td > < td > No support< / td > < / tr >
< / tbody >
< / table >
< h2 > Interesting Attributes< / h2 >
< table cellspacing = "0" >
< thead >
< tr > < th > Attribute< / th > < th > Tags< / th > < th > Notes< / th > < / tr >
< / thead >
<!--
< tr > < th > < / th > < / tr >
< tbody >
< tr > < td > -< / td > < td > -< / td > < td > -< / td > < / tr >
< / tbody >
-->
< tbody >
< tr > < th colspan = "3" > CSS< / th > < / tr >
2007-01-20 02:21:43 +00:00
< tr class = "impl-yes" > < td > style< / td > < td > All< / td > < td > Parser is reasonably functional. Status here doesn't count individual properties.< / td > < / tr >
2006-11-19 02:36:47 +00:00
< / tbody >
< tbody >
< tr > < th colspan = "3" > Questionable< / th > < / tr >
< tr class = "impl-no" > < td > accesskey< / td > < td > A< / td > < td > May interfere with main interface< / td > < / tr >
< tr class = "impl-no" > < td > tabindex< / td > < td > A< / td > < td > May interfere with main interface< / td > < / tr >
2006-11-23 22:15:35 +00:00
< tr > < td > target< / td > < td > A< / td > < td > Config enabled, only useful for frame layouts, disallowed in strict< / td > < / tr >
2006-11-19 02:36:47 +00:00
< / tbody >
< tbody >
< tr > < th colspan = "3" > Miscellaneous< / th > < / tr >
< tr > < td > datetime< / td > < td > DEL, INS< / td > < td > No visible effect, ISO format< / td > < / tr >
2007-03-31 03:09:46 +00:00
< tr class = "impl-yes" > < td > rel< / td > < td > A< / td > < td > Largely user-defined: nofollow, tag (see microformats)< / td > < / tr >
< tr class = "impl-yes" > < td > rev< / td > < td > A< / td > < td > Largely user-defined: vote-*< / td > < / tr >
2006-11-19 02:36:47 +00:00
< tr class = "feature" > < td > axis< / td > < td > TD, TH< / td > < td > W3C only: No browser implementation< / td > < / tr >
< tr class = "feature" > < td > char< / td > < td > COL, COLGROUP, TBODY, TD, TFOOT, TH, THEAD, TR< / td > < td > W3C only: No browser implementation< / td > < / tr >
< tr class = "feature" > < td > headers< / td > < td > TD, TH< / td > < td > W3C only: No browser implementation< / td > < / tr >
< tr class = "feature" > < td > scope< / td > < td > TD, TH< / td > < td > W3C only: No browser implementation< / td > < / tr >
< / tbody >
< tbody class = "impl-yes" >
< tr > < th colspan = "3" > URI< / th > < / tr >
< tr > < td rowspan = "2" > cite< / td > < td > BLOCKQUOTE, Q< / td > < td > For attribution< / td > < / tr >
< tr > < td > DEL, INS< / td > < td > Link to explanation why it changed< / td > < / tr >
< tr > < td > href< / td > < td > A< / td > < td > -< / td > < / tr >
< tr > < td > longdesc< / td > < td > IMG< / td > < td > -< / td > < / tr >
< tr class = "required" > < td > src< / td > < td > IMG< / td > < td > Required< / td > < / tr >
< / tbody >
< tbody >
2007-03-30 00:01:35 +00:00
< tr > < th colspan = "3" > Transform, target milestone 1.6< / th > < / tr >
2006-11-19 02:36:47 +00:00
< tr > < td rowspan = "5" > align< / td > < td > CAPTION< / td > < td > Near-equiv style 'caption-side', drop left and right< / td > < / tr >
< tr > < td > IMG< / td > < td rowspan = "2" > Margin-left and margin-right = auto or parent div< / td > < / tr >
< tr > < td > TABLE< / td > < / tr >
2007-01-20 03:48:39 +00:00
< tr > < td > HR< / td > < td > Near-equivalent style 'text-align' (Works for IE and Opera, but not Firefox). Also try < code > margin-right:auto; margin-left:0;< / code > for left or < code > margin-right:0; margin-left:auto;< / code > for right (optionally replacing 0 with the original margin for that side)< / td > < / tr >
2006-11-19 02:36:47 +00:00
< tr class = "impl-yes" > < td > H1, H2, H3, H4, H5, H6, P< / td > < td > Equivalent style 'text-align'< / td > < / tr >
< 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 >
2007-03-29 21:20:44 +00:00
< tr class = "impl-yes" > < td rowspan = "3" > bgcolor< / td > < td > TABLE< / td > < td > Superset style 'background-color'< / td > < / tr >
< tr class = "impl-yes" > < td > TR< / td > < td > Superset style 'background-color'< / td > < / tr >
< tr class = "impl-yes" > < td > TD, TH< / td > < td > Superset style 'background-color'< / td > < / tr >
2007-03-29 21:41:17 +00:00
< tr class = "impl-yes" > < td > border< / td > < td > IMG< / td > < td > Equivalent style < code > border:[number]px solid< / code > < / td > < / tr >
2006-11-19 02:36:47 +00:00
< tr > < td > clear< / td > < td > BR< / td > < td > Near-equiv style 'clear', transform 'all' into 'both'< / td > < / tr >
< tr class = "impl-no" > < td > compact< / td > < td > DL, OL, UL< / td > < td > Boolean, needs custom CSS class; rarely used anyway< / td > < / tr >
< tr class = "required impl-yes" > < td > dir< / td > < td > BDO< / td > < td > Required, insert ltr (or configuration value) if none< / td > < / tr >
2007-03-29 23:48:54 +00:00
< 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 >
2007-04-30 19:39:42 +00:00
< tr class = "impl-yes" > < td > hspace< / td > < td > IMG< / td > < td > Near-equiv styles 'margin-top' and 'margin-bottom', needs px suffix< / td > < / tr >
2006-11-19 02:36:47 +00:00
< tr class = "impl-yes" > < td > lang< / td > < td > *< / td > < td > Copy value to xml:lang< / td > < / tr >
2007-03-29 23:19:53 +00:00
< tr class = "impl-yes" > < td rowspan = "2" > name< / td > < td > IMG< / td > < td > Turn into ID< / td > < / tr >
< tr class = "impl-yes" > < td > A< / td > < td > Turn into ID< / td > < / tr >
2006-11-19 02:36:47 +00:00
< tr > < td > noshade< / td > < td > HR< / td > < td > Boolean, style 'border-style:solid;'< / td > < / tr >
< tr > < td > nowrap< / td > < td > TD, TH< / td > < td > Boolean, style 'white-space:nowrap;' (not compat with IE5)< / td > < / tr >
2007-03-30 00:01:35 +00:00
< tr > < td > size< / td > < td > HR< / td > < td > Near-equiv 'height', needs px suffix if original was pixels< / td > < / tr >
2006-11-19 02:36:47 +00:00
< tr class = "required impl-yes" > < td > src< / td > < td > IMG< / td > < td > Required, insert blank or default img if not set< / td > < / tr >
2006-11-23 22:15:35 +00:00
< tr class = "impl-yes" > < td > start< / td > < td > OL< / td > < td > Poorly supported 'counter-reset', allowed in loose, dropped in strict< / td > < / tr >
2006-11-19 02:36:47 +00:00
< 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 >
< tr > < td > OL< / td > < / tr >
< tr > < td > UL< / td > < / tr >
2006-11-23 22:15:35 +00:00
< tr class = "impl-yes" > < td > value< / td > < td > LI< / td > < td > Poorly supported 'counter-reset', allowed in loose, dropped in strict< / td > < / tr >
2007-04-30 19:39:42 +00:00
< 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 >
2007-03-29 23:48:54 +00:00
< 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 >
< tr class = "impl-yes" > < td > TD, TH< / td > < / tr >
2006-11-19 02:36:47 +00:00
< / tbody >
< / table >
2006-11-19 03:10:14 +00:00
< div id = "version" > $Id$< / div >
2006-08-06 04:31:14 +00:00
< / body > < / html >