Re: 30apr00 nested <CODE>

I challenged the "slippery-slope" argument to which gjames replied:
	Less than a month ago, Michael Fitz wanted Tidy to leave his
	<A><DT><DD></A> and his <A><P><P></A> alone.  Check the list archive,
	subject "Bug tydiing <A HREF...></A>".
	

Ahem.
	<!ENTITY % font "TT|I|B |U|STRIKE|BIG|SMALL|SUB|SUP">
	<!ENTITY % phrase "EM|STRONG|DFN|CODE|SAMP|KBD|VAR|CITE">
	<!ENTITY % special "A|IMG|APPLET|FONT|BASEFONT|BR|SCRIPT|MAP">
	<!ENTITY % form "INPUT|SELECT|TEXTAREA">
	<!ENTITY % text "#PCDATA|%font|%phrase|%special|%form">

	<!ELEMENT A - - (%text)* -(A)>

<DT>, <DD>, and <P> are NOT LEGAL inside an <A> element.

I am asking that HTML Tidy should not change legal harmless HTML
without explicit warrant.  Michael Fitz's examples are blatantly illegal,
and therefore irrelevant.

	How harmless is
	<!-- lots of --><B>
	THAT's what I call making a bold statement!
	<!-- lots of --></B>

Pretty harmless.  Look, we're *agreed* that HTML Tidy should at least
report a warning pointing out that this is odd and not terribly pointful.
Nobody is saying it should pretend it didn't notice anything!
A message such as
	{file}:{line}:{column}:font element <{gi}> nested inside
	{file}:{line}:{column}:an outer <{gi}>, use -noidem to clean this up
would make it clear that something odd is going on, what is odd, and what to
do about it.

	Just because there's a chance there is a stylesheet rule selecting on
	bold text nested 208 levels deep doesn't mean it's a GOOD rule.  There are
	better selectors to use than that, whether it is 208 levels deep or just 2
	levels deep.  I'd recommend using SPAN which is a truly presentationally
	neutral tag which would not be reduced and adjusting one's stylesheet
	selectors accordingly.
	
Yes, but I'm talking about HTML that >I am not in charge of<.
If I were generating this stuff, I would certainly change the generator.

	As such, I am completely in favor of reducing redundant nesting
	of presentational HTML tags.  If there's a class or id attribute
	applied to some, I can see it being coerced (as Tidy calls it)
	to a SPAN (which will alert the user to adjust the stylesheet
	accordingly), but I've also seen software that generates useless
	id attributes on every tag (NetObjects Fusion) and would like
	the option to ignore them.
	
Such an option would be nice.  But again, it should default to the OFF
state, because you can't *tell* which ID attributes are useless.  One of
the key points about CSS is that users can install their own style sheets
which are not in or referenced by the document itself.

One thing I would certainly like would be an option to erase all nonstandard
attributes.

	If there is to be installed a switch on the reduction of
	redundantly nested tags, it is my opinion that it should default
	to the ON position with the note that there are better selectors
	to use than child-of-itself.  Perhaps one of the next
	enhancements in stylesheet parsing should be to warn against
	such selectors on %fontstyle and %phrase markup, excluding BIG
	and SMALL which do have a cumulative effect.

That would indeed be an enhancement for stylesheet parsing.
Note that I am not defending <CODE><CODE>x</CODE></CODE> as good style,
only as legal code.  Lint-like warnings are a Good Thing.
I could live with a switch with the wrong default as long as there _was_
a switch.

There are other aspects of bad style that HTML Tidy could usefully do
something about.  For example, the same document that had nested <CODE>
also had <H1>...</H1>...<H3>...</H3> with no intervening <H2>.  That's
legal, so in my view HTML Tidy was right not to change it, but it is not
good style, so I wish HTML Tidy had said something about it.

Received on Tuesday, 27 June 2000 20:42:40 UTC