[whatwg] activeElement

On Thu, 17 May 2007, Hallvord R M Steen wrote:
>
> if WHATWG is defining document.activeElement, perhaps the WHAT spec 
> should match IE's behaviour more closely on some points. I refer to: 
> http://www.whatwg.org/specs/web-apps/current-work/#activeelement
> 
> * when the document is loaded, before any interaction activeElement is 
> the body element (!) (probably not important, I doubt any site would 
> rely on this)

I've made the default the <body> element instead of the root element, 
which does indeed seem to more accurately reflect IE's behaviour.


> * activeElement is set after mousedown. (important, maybe implied by 
> other stuff about focus handling? I didn't test keydown for e.g. tabbing 
> but pretty sure the same applies.)

This flows from the fact that that's when focus is set. It would vary on a 
platform with different focusing semantics.


> * it is set to the event's target if it is "focusable" (A, INPUT, BUTTON 
> etc.), otherwise it is set to the event's target's .offsetParent 
> (important, and the offsetParent stuff isn't covered in the current 
> spec)

I couldn't reproduce this. In my testing, only positioned <div> and <span> 
elements were magical in this way.

For example, click the "uuu" text on this test case and you'll see the 
offsetParent (written to the log) is the B element, but the activeElement 
is the DIV element.

   http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0D%0A%3Cbody%20onclick%3D%22w%28event.srcElement.offsetParent.tagName%29%22%3E%0D%0A%3Cpre%3E%28...%29%3C/pre%3E%0D%0A%3Cdiv%20style%3D%22position%3Aabsolute%22%3Eddd%3Ci%3Eiii%3Cb%20style%3D%22position%3Aabsolute%22%3Ebbb%3Cu%3Euuu%3Cinput%3E%3C/u%3E%3C/b%3E%3C/i%3E%3C/div%3E%0D%0A%3Cscript%3E%0D%0A%20setInterval%28function%20%28%29%20%7B%0D%0A%20%20%20var%20pre%20%3D%20document.getElementsByTagName%28%27pre%27%29%5B0%5D%3B%0D%0A%20%20%20pre.firstChild.data%20%3D%20document.activeElement.tagName%3B%0D%0A%20%7D%2C%20100%29%3B%0D%0A%3C/script%3E

I haven't made the spec let positioned <div> and <span> elements get 
focused in this way, because whether an element is positioned or not 
should have no bearing on the semantics of the document.


> * it keeps pointing to the same element until another interaction with 
> the document sets it again (important)

That's already in the spec.

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

Received on Monday, 4 June 2007 21:15:34 UTC