diff --git a/source b/source index 213f90acbef..125519389c4 100644 --- a/source +++ b/source @@ -21762,6 +21762,7 @@ interface HTMLDivElement : HTMLElement {
hreflang
type
referrerpolicy
interesttarget
href
attribute: HTMLAnchorElement : HTMLElement {
// also has obsolete members
};
-HTMLAnchorElement includes HTMLHyperlinkElementUtils;
+HTMLAnchorElement includes HTMLHyperlinkElementUtils;
+HTMLAnchorElement includes InterestInvokerElement;
HTMLAnchorElement
.ping
rel
referrerpolicy
interesttarget
href
attribute: HTMLAreaElement : HTMLElement {
// also has obsolete members
};
-HTMLAreaElement includes HTMLHyperlinkElementUtils;
+HTMLAreaElement includes HTMLHyperlinkElementUtils;
+HTMLAreaElement includes InterestInvokerElement;
HTMLAreaElement
.name
popovertarget
popovertargetaction
interesttarget
type
value
HTMLButtonElement
.:has-interest
The :has-interest
pseudo-class is
+ defined to match any HTML element whose has
+ interest is true.
:hover
The :hover
pseudo-class is defined to
@@ -87118,6 +87131,159 @@ dictionary DragEventInit : MouseEventInit {
+
interesttarget
attributeThe 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 is an a
, area
, or button
+ element.
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:
+ +Assert: invoker is an a
, area
, or button
+ element.
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.
script
interesttarget
+ a
;
+ area
;
+ button
+ is
contenteditable
element's content, or the form control's value. See also the change
event for form controls.
+ interest
+ InterestEvent
+ interesttarget
TODO.
+
invalid
Event
@@ -145079,6 +145258,12 @@ INSERT INTERFACES HERE
Window
, elements
Window
when the document has finished loading; fired at an element containing a resource (e.g. img
, embed
) when its resource has finished loading
+ loseinterest
+ InterestEvent
+ interesttarget
TODO.
+
message
MessageEvent