Loose versus Strict Changes from one doctype to another There are changes. Wow, how insightful. Not everything changed is relevant to HTML Purifier, though, so let's take a look: == Major incompatibilities == [done] BLOCKQUOTE changes from 'flow' to 'block' current behavior: inline inner contents should not be nuked, block-ify as necessary [partially-done] U, S, STRIKE cut current behavior: removed completely projected behavior: replace with appropriate inline span + CSS [done] ADDRESS from potpourri to Inline (removes p tags) current behavior: block tags silently dropped ideal behavior: replace tags with something like
. (not high priority) == Things we can loosen up == Tags DIR, MENU, CENTER, ISINDEX, FONT, BASEFONT? allowed in loose current behavior: transform to strict-valid forms Attributes allowed in loose (see attribute transforms in 'dev-progress.html') current behavior: projected to transform into strict-valid forms == Periphery issues == A tag's attribute 'target' (for selecting frames) cut current behavior: not allowed at all projected behavior: use loose doctype if needed, needs valid values [done] OL/LI tag's attribute 'start'/'value' (for renumbering lists) cut current behavior: no substitute, just delete when in strict, allow in loose Attribute 'name' deprecated in favor of 'id' current behavior: dropped silently projected behavior: create proper AttrTransform (currently not allowed at all) [done] PRE tag allows SUB/SUP? (strict dtd comment vs syntax, loose disallows) current behavior: disallow as usual