diff --git a/components/script/dom/htmlulistelement.rs b/components/script/dom/htmlulistelement.rs
index faa1eb97d59..b1e39d90f47 100644
--- a/components/script/dom/htmlulistelement.rs
+++ b/components/script/dom/htmlulistelement.rs
@@ -6,7 +6,9 @@ use dom_struct::dom_struct;
use html5ever::{LocalName, Prefix};
use js::rust::HandleObject;
+use crate::dom::bindings::codegen::Bindings::HTMLUListElementBinding::HTMLUListElementMethods;
use crate::dom::bindings::root::DomRoot;
+use crate::dom::bindings::str::DOMString;
use crate::dom::document::Document;
use crate::dom::htmlelement::HTMLElement;
use crate::dom::node::Node;
@@ -43,3 +45,17 @@ impl HTMLUListElement {
)
}
}
+
+impl HTMLUListElementMethods for HTMLUListElement {
+ // https://html.spec.whatwg.org/multipage/#dom-ul-compact
+ make_bool_getter!(Compact, "compact");
+
+ // https://html.spec.whatwg.org/multipage/#dom-ul-compact
+ make_bool_setter!(SetCompact, "compact");
+
+ // https://html.spec.whatwg.org/multipage/#dom-ul-type
+ make_getter!(Type, "type");
+
+ // https://html.spec.whatwg.org/multipage/#dom-ul-type
+ make_setter!(SetType, "type");
+}
diff --git a/components/script/dom/webidls/HTMLUListElement.webidl b/components/script/dom/webidls/HTMLUListElement.webidl
index 479e46961c9..ac5f172a010 100644
--- a/components/script/dom/webidls/HTMLUListElement.webidl
+++ b/components/script/dom/webidls/HTMLUListElement.webidl
@@ -12,8 +12,8 @@ interface HTMLUListElement : HTMLElement {
// https://html.spec.whatwg.org/multipage/#HTMLUListElement-partial
partial interface HTMLUListElement {
- // [CEReactions]
- // attribute boolean compact;
- // [CEReactions]
- // attribute DOMString type;
+ [CEReactions]
+ attribute boolean compact;
+ [CEReactions]
+ attribute DOMString type;
};
diff --git a/tests/wpt/meta/html/dom/idlharness.https.html.ini b/tests/wpt/meta/html/dom/idlharness.https.html.ini
index 40c6c1f9f83..a34d014991c 100644
--- a/tests/wpt/meta/html/dom/idlharness.https.html.ini
+++ b/tests/wpt/meta/html/dom/idlharness.https.html.ini
@@ -3126,9 +3126,6 @@
[HTMLTableElement interface: attribute summary]
expected: FAIL
- [HTMLUListElement interface: attribute type]
- expected: FAIL
-
[HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "bgColor" with the proper type]
expected: FAIL
@@ -3345,9 +3342,6 @@
[HTMLTableCellElement interface: document.createElement("th") must inherit property "chOff" with the proper type]
expected: FAIL
- [HTMLUListElement interface: attribute compact]
- expected: FAIL
-
[HTMLOListElement interface: attribute compact]
expected: FAIL
diff --git a/tests/wpt/meta/html/dom/reflection-grouping.html.ini b/tests/wpt/meta/html/dom/reflection-grouping.html.ini
index c55e9520cbe..9cfdba0633f 100644
--- a/tests/wpt/meta/html/dom/reflection-grouping.html.ini
+++ b/tests/wpt/meta/html/dom/reflection-grouping.html.ini
@@ -2168,234 +2168,6 @@
[ul.tabIndex: IDL set to -2147483648]
expected: FAIL
- [ul.compact: typeof IDL attribute]
- expected: FAIL
-
- [ul.compact: IDL get with DOM attribute unset]
- expected: FAIL
-
- [ul.compact: setAttribute() to ""]
- expected: FAIL
-
- [ul.compact: setAttribute() to " foo "]
- expected: FAIL
-
- [ul.compact: setAttribute() to undefined]
- expected: FAIL
-
- [ul.compact: setAttribute() to null]
- expected: FAIL
-
- [ul.compact: setAttribute() to 7]
- expected: FAIL
-
- [ul.compact: setAttribute() to 1.5]
- expected: FAIL
-
- [ul.compact: setAttribute() to "5%"]
- expected: FAIL
-
- [ul.compact: setAttribute() to "+100"]
- expected: FAIL
-
- [ul.compact: setAttribute() to ".5"]
- expected: FAIL
-
- [ul.compact: setAttribute() to true]
- expected: FAIL
-
- [ul.compact: setAttribute() to false]
- expected: FAIL
-
- [ul.compact: setAttribute() to object "[object Object\]"]
- expected: FAIL
-
- [ul.compact: setAttribute() to NaN]
- expected: FAIL
-
- [ul.compact: setAttribute() to Infinity]
- expected: FAIL
-
- [ul.compact: setAttribute() to -Infinity]
- expected: FAIL
-
- [ul.compact: setAttribute() to "\\0"]
- expected: FAIL
-
- [ul.compact: setAttribute() to object "test-toString"]
- expected: FAIL
-
- [ul.compact: setAttribute() to object "test-valueOf"]
- expected: FAIL
-
- [ul.compact: setAttribute() to "compact"]
- expected: FAIL
-
- [ul.compact: IDL set to ""]
- expected: FAIL
-
- [ul.compact: IDL set to " foo "]
- expected: FAIL
-
- [ul.compact: IDL set to undefined]
- expected: FAIL
-
- [ul.compact: IDL set to null]
- expected: FAIL
-
- [ul.compact: IDL set to 7]
- expected: FAIL
-
- [ul.compact: IDL set to 1.5]
- expected: FAIL
-
- [ul.compact: IDL set to "5%"]
- expected: FAIL
-
- [ul.compact: IDL set to "+100"]
- expected: FAIL
-
- [ul.compact: IDL set to ".5"]
- expected: FAIL
-
- [ul.compact: IDL set to false]
- expected: FAIL
-
- [ul.compact: IDL set to object "[object Object\]"]
- expected: FAIL
-
- [ul.compact: IDL set to NaN]
- expected: FAIL
-
- [ul.compact: IDL set to Infinity]
- expected: FAIL
-
- [ul.compact: IDL set to -Infinity]
- expected: FAIL
-
- [ul.compact: IDL set to "\\0"]
- expected: FAIL
-
- [ul.compact: IDL set to object "test-toString"]
- expected: FAIL
-
- [ul.compact: IDL set to object "test-valueOf"]
- expected: FAIL
-
- [ul.type: typeof IDL attribute]
- expected: FAIL
-
- [ul.type: IDL get with DOM attribute unset]
- expected: FAIL
-
- [ul.type: setAttribute() to ""]
- expected: FAIL
-
- [ul.type: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "]
- expected: FAIL
-
- [ul.type: setAttribute() to undefined]
- expected: FAIL
-
- [ul.type: setAttribute() to 7]
- expected: FAIL
-
- [ul.type: setAttribute() to 1.5]
- expected: FAIL
-
- [ul.type: setAttribute() to "5%"]
- expected: FAIL
-
- [ul.type: setAttribute() to "+100"]
- expected: FAIL
-
- [ul.type: setAttribute() to ".5"]
- expected: FAIL
-
- [ul.type: setAttribute() to true]
- expected: FAIL
-
- [ul.type: setAttribute() to false]
- expected: FAIL
-
- [ul.type: setAttribute() to object "[object Object\]"]
- expected: FAIL
-
- [ul.type: setAttribute() to NaN]
- expected: FAIL
-
- [ul.type: setAttribute() to Infinity]
- expected: FAIL
-
- [ul.type: setAttribute() to -Infinity]
- expected: FAIL
-
- [ul.type: setAttribute() to "\\0"]
- expected: FAIL
-
- [ul.type: setAttribute() to null]
- expected: FAIL
-
- [ul.type: setAttribute() to object "test-toString"]
- expected: FAIL
-
- [ul.type: setAttribute() to object "test-valueOf"]
- expected: FAIL
-
- [ul.type: IDL set to ""]
- expected: FAIL
-
- [ul.type: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "]
- expected: FAIL
-
- [ul.type: IDL set to undefined]
- expected: FAIL
-
- [ul.type: IDL set to 7]
- expected: FAIL
-
- [ul.type: IDL set to 1.5]
- expected: FAIL
-
- [ul.type: IDL set to "5%"]
- expected: FAIL
-
- [ul.type: IDL set to "+100"]
- expected: FAIL
-
- [ul.type: IDL set to ".5"]
- expected: FAIL
-
- [ul.type: IDL set to true]
- expected: FAIL
-
- [ul.type: IDL set to false]
- expected: FAIL
-
- [ul.type: IDL set to object "[object Object\]"]
- expected: FAIL
-
- [ul.type: IDL set to NaN]
- expected: FAIL
-
- [ul.type: IDL set to Infinity]
- expected: FAIL
-
- [ul.type: IDL set to -Infinity]
- expected: FAIL
-
- [ul.type: IDL set to "\\0"]
- expected: FAIL
-
- [ul.type: IDL set to null]
- expected: FAIL
-
- [ul.type: IDL set to object "test-toString"]
- expected: FAIL
-
- [ul.type: IDL set to object "test-valueOf"]
- expected: FAIL
-
[li.accessKey: typeof IDL attribute]
expected: FAIL