diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs
index ca22d1f92b3..355e23f6c59 100644
--- a/components/script/dom/htmltableelement.rs
+++ b/components/script/dom/htmltableelement.rs
@@ -115,6 +115,12 @@ impl HTMLTableElementMethods for HTMLTableElement {
// https://html.spec.whatwg.org/multipage/#dom-table-bgcolor
make_setter!(SetBgColor, "bgcolor");
+
+ // https://html.spec.whatwg.org/multipage/#dom-table-width
+ make_getter!(Width);
+
+ // https://html.spec.whatwg.org/multipage/#dom-table-width
+ make_dimension_setter!(SetWidth, "width");
}
pub trait HTMLTableElementLayoutHelpers {
diff --git a/components/script/dom/webidls/HTMLTableElement.webidl b/components/script/dom/webidls/HTMLTableElement.webidl
index cb405fdf8aa..edf8d1d720f 100644
--- a/components/script/dom/webidls/HTMLTableElement.webidl
+++ b/components/script/dom/webidls/HTMLTableElement.webidl
@@ -32,7 +32,7 @@ partial interface HTMLTableElement {
// attribute DOMString frame;
// attribute DOMString rules;
// attribute DOMString summary;
- // attribute DOMString width;
+ attribute DOMString width;
[TreatNullAs=EmptyString] attribute DOMString bgColor;
//[TreatNullAs=EmptyString] attribute DOMString cellPadding;
diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini
index 2d529c28d0c..624c628e27e 100644
--- a/tests/wpt/metadata/html/dom/interfaces.html.ini
+++ b/tests/wpt/metadata/html/dom/interfaces.html.ini
@@ -4458,9 +4458,6 @@
[HTMLTableElement interface: attribute summary]
expected: FAIL
- [HTMLTableElement interface: attribute width]
- expected: FAIL
-
[HTMLTableElement interface: attribute cellPadding]
expected: FAIL
@@ -4524,9 +4521,6 @@
[HTMLTableElement interface: document.createElement("table") must inherit property "summary" with the proper type (20)]
expected: FAIL
- [HTMLTableElement interface: document.createElement("table") must inherit property "width" with the proper type (21)]
- expected: FAIL
-
[HTMLTableElement interface: document.createElement("table") must inherit property "cellPadding" with the proper type (23)]
expected: FAIL
diff --git a/tests/wpt/metadata/html/dom/reflection-tabular.html.ini b/tests/wpt/metadata/html/dom/reflection-tabular.html.ini
index 969134a9c08..162619b69df 100644
--- a/tests/wpt/metadata/html/dom/reflection-tabular.html.ini
+++ b/tests/wpt/metadata/html/dom/reflection-tabular.html.ini
@@ -1212,135 +1212,6 @@
[table.summary: IDL set to object "test-valueOf" followed by IDL get]
expected: FAIL
- [table.width: typeof IDL attribute]
- expected: FAIL
-
- [table.width: IDL get with DOM attribute unset]
- expected: FAIL
-
- [table.width: setAttribute() to "" followed by IDL get]
- expected: FAIL
-
- [table.width: 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 " followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to undefined followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to 7 followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to 1.5 followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to true followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to false followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to object "[object Object\]" followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to NaN followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to Infinity followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to -Infinity followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to "\\0" followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to null followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to object "test-toString" followed by IDL get]
- expected: FAIL
-
- [table.width: setAttribute() to object "test-valueOf" followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to "" followed by getAttribute()]
- expected: FAIL
-
- [table.width: 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 " followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to undefined followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to undefined followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to 7 followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to 7 followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to 1.5 followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to 1.5 followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to true followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to true followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to false followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to false followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to object "[object Object\]" followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to object "[object Object\]" followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to NaN followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to NaN followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to Infinity followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to Infinity followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to -Infinity followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to -Infinity followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to "\\0" followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to null followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to null followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to object "test-toString" followed by getAttribute()]
- expected: FAIL
-
- [table.width: IDL set to object "test-toString" followed by IDL get]
- expected: FAIL
-
- [table.width: IDL set to object "test-valueOf" followed by IDL get]
- expected: FAIL
-
[table.cellPadding: typeof IDL attribute]
expected: FAIL