- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Thu, 25 Mar 2010 08:50:57 -0700
- To: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
- Cc: HTMLwg <public-html@w3.org>
On Wed, Mar 24, 2010 at 5:28 PM, Leif Halvard Silli
<xn--mlform-iua@xn--mlform-iua.no> wrote:
> Tab Atkins Jr., Wed, 24 Mar 2010 15:52:06 -0700:
>> On Wed, Mar 24, 2010 at 3:32 PM, Leif Halvard Silli:
>>> Is <td style="display:none"> that you describe as servicable? ;-) I
>>> agree that it doesn't require change to any spec. I took it up partly
>>> because I was not sure if there are any side effects.
>>
>> No. That is attempting to fix a source-code formatting problem with
>> CSS, which is equally bad. Again ignoring the architectural problems
>> of this being a solution at *entirely* the wrong level, a user-agent
>> that doesn't do CSS will have a screwed-up page.
>
> That would be a transition problem.
This is not a transition problem. No user-agent is required to
implement CSS. Tying HTML semantics to CSS is thus an immediate
failure.
> I guess it is meant that @hidden
> should cause things to be hidden in Lynx as well?
Yes. Why would you think otherwise?
>>> I no longer suggest to use specifically @hidden for this purpose, but
>>> rather @placeholder or @removed. However, the point of @hidden is to
>>> hide things without having to physically remove things from a page. A
>>> physical removal would require changes to the CSS, JavaScript etc for
>>> that page. The purpose of <td removed > is the same, from the point of
>>> view of allowing CSS to work as if the cell were not removed. When it
>>> comes to how :nth-col works, then I don't see why it couldn't be worked
>>> into its algorithm that it considers e.g. <td removed> as removed.
>>
>> So now you are trying to invent an entirely new attribute for the sole
>> purpose of making your source code prettier? (Note that, in addition
>> to the architectural problems previously mentioned, this also has a
>> terrible fallback - in legacy user agents the table will be completely
>> screwed up.)
>
> Yes. Fallback problem. But if a legacy UA doesn't support @hidden, then
> the one will have to make sense of things on one's own. Same with
> @removed.
No, in a legacy user agent, an author can just supply their own
default styles for @hidden elements. The fallback isn't *perfect*,
but it's workable.
Note, though, that the author-supplied-styles fallback for @hidden
does *not* screw up table structure for legacy user agents. They see
the exact same table as a compliant UA. At worst (legacy, non-CSS
UAs) they'll see the data that you think is irrelevant. With your
idea, though, they'll see an *entirely screwed up table, with cells in
the wrong column*.
> The other problem it solves is that <td removed> allows me to use
>
> tr *:first-child+*{}
>
> in a predictable way. (Which again allows me to use CSS to check that I
> did things correctly.)
That problem has been solved, and will be specced and implemented in
due course. In the meantime, if you need to select table cells in a
specific column, give them all a particular class. That's what you
have to do, anyway, if you want to author a page that will display
correctly in UAs that don't support :first-child (legacy IEs, frex).
>>>> Since an element is @hidden and irrelevant, it shouldn't
>>>> be displayed to visual users, nor read out to speech users, nor
>>>> presented in any other fashion to people using any other presentation
>>>> modalities. That means that, yes, we apply some sort of appropriate
>>>> CSS to hide it. But the semantic is separate from the CSS.
>>>
>>> Why do you think I suggest to have an attribute solution to a problem
>>> that I already know that I can solve via CSS?
>>
>> You can't solve it via CSS. You can apply a dirty hack that employs
>> CSS, but which will have incorrect semantics in all UAs and incorrect
>> display in all non-CSS UAs. That doesn't qualify as a 'solution'.
>
> I agree: @hidden and @remove have semantics. CSS is just the means we
> use to express the semantics.
The semantics of @remove, as you have described it, is "This is a
comment." We already have comments, and they have none of the
problems that I've tried to show you that @remove has.
~TJ
Received on Thursday, 25 March 2010 15:51:50 UTC