Living Standard — Last Updated 6 February 2025
interesttarget
attribute
The
interesttarget
attribute
on
a
,
area
,
and
button
elements
TODO.
If
specified,
the
interesttarget
attribute
value
must
be
the
ID
of
an
element
in
the
same
tree
as
the
element
with
the
interesttarget
attribute.
interface mixin InterestInvokerElement {
[CEReactions] attribute Element? interestTargetElement;
};
The
interestTargetElement
IDL
attribute
must
reflect
the
interesttarget
attribute.
The
following
demonstrates
how
one
might
show
a
tooltip
for
a
button
using
the
interesttarget
attribute
to
associate
the
button
with
a
div
popover
representing
the
tooltip.
<button interesttarget=tooltip>
Click me
</button>
<div popover=hint id=tooltip>
I will appear
</div>
Every HTML element has a has interest , which is a boolean, initially set to false.
InterestEvent
interface
[Exposed=Window]
interface InterestEvent : Event {
constructor(DOMString type, optional InterestEventInit eventInitDict = {});
readonly attribute Element? source; // TODO: nullable, or require in ctor?
};
dictionary InterestEventInit : EventInit {
Element? source = null;
};
event
.
source
Set to an interesting element TODO.
The
source
attribute
must
return
the
value
it
was
initialized
to.
To capture interest , given an HTML element invoker :
Assert:
invoker
has
the
interesttarget
attribute
specified.
Let
target
be
the
result
of
running
node
's
get
the
interesttarget
-associated
element
.
If target is null, then return.
Let
continue
be
the
result
of
firing
an
event
named
interest
at
target
,
using
InterestEvent
,
with
the
cancelable
and
composed
attributes
initialized
to
true,
and
the
source
attribute
initialized
to
invoker
.
If continue is false, then return.
Set invoker 's has interest to true.
If
target
's
popover
attribute
is
not
in
the
no
popover
state
,
then
run
show
popover
given
target
,
false,
and
invoker
.
To lose interest , given an HTML element invoker :
Note:
invoker
may
no
longer
have
the
interesttarget
attribute
specified.
Let
target
be
the
result
of
running
node
's
get
the
interesttarget
-associated
element
.
If target is null, then return.
Let
continue
be
the
result
of
firing
an
event
named
loseinterest
at
target
,
using
InterestEvent
,
with
the
cancelable
and
composed
attributes
initialized
to
true,
and
the
source
attribute
initialized
to
invoker
.
If continue is false, then return.
If
target
's
popover
attribute
is
not
in
the
no
popover
state
,
then
hide
popover
given
invoker
,
false,
true,
and
false.
Set invoker 's has interest to false.
TODO / questions:
Actually invoke the capture/lose algorithms.
Which algorithm reads the computed style for interest-target-delay?
Handle removal of the interesttarget attribute, or the element that has it.
Handle changes of the interesttarget attribute while an element has interest.
Handle changes to the ID attribute referenced by an interesttarget attribute.