diff --git a/html/semantics/the-button-element/interest-target/interestelement-interface.tentative.html b/html/semantics/the-button-element/interest-target/interestelement-interface.tentative.html
index 8b1e37569559a4..bc68dc54577f44 100644
--- a/html/semantics/the-button-element/interest-target/interestelement-interface.tentative.html
+++ b/html/semantics/the-button-element/interest-target/interestelement-interface.tentative.html
@@ -84,82 +84,4 @@
"interestTargetElement attribute value must be an instance of Element",
);
}, "interestTargetElement throws error on assignment of non Element");
-
- test(function () {
- assert_false(buttonInvoker.hasAttribute("interestaction"));
- assert_equals(buttonInvoker.interestAction, "");
- assert_false(aInvoker.hasAttribute("interestaction"));
- assert_equals(aInvoker.interestAction, "");
- assert_false(inputInvoker.hasAttribute("interestaction"));
- assert_equals(inputInvoker.interestAction, "");
- }, "interestAction reflects '' when attribute not present");
-
- test(function () {
- buttonInvoker.setAttribute("interestaction", "");
- assert_equals(buttonInvoker.getAttribute("interestaction"), "");
- assert_equals(buttonInvoker.interestAction, "");
- aInvoker.setAttribute("interestaction", "");
- assert_equals(aInvoker.getAttribute("interestaction"), "");
- assert_equals(aInvoker.interestAction, "");
- inputInvoker.setAttribute("interestaction", "");
- assert_equals(inputInvoker.getAttribute("interestaction"), "");
- assert_equals(inputInvoker.interestAction, "");
- }, "interestAction reflects '' when attribute empty, setAttribute version");
-
- test(function () {
- buttonInvoker.interestAction = "";
- assert_equals(buttonInvoker.getAttribute("interestaction"), "");
- assert_equals(buttonInvoker.interestAction, "");
- aInvoker.interestAction = "";
- assert_equals(aInvoker.getAttribute("interestaction"), "");
- assert_equals(aInvoker.interestAction, "");
- inputInvoker.interestAction = "";
- assert_equals(inputInvoker.getAttribute("interestaction"), "");
- assert_equals(inputInvoker.interestAction, "");
- }, "interestAction reflects '' when attribute empty, IDL setter version");
-
- test(function () {
- buttonInvoker.interestAction = "fooBarBaz";
- assert_equals(buttonInvoker.getAttribute("interestaction"), "fooBarBaz");
- assert_equals(buttonInvoker.interestAction, "fooBarBaz");
- aInvoker.interestAction = "fooBarBaz";
- assert_equals(aInvoker.getAttribute("interestaction"), "fooBarBaz");
- assert_equals(aInvoker.interestAction, "fooBarBaz");
- inputInvoker.interestAction = "fooBarBaz";
- assert_equals(inputInvoker.getAttribute("interestaction"), "fooBarBaz");
- assert_equals(inputInvoker.interestAction, "fooBarBaz");
- }, "interestAction reflects same casing");
-
- test(function () {
- buttonInvoker.interestAction = [];
- assert_equals(buttonInvoker.getAttribute("interestaction"), "");
- assert_equals(buttonInvoker.interestAction, "");
- aInvoker.interestAction = [];
- assert_equals(aInvoker.getAttribute("interestaction"), "");
- assert_equals(aInvoker.interestAction, "");
- inputInvoker.interestAction = [];
- assert_equals(inputInvoker.getAttribute("interestaction"), "");
- assert_equals(inputInvoker.interestAction, "");
- }, "interestAction reflects '' when attribute set to []");
-
- test(function () {
- buttonInvoker.interestAction = [1, 2, 3];
- assert_equals(buttonInvoker.getAttribute("interestaction"), "1,2,3");
- assert_equals(buttonInvoker.interestAction, "1,2,3");
- aInvoker.interestAction = [1, 2, 3];
- assert_equals(aInvoker.getAttribute("interestaction"), "1,2,3");
- assert_equals(aInvoker.interestAction, "1,2,3");
- inputInvoker.interestAction = [1, 2, 3];
- assert_equals(inputInvoker.getAttribute("interestaction"), "1,2,3");
- assert_equals(inputInvoker.interestAction, "1,2,3");
- }, "interestAction reflects tostring value");
-
- test(function () {
- buttonInvoker.interestAction = {};
- assert_equals(buttonInvoker.interestAction, "[object Object]");
- aInvoker.interestAction = {};
- assert_equals(aInvoker.interestAction, "[object Object]");
- inputInvoker.interestAction = {};
- assert_equals(inputInvoker.interestAction, "[object Object]");
- }, "interestAction reflects tostring value 2");
diff --git a/html/semantics/the-button-element/interest-target/interestevent-dispatch-shadow.tentative.html b/html/semantics/the-button-element/interest-target/interestevent-dispatch-shadow.tentative.html
index d96907ec84a439..9911357e94dd40 100644
--- a/html/semantics/the-button-element/interest-target/interestevent-dispatch-shadow.tentative.html
+++ b/html/semantics/the-button-element/interest-target/interestevent-dispatch-shadow.tentative.html
@@ -1,8 +1,11 @@
-
+
-
+
@@ -20,63 +23,35 @@
const slot = shadow.appendChild(document.createElement("slot"));
let childEvent = null;
let childEventTarget = null;
- let childEventInvoker = null;
+ let childEventSource = null;
let hostEvent = null;
let hostEventTarget = null;
- let hostEventInvoker = null;
- slot.addEventListener(
- "interest",
- (e) => {
+ let hostEventSource = null;
+ slot.addEventListener("interest", (e) => {
childEvent = e;
childEventTarget = e.target;
- childEventInvoker = e.invoker;
- },
- { once: true },
- );
- host.addEventListener(
- "interest",
- (e) => {
+ childEventSource = e.source;
+ }, { once: true });
+ host.addEventListener("interest", (e) => {
hostEvent = e;
hostEventTarget = e.target;
- hostEventInvoker = e.invoker;
- },
- { once: true },
- );
+ hostEventSource = e.source;
+ }, { once: true });
const event = new InterestEvent("interest", {
bubbles: true,
- invoker: slot,
+ source: slot,
composed: true,
});
slot.dispatchEvent(event);
assert_true(childEvent instanceof InterestEvent, "slot saw interest event");
- assert_equals(
- childEventTarget,
- slot,
- "target is child inside shadow boundary",
- );
- assert_equals(
- childEventInvoker,
- slot,
- "invoker is child inside shadow boundary",
- );
- assert_equals(
- hostEvent,
- childEvent,
- "event dispatch propagates across shadow boundary",
- );
- assert_equals(
- hostEventTarget,
- host,
- "target is retargeted to shadowroot host",
- );
- assert_equals(
- hostEventInvoker,
- host,
- "invoker is retargeted to shadowroot host",
- );
- }, "InterestEvent propagates across shadow boundaries retargeting invoker");
+ assert_equals(childEventTarget, slot, "target is child inside shadow boundary");
+ assert_equals(childEventSource, slot, "source is child inside shadow boundary");
+ assert_equals(hostEvent, childEvent, "event dispatch propagates across shadow boundary");
+ assert_equals(hostEventTarget, host, "target is retargeted to shadowroot host");
+ assert_equals(hostEventSource, host, "source is retargeted to shadowroot host");
+ }, "InterestEvent propagates across shadow boundaries retargeting invoker source");
- test(function (t) {
+ promise_test(async (t) => {
const host = document.createElement("div");
document.body.append(host);
t.add_cleanup(() => host.remove());
@@ -86,19 +61,16 @@
button.interestTargetElement = interestee;
let event = null;
let eventTarget = null;
- let eventInvoker = null;
- interestee.addEventListener(
- "interest",
- (e) => {
+ let eventSource = null;
+ interestee.addEventListener("interest", (e) => {
event = e;
eventTarget = e.target;
- eventInvoker = e.invoker;
- },
- { once: true },
- );
- button.focus();
+ eventSource = e.source;
+ },{ once: true });
+ await hoverOver(button);
+ assert_true(!!event,"InterestEvent gets fired");
assert_true(event instanceof InterestEvent);
assert_equals(eventTarget, interestee, "target is interestee");
- assert_equals(eventInvoker, host, "interestee is host");
+ assert_equals(eventSource, host, "interestee is host");
}, "cross shadow InterestEvent retargets interestee to host element");
diff --git a/html/semantics/the-button-element/interest-target/interestevent-interface.tentative.html b/html/semantics/the-button-element/interest-target/interestevent-interface.tentative.html
index ed7d82f1fb7df8..9ed95a6a028983 100644
--- a/html/semantics/the-button-element/interest-target/interestevent-interface.tentative.html
+++ b/html/semantics/the-button-element/interest-target/interestevent-interface.tentative.html
@@ -16,152 +16,80 @@
diff --git a/html/semantics/the-button-element/interest-target/interesttarget-anchor-event-dispatch.tentative.html b/html/semantics/the-button-element/interest-target/interesttarget-anchor-event-dispatch.tentative.html
index b5a481ae08fc93..88a54c21f83bb1 100644
--- a/html/semantics/the-button-element/interest-target/interesttarget-anchor-event-dispatch.tentative.html
+++ b/html/semantics/the-button-element/interest-target/interesttarget-anchor-event-dispatch.tentative.html
@@ -15,33 +15,18 @@
diff --git a/html/semantics/the-button-element/interest-target/interesttarget-area-event-dispatch.tentative.html b/html/semantics/the-button-element/interest-target/interesttarget-area-event-dispatch.tentative.html
index 358acbb73ac3d6..5573235082617a 100644
--- a/html/semantics/the-button-element/interest-target/interesttarget-area-event-dispatch.tentative.html
+++ b/html/semantics/the-button-element/interest-target/interesttarget-area-event-dispatch.tentative.html
@@ -18,33 +18,18 @@
diff --git a/html/semantics/the-button-element/interest-target/interesttarget-button-event-dispatch.tentative.html b/html/semantics/the-button-element/interest-target/interesttarget-button-event-dispatch.tentative.html
index 69126dbe14b01c..a9d68bb03fdd54 100644
--- a/html/semantics/the-button-element/interest-target/interesttarget-button-event-dispatch.tentative.html
+++ b/html/semantics/the-button-element/interest-target/interesttarget-button-event-dispatch.tentative.html
@@ -16,71 +16,23 @@
diff --git a/html/semantics/the-button-element/interest-target/interesttarget-on-popover-behavior.tentative.html b/html/semantics/the-button-element/interest-target/interesttarget-on-popover-behavior.tentative.html
index fd0a77b9359317..cbb5e4014eed14 100644
--- a/html/semantics/the-button-element/interest-target/interesttarget-on-popover-behavior.tentative.html
+++ b/html/semantics/the-button-element/interest-target/interesttarget-on-popover-behavior.tentative.html
@@ -17,44 +17,17 @@
diff --git a/html/semantics/the-button-element/interest-target/interesttarget-svg-a-event-dispatch.tentative.html b/html/semantics/the-button-element/interest-target/interesttarget-svg-a-event-dispatch.tentative.html
index 7fb4b1c19d6819..8208c8d56af9dd 100644
--- a/html/semantics/the-button-element/interest-target/interesttarget-svg-a-event-dispatch.tentative.html
+++ b/html/semantics/the-button-element/interest-target/interesttarget-svg-a-event-dispatch.tentative.html
@@ -20,32 +20,19 @@