[whatwg] [WA1] The a element could be empty
mattraymond at earthlink.net
Fri Sep 2 11:29:35 PDT 2005
Simon Pieters wrote:
>>scheme which is an ugly hack), what's wrong with:
>><span id="print" class="link"></span>
> How is an empty span less harmful than an empty a element without an href
An empty <a> element is semantically meaningless. By contrast, <span>
is already defined as having no semantics and empty <span> elements are
commonly used for styling purposes.
>>Where the link class may be styled to look like a link with CSS, and then
>>var elm = document.getElementById("print");
>>elm.onclick = window.print;
>>elm.appendChild(document.createTextNode("Print this page"));
> For keyboard access, you need a tabindex="0" which has no effect in legacy
> UAs, and you currently can't trigger the click event from keyboard in IE6 or
> Firefox on a span element.
> "http://example.org/" -- or "mailto:me at example.org", or "data:,foo", or
> whatever -- in my first example, I would still like to use an empty a
> element in the markup.
I don't understand why you couldn't just use styling to make an <a>
element "display: inline" for screen media and "display: none" for print
media. Inserting the contents into <a> and establishing an |onclick|
event means that you'll have to turn right around and use proprietary
events like |onbeforeprint| and |onafterprint| to deal with the extra
<a> element so that it won't be seen when you print.
So the questions are:
1) Why wouldn't you want the content in the element to be inserted by
markup and hide it using CSS?
2) Even if some of your users don't have support for CSS, why would you
change the fact that you're going to have to remove the content before
3) How does your original example even prevent the content from being
viewed when printing?
4) What prevents you from inserting the entire <a> element into a <span>?
5) How to you get rid of styling for the <a> element if all <a> elements
are styled in such a way that they are easily visible even when they
have no contents?
The bottom line is that you need a much better use case.
More information about the whatwg