[whatwg] HTMLLinkElement.disabled and HTMLLinkElement.sheet behavior

Ian Hickson ian at hixie.ch
Thu Jan 26 16:30:47 PST 2012

On Tue, 4 Oct 2011, Julien Chaffraix wrote:
> following WebKit's attempt at implementing the behavior of |sheet| and 
> |disabled| per HTML5 / CSSOM [1], we have found that the specs [2] [3] 
> either under-specify the behavior or do not match what browsers are 
> doing.

The spec has changed a bit since your e-mail; can you check again and see 
if the improvements are sufficient?

> * Opera and FF always have an associated stylesheet if |link.rel|
> matches a stylesheet and |href| is set.
> * They both fill link.sheet with default values even if the stylesheet
> was / ends up in error.

This is per the spec now.

> * However, FF loads the stylesheet synchronously whereas Opera does it
> asynchronously from a JS perspective

This is required per the spec: a pending <link rel=stylesheet> load does 
block certain scripts from executing.

See: http://www.whatwg.org/specs/web-apps/current-work/#has-a-style-sheet-that-is-blocking-scripts

> * Some websites (4chan.org for examples) assumes that the |sheet| is 
> always available and that |disabled| will work properly regardless of 
> when it is called.

This is now per spec as far as I can tell.

See: http://www.whatwg.org/specs/web-apps/current-work/#styling

On Wed, 5 Oct 2011, Henri Sivonen wrote:
> On Tue, Oct 4, 2011 at 9:54 PM, Boris Zbarsky <bzbarsky at mit.edu> wrote:
> > What Firefox does do is block execution of <script> tags (but not 
> > timeouts, callbacks, etc!) if there are pending non-altenate 
> > parser-inserted stylesheet loads.  This is necessary to make sure 
> > that scripts getting layout properties see the effect of those 
> > stylesheets. A side-effect is that a <script> coming after a <link> 
> > will never see the link in an unloaded state... unless there's a 
> > network error for the <link> or whatever.
> One exception: If an inline script comes from document.write(), it 
> doesn't block on pending sheets. It runs right away. If it blocked on 
> pending sheets, the point at which document.write() returns would depend 
> on network performance, which I think would be worse than having 
> document.written inline scripts that poke at styles fail depending on 
> network performance.

Note that this is not conforming. The spec does not currently define any 
such behaviour.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the whatwg mailing list