release notes

SurveyJS v2.1.0

Released: May 27, 2025

SurveyJS v2.1.0 enhances the Form Library's accessibility up to 100%, adds the ability to populate existing PDF forms with survey responses, and introduces a breaking change: survey element titles no longer use HTML heading tags.

Form Library Accessibility Reaches 100%

Over the past several releases, the SurveyJS team has worked hard to enhance the accessibility of our components and ensure full compliance with modern standards, including WCAG, Section 508, and ARIA. We're proud to announce that as of v2.1.0, SurveyJS Form Library is 100% accessible when using the Contrast theme.

Accessibility compliance has been verified using the Axe® testing system. You can confirm this on our website—each Form Library demo now includes an Accessibility Compliance section where you can run Axe® validation yourself.

SurveyJS: Accessibility Compliance section

Our default theme currently has a minor issue related to color contrast. We are actively working to resolve it and ensure that all SurveyJS themes achieve full accessibility compliance.

Populate Existing PDF Forms with Survey Responses

PDF forms often include interactive fields that allow users to fill out the form within their PDF viewer and then save, share, or print it. Starting with v2.1.0, SurveyJS introduces a plugin that enables you to link survey fields to editable fields within a PDF form. Users can enter data through a dynamic SurveyJS interface, and their responses will automatically populate the corresponding fields in the PDF document. This feature streamlines data entry and eliminates the need to fill out PDF forms manually. For more details, see the following demos:

Fill In PDF Form Fields Using pdf-lib

Fill In PDF Form Fields Using PDF.js

[Breaking Change] Survey element titles no longer use HTML heading tags

In previous versions, titles for questions, panels, pages, and the survey itself were rendered using HTML heading tags (<h1>-<h6>). This helped search engines to understand the hierarchy of the survey content. However, it also introduced accessibility issues when heading levels were skipped—for example, <h1> followed directly by <h3>—which violates HTML standards.

Although a SurveyJS form can maintain consistent heading levels within its own structure, it has no control over the broader context of the page it's embedded in. To prevent accessibility violations and ensure consistent HTML semantics across all environments, survey element titles are now rendered using <div> elements by default.

If you want to revert to heading tags or use other HTML elements for titles, configure the titleTags property in global survey settings. The following code restores the previous default value for this property:

import { settings } from "survey-core";

settings.titleTags = {
  survey: "h3",
  page: "h4",
  panel: "h4",
  question: "h5"
}

Bug Fixes and Minor Enhancements

Form Library

  • [Safari on iOS] Input mask: It's impossible to enter certain dates when the mask pattern is yyyy-mm-dd (#9924)
  • Switching to the next page in code works incorrectly in question-per-page mode if a time limit is set (#9917)
  • Localization: Incorrect locale code is used for the Ukrainian language (#9908)
  • [Mobile] Composite question: Matrices are rendered incorrectly (#9927)
  • Composite question: The "Other" value is empty for a Checkboxes question if the storeOthersAsComment property is enabled by default (#9929)
  • setValueExpression isn't triggered for the Matrices and Dynamic Panels that aren't rendered yet (#9942)
  • [Survey Creator] A matrix column remains required after unselecting the Required checkbox if the isRequired property's default value is overridden for the Question class (#9920)

Survey Creator

  • visibleIf expression is not updated for matrix rows and columns when a source question's name is changed (#6910)

How to Update SurveyJS Libraries in Your Application

Angular
npm i survey-core@2.1.0 survey-angular-ui@2.1.0 --save
npm i survey-creator-core@2.1.0 survey-creator-angular@2.1.0 --save
npm i survey-analytics@2.1.0 --save
npm i survey-pdf@2.1.0 --save
React
npm i survey-core@2.1.0 survey-react-ui@2.1.0 --save
npm i survey-creator-core@2.1.0 survey-creator-react@2.1.0 --save
npm i survey-analytics@2.1.0 --save
npm i survey-pdf@2.1.0 --save
Vue.js
npm i survey-core@2.1.0 survey-vue3-ui@2.1.0 --save
npm i survey-creator-core@2.1.0 survey-creator-vue@2.1.0 --save
npm i survey-analytics@2.1.0 --save
npm i survey-pdf@2.1.0 --save
HTML/CSS/JavaScript
<link href="https://unpkg.com/survey-core@2.1.0/survey-core.min.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/survey-core@2.1.0/survey.core.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/survey-js-ui@2.1.0/survey-js-ui.min.js"></script>

<script src="https://unpkg.com/survey-core@2.1.0/themes/index.min.js"></script>
<script src="https://unpkg.com/survey-creator-core@2.1.0/themes/index.min.js"></script>

<link href="https://unpkg.com/survey-creator-core@2.1.0/survey-creator-core.min.css" type="text/css" rel="stylesheet">
<script src="https://unpkg.com/survey-creator-core@2.1.0/survey-creator-core.min.js"></script>
<script src="https://unpkg.com/survey-creator-js@2.1.0/survey-creator-js.min.js"></script>

<link href="https://unpkg.com/survey-analytics@2.1.0/survey.analytics.min.css" rel="stylesheet">
<script src="https://unpkg.com/survey-analytics@2.1.0/survey.analytics.min.js"></script>

<script src="https://unpkg.com/survey-pdf@2.1.0/survey.pdf.min.js"></script>
<script src="https://unpkg.com/survey-pdf@2.1.0/pdf-form-filler.min.js"></script>

Your cookie settings

We use cookies on our site to make your browsing experience more convenient and personal. In some cases, they are essential to making the site work properly. By clicking "Accept All", you consent to the use of all cookies in accordance with our Terms of Use & Privacy Statement. However, you may visit "Cookie settings" to provide a controlled consent.

Your renewal subscription expires soon.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.

Your renewal subscription has expired.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.