RE: Invisible "Skip navigation" link

It seems there are instances where guidelines clash with best
practices/workarounds, like the example here. You're damned if you do
and damned if you don't! This whole field is still working itself out
and there are bound to be these situations.

I reckon you simply have to choose a solution and make it consistent
across your site. Given the facts I have so far, I'm happy to put
trailing spaces on everything.

Steve




-----Original Message-----
From: w3c-wai-ig-request@w3.org [mailto:w3c-wai-ig-request@w3.org] On
Behalf Of Jukka Korpela
Sent: 24 July 2002 09:19 AM
To: 'WAI IG'
Subject: RE: Invisible "Skip navigation" link



Steve Vosloo wrote:

> To cover all bases it seems a good idea to always put a space after a 
> text description, and usually after some sort of punctuation:
> 
> <a href="#content" title="Skip Navigation. Access key = 2. "> <img 
> src="hello.gif" alt="Hello world. "> <frame src="banner.html" 
> title="Frame banner. ">

In practice, I tend to agree, at least in situations where alt texts
would otherwise "run together".

But we have a problem here. The HTML 4 specification says that user
agents may ignore leading and trailing spaces in attributes (e.g., treat
alt="foo " as equivalent to alt="foo") for "CDATA attributes" (such as
title, alt, and many others). This is specified in section 6.2 "SGML
basic types" (so you may easily miss it when using the specification as
a reference): http://www.w3.org/TR/html4/types.html#h-6.2
And it even says in this context: "Authors should not declare attribute
values with leading or trailing white space." (Someone might interpret
this "only" as a strong way of saying that authors should not _rely_ on
such space being preserved.)

XHTML is a different beast:
"Whitespace in attribute values is processed according to [XML]."
  http://www.w3.org/TR/html/#uaconf
And this means strict (and fairly complicated) normalization rules:
  http://www.w3.org/TR/REC-xml#AVNormalize
But those rules do not make stripping leading and trailing spaces
mandatory for CDATA attributes - though they _do_ require such stripping
for other attributes! (And they require compression of multiple spaces,
so that alt="foo  " is normalized to alt="foo ".)

It's difficult to say whether XHTML is intended to _allow_ stripping of
leading and trailing spaces in CDATA attributes (as HTML 4 does).

Note that if such stripping is allowed, alt=" " can be treated as
identical to alt="", which would not be nice at all if e.g. the image is
a separator between adjacent words.

-- 
Jukka Korpela, senior adviser
TIEKE Finnish Information Society Development Centre http://www.tieke.fi
Phone: +358 9 4763 0397 Fax: +358 9 4763 0399 

Received on Wednesday, 24 July 2002 04:05:39 UTC