Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Note: This page describes the Keygen Element interface as specified, not as currently implemented by Gecko. See bug 101019 for details and status.

The <keygen> elements expose the HTMLKeygenElement interface, which provides special properties and methods (beyond the regular element object interface they also have available to them by inheritance) for manipulating the layout and presentation of keygen elements.



A boolean value that reflects the autofocus HTML attribute, indicating that the form control should have input focus when the page loads.


A string that reflects the challenge HTML attribute, containing a challenge string that is packaged with the submitted key.

form Read only

A HTMLFormElement that indicates the control's form owner, reflecting the form HTML attribute if it is defined.


A string that reflects the keytype HTML attribute, containing the type of key used.

labels Read only Unimplemented (see bug 556743)

A NodeList that represents a list of label elements associated with this keygen element.


A string that reflects the name HTML attribute, containing the name for the control that is submitted with form data.

type Read only

A string that must be the value keygen.

validationMessage Read only

A string representing a localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (willValidate is false), or it satisfies its constraints.

validity Read only

A ValidityState object representing the validity states that this element is in.


A boolean value that is always false because keygen objects are never candidates for constraint validation.



Always returns the boolean value true because HTMLKeygenElement objects are never candidates for constraint validation.


Takes a string as parameter and sets it as the custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.


No specification found

No specification data found for api.HTMLKeygenElement.
Check for problems with this page or contribute a missing spec_url to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser compatibility

BCD tables only load in the browser