diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs
index 0eaf4586488..7c2ff444fbe 100644
--- a/components/script/dom/htmlbuttonelement.rs
+++ b/components/script/dom/htmlbuttonelement.rs
@@ -88,6 +88,23 @@ impl<'a> HTMLButtonElementMethods for JSRef<'a, HTMLButtonElement> {
// https://html.spec.whatwg.org/multipage/forms.html#dom-button-type
make_setter!(SetType, "type");
+
+ // https://html.spec.whatwg.org/multipage/forms.html#htmlbuttonelement
+ make_url_or_base_getter!(FormAction);
+
+ make_setter!(SetFormAction, "formaction");
+
+ make_enumerated_getter!(FormEnctype, "application/x-www-form-urlencoded", ("text/plain") | ("multipart/form-data"));
+
+ make_setter!(SetFormEnctype, "formenctype");
+
+ make_enumerated_getter!(FormMethod, "get", ("post") | ("dialog"));
+
+ make_setter!(SetFormMethod, "formmethod");
+
+ make_getter!(FormTarget);
+
+ make_setter!(SetFormTarget, "formtarget");
}
impl<'a> VirtualMethods for JSRef<'a, HTMLButtonElement> {
diff --git a/components/script/dom/webidls/HTMLButtonElement.webidl b/components/script/dom/webidls/HTMLButtonElement.webidl
index 622abbd1cf5..a04b9dd6737 100644
--- a/components/script/dom/webidls/HTMLButtonElement.webidl
+++ b/components/script/dom/webidls/HTMLButtonElement.webidl
@@ -8,11 +8,11 @@ interface HTMLButtonElement : HTMLElement {
// attribute boolean autofocus;
attribute boolean disabled;
//readonly attribute HTMLFormElement? form;
- // attribute DOMString formAction;
- // attribute DOMString formEnctype;
- // attribute DOMString formMethod;
+ attribute DOMString formAction;
+ attribute DOMString formEnctype;
+ attribute DOMString formMethod;
// attribute boolean formNoValidate;
- // attribute DOMString formTarget;
+ attribute DOMString formTarget;
// attribute DOMString name;
attribute DOMString type;
// attribute DOMString value;