---
title: "PDF form fields supported in JavaScript library | Nutrient"
canonical_url: "https://www.nutrient.io/guides/web/forms/introduction-to-forms/"
md_url: "https://www.nutrient.io/guides/web/forms/introduction-to-forms.md"
last_updated: "2026-05-22T20:57:56.646Z"
description: "Learn to create and manage form fields, including digital signatures, in Nutrient Web. Explore our guides on form creation and signature requirements."
---

# Supported PDF form fields

Nutrient supports most form types defined by the PDF specification. We have to differentiate between field objects and annotation objects.

[Try for free](https://www.nutrient.io/sdk/web/getting-started.md)

[Launch demo](https://www.nutrient.io/demo/pdf-form-fill)

| Type          | Field object               | Annotation object      |
| ------------- | -------------------------- | ---------------------- |
| Checkboxes    | [`CheckBoxFormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.CheckBoxFormField.html)    | [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html) |
| Radio buttons | [`RadioButtonFormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.RadioButtonFormField.html) | [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html) |
| Push buttons  | [`ButtonFormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.ButtonFormField.html)      | [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html) |
| List boxes    | [`ListBoxFormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.ListBoxFormField.html)     | [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html) |
| Combo boxes   | [`ComboBoxFormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.ComboBoxFormField.html)    | [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html) |
| Text          | [`TextFormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.TextFormField.html)        | [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html) |
| Signatures    | [`SignatureFormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.SignatureFormField.html)   | [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html) |

Field objects have no visual representation of their own and are represented by [`FormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.FormField.html), while annotation objects are visual representations of a single control inside a form field and are represented by [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html).

To render a [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html), the associated [`FormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.FormField.html) will be accessed via the [`WidgetAnnotation#formFieldName`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html#formFieldName) property. Based on the type of this [`FormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.FormField.html), different form controls are rendered.

We currently render generic elements for every form field type. Rendering the custom appearance stream for form fields is planned for a future release.













We also allow creating a [`FormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.FormField.html) and a [`WidgetAnnotation`](https://www.nutrient.io/api/web/NutrientViewer.Annotations.WidgetAnnotation.html) directly from a loaded instance, and this is described in the [form creation](https://www.nutrient.io/guides/web/forms/form-creation.md) guide. You can also modify the values of these form fields using the UI or a [programmable form-filling API](https://www.nutrient.io/guides/web/forms/form-filling.md).

Digital Signatures are a special case: A digitally signed [`SignatureFormField`](https://www.nutrient.io/api/web/NutrientViewer.FormFields.SignatureFormField.html) can’t be directly created by instantiating it. Please refer to the [Digital Signatures on PSPDFKit for Web](https://www.nutrient.io/guides/web/signatures/digital-signatures/signature-lifecycle/sign-a-pdf-document.md) guide for more information.

Signature form fields and signature form elements require that your license includes either [Electronic&nbsp;Signatures or Digital&nbsp;Signatures](https://www.nutrient.io/guides/web/signatures/overview.md), or that your license was originally obtained in April 2021 or earlier. If none of these requirements are met, then other form elements will be shown, while signature elements will be omitted.
---

## Related pages

- [PDF form elements and data formats](/guides/web/forms/introduction-to-forms/data-formats.md)
- [Understanding the benefits of PDF forms](/guides/web/forms/introduction-to-forms/what-are-forms.md)

