Install

Works with Drupal: ^10.3 || ^11.0

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 5.02 MB
MD5: 1aade819a1859337057286294fb53880
SHA-1: 26d61f7c62b40468867f53b7eb9ca3d89db0dbf0
SHA-256: 99303ba53557ac014e8d8332b5c4efb2b16d458972621029a429eaf00f72470c
Download zip 6.52 MB
MD5: 583c91e636828eb64d320e927ac23f60
SHA-1: 67b09271edfd2fb38dc699ff733911ad500ae5d7
SHA-256: bd29cb02c5368c519c8708bda91e13ce1b2d1bec19273436ef596fcb2aef899d

Release notes

Webform 6.3.0-rc2 released as 6.3.0. This is the first release with support for Drupal 11. There are some outstanding issues; see #3530589: Stable Version for Drupal 11. In particular, you may wish to take note the following before upgrading:

Bootstrap

If you use webform_bootstrap, add the separate webform_bootstrap project to your build before upgrading.

Deprecated modules

If you use deprecated Webform modules, you may want to cease their use or install the webform_deprecated project before upgrading.

Contributors (229)

Ana Bozhilova, Arno_VGH, BramDriesen, DieterHolvoet, EHLOVader, EduardoMoralesAlberti, Edvinasas, Matthijs, PablNico, SVICER, Tuuuukka, VladimirAus, aarantes, aaron.ferris, abhijith s, abramm, acbramley, adhershmnair, adriancotter, agarzola, albertho425, alex20001111, alexpott, ameshkin, andrew.wang, angrytoast, ankitv18, annie.tao, anpri31, anurag_2711, anybody, apparatchik, arno_vgh, arousseau, artis.bajars, arun.k, asghar, avpaderno, berdir, bertb76, bkosborne, bojanz, bramdriesen, calebtr, carma03, catch, cgoffin, chartmann, chris matthews, chrisolof, cilefen, clemorphy, cojobo, cp_dev, crutch, cskeers, czigor, daletrexel, dallen33, damienmckenna, danflanagan8, darvanen, davidandersonencsd, demeritcowboy, dhruv.mittal, dieterholvoet, divya.sejekan, divyansh.gupta, djdevin, dmitrii puiandaikin, dmundra, dxvargas, ebremner, eduardo morales alberti, eric.vvf, evgen, f0ns, fago, fizcs3, flyke, g-brodiei, g.vandenhil, garvitasakhrani, gbotis, geoffreyr, girish_lnweb, gogowitsch, gomez_in_the_south, graber, greggles, guedressel, gábor hojtsy, hamzadwaya, harshitthakore, heddn, heinvdb, herve001, hfernandes, hosterholz, hswong3i, hungdo, huzooka, idebr, immaculate.x, immaculatexavier, imranbcc, ivan616, j-barnes, jason.ullstam, jeeva r, joakland, jonathan1055, jonathanjfshaw, jonathanshaw, joshahubbers, jrockowitz, jsimonis, juandhr, junsuwhy, jurgenhaas, jvollebregt-swis, jwilson3, jwineichen, kanchan bhogade, kenrbnsn, kensae, kensuke-imamura, khiminrm, kim.pepper, konstara, kreatil, kubrick, kul.pratap, liam morland, linhnm, liam-morland, lleber, luke.leber, lukey, lus, mably, macdev_drupal, maithri, maithri shetty, majid.ali, malcomio, mandclu, markfullmer, marthinal, martonlaci, matthijs, mattjones86, milosr, mjpa, mstrelan, mxr576, n-m-daz, nagy.balint, nicholosophy, nick dewitte, nicxvan, nikunj.shah, norman.lol, nupur badola, occupant, odensc, omd, pablonicolas, pacproduct, paulocs, penyaskito, pepeprawn, percoction, perry.franken, pfrenssen, phenaproxima, prudloff, rajeevk, rakesh.regar, ransomweaver, raphaelbertrand, regina.meow, ritarshi_chakraborty, rob230, robijntje94, root_emarketing, rraney, ryanrobinson_wlu, ryo ichiyama, s3b0un3t, samit.310@gmail.com, sandeep sanwale, sankyy79, scambler, sdhruvi5142, shabana.navas, shalini_jha, shreya_th, shreyal999, sivaji, solideogloria, sophron, sorabh.v6, srees, stefan.butura, stefank, teknocat, tgoeg, thamas, thierry.beeckmans, thronedigital, tichris59, tinny, tom konda, tom-konda, troybthompson, tuuuukka, urix, vincentg, vladimiraus, warrenw, webdrips, weseze, wesleymusgrove, xjm, yovince, zeeshan_khan, zengenuity, zoeblair

Changelog

Issues: 292 issues resolved.

Changes since 6.2.10 (compare):

Bug

  • #3155654: Remove call to deleted WebformSubmissionDevelGenerateDeprecated
  • #3403035: Fix typo in warning message of "webform:libraries:status"
  • #3463045: Replace deprecated ::renderPlain() with ::renderInIsolation()
  • #3463045: Replace RenderElement with RenderElementBase
  • #3463045: Replace FormElement with FormElementBase
  • #3463045: Replace EXISTS_REPLACE and EXISTS_RENAME with FileExists
  • #3477051: The hidden webform text format leads to text format selects with only one option
  • #3478407: Remove optional parameter declared before required parameter
  • #3478414: Remove/replace deprecated #drupal-off-canvas selector
  • #3486242: Webform's default editor violates config schema validation
  • Merge branch '6.3.x' into 3477051-fix-text-format-process-callback
  • #3464489: Default inputs should get a webform template suggestion
  • #3415445: Search Chinese in /admin/structure/webform cause error: Illegal mix of collations
  • #3452185 by jrockowitz, maithri shetty, harshitthakore, gomez_in_the_south, nupur badola: Validation error for height input field
  • Merge branch '6.3.x' into 3477051-fix-text-format-process-callback
  • #3477051: The hidden webform text format leads to text format selects with only one option
  • #3489305: Item elements do not obey visibility conditions
  • #3485556: Webform text format appears in the formats list
  • #3431453: Probable typo in Range element for "left" configuration
  • #3485556: Make spelling correction
  • #3415445: Add spelling exception
  • #3489710: dargullin/icheck is returning a 404
  • #3490061: Module Update Warning
  • #3473045: Autocomplete field with "STARTS_WITH" enabled
  • Merge branch '6.3.x' into 3477051-fix-text-format-process-callback
  • #3460381 by jrockowitz, geoffreyr: Password confirm widget not working with JS validation code
  • #3443934: Item format custom HTML is not valid
  • #3482402 by pfrenssen: Upload filesize limit doesn't properly account for PHP max upload setting
  • #3482402: Add spelling exception
  • #3443934: Remove obsolete spelling exception
  • #3479238 by jrockowitz, g.vandenhil: Typing 'dead' characters in field with input mask types 'dead'
  • Merge branch '6.3.x' into 3477051-fix-text-format-process-callback
  • #3492193: Incorrect use of 'render element' for webform_submission_data
  • #3479509: Using a token with a default value on a "Checkboxes other" causes other to be checked if the token value is empty
  • Merge branch '6.3.x' into 3477051-fix-text-format-process-callback
  • #3491453: Off canvas content visible when updating handlers
  • #3473048: Undefined array key "#admin_title"
  • #3491453: Off canvas content visible when updating handlers
  • #3490613 by dieterholvoet, jrockowitz: Token detection in email validation doesn't work if the token contains a comma
  • #3316667: Fix typo in Tippy.js message
  • #3493301: Select2 support for jQuery 4 #6298
  • #3415941 by jrockowitz, ryo ichiyama, kenrbnsn: Using Image Select occasionally displays a dropdown selection box
  • #3377787 by jrockowitz, crutch, warrenw: Webform range slider with left or right output in firefox
  • #3460220: Remove incorrect usage of VERSION
  • #3512441 by mandclu: Likert values aren't visible in "table" format
  • #3510721 by cilefen, annie.tao, fizcs3: Scheduling an Open webform to Close is confusing
  • #3511937: The Filter by Label search box isn't working for the Image Select element
  • #3509604: Filter by keyword input cut off
  • #3507148 by cgoffin: Webform PHP Mailer body format not according to documentation
  • #3498579 by rob230, liam morland: Attachment URL field is not big enough
  • #3502992: Warning: Undefined array key "#webform_key" in WebformManagedFileBase.php
  • #3515257: Checkboxes/Radios with description display set to "before" renders description in #prefix
  • #3504863: Incorrect documentation / return value for WebformElementInterface::hasMultipleValues()
  • #3529050: Render messages above the Drupal sidebar
  • #3133280: Remove obsolete comment
  • #3537579: Restore use of legacy SanitizePluginInterface
  • #3441905: Correct name of FunctionalJavascript directory
  • #3523478: Add `minified: true` to files in webform.libraries.yml
  • #3517902: Remove deprecated dialogClass
  • #3541440 by eric.vvf, liam morland, jrockowitz: Visual alignment issue: .webform-addons-summary floats beside warning messages instead of appearing above
  • #3204456 by jrockowitz, angrytoast, berdir, liam morland, heinvdb, catch: getParagraphWebformsRecursive causes slow load times
  • #3279642 by matthijs: Duplicate default element callbacks
  • #3508995 by jrockowitz, ryanrobinson_wlu, cilefen: Column Not Found: user.name
  • #3523961 by marthinal, jwilson3: Avoid addcslashes() deprecation warning during Webform submission preview
  • #3526756 by huzooka, liam morland, jrockowitz, dxvargas: Exception thrown when trying to submit element / wrapper attributes with invalid string
  • #3466356 by damienmckenna, liam morland: WebformElementStates::buildConditionRow() has faulty code
  • #3542583: Date test values can be out of range in case of maximum and no minimum date
  • #3452423 by jrockowitz, tichris59: Mode test - Date list restriction not applied
  • #3537938 by n-m-daz, eric.vvf, jrockowitz, liam morland, divya.sejekan: The placeholder text in the filter submissions field is cropped and not fully visible
  • #3456597: Cascading effect creates loss of performance
  • #3538258 by jrockowitz, andrew.wang: "You have unsaved changes." prompt does not display when "Required" checkboxes are clicked
  • #3477308 by jrockowitz, anybody, gogowitsch: Access denied when using webform dialog as anonymous user
  • #3526888 by liam morland, occupant, jrockowitz, jeeva r: Unable to install webform_node module via recipe
  • #3500627 by jrockowitz, albertho425, girish_lnweb, cilefen: Drupal 10 webform validation issue when using checkboxes
  • #3533744 by apparatchik: Allow Signature Element To Notify Value Changes And Work With Webform Conditions
  • #3531961 by jrockowitz, imranbcc, avpaderno: Unnecessary element access properties in yaml
  • #3516047 by marthinal, jwilson3: Accessibility violation: Tippy.js adds aria-expanded to with role="tooltip"
  • #3466750 by chrisolof, liam morland: Date-time strings in log messages generated by webform_scheduled_email lack important timezone information
  • #3522507 by jrockowitz, liam morland: SchemaIncompleteException for webform.settings:ui.description_help_disabled
  • #3520508: Maxlength on text format field causes TypeError
  • #3537919: Crash after update request
  • #3462726 by jrockowitz, Ana Bozhilova, cskeers, liam morland: Webform Export Option "Separate, with each possible option value in its own column" Doesn't Show Values for Specific Options
  • #3524877 by yovince, liam morland: Remove return value from WebformSubmissionDevelGenerate::generateSubmissions()
  • #3471061 by jrockowitz, adhershmnair, regina.meow, cilefen: "Filter webforms" not working after using browser's back button
  • #3413266 by danflanagan8, jrockowitz, cilefen, tinny: Uncaught GuzzleHttp\Exception\ConnectException in remote post hander
  • #3524216 by jrockowitz, robijntje94, liam morland, pepeprawn, anpri31, cilefen, cp_dev, dmitrii puiandaikin, abramm, daletrexel: jQuery timepicker setting is not respected
  • #3337640 by jrockowitz, tgoeg, kensuke-imamura: drush wfi does not import data exported with wfx
  • #3534519 by jrockowitz, khiminrm: Warnings when exporting submissions with empty composite element
  • #3543591: The validateUnique() and validateUniqueMultiple() functions don't evaluate #unique = false correctly
  • #3424031 by jrockowitz, alex20001111: Report of Issue with Options/Checkbox Limit in Custom Option SVG Module
  • #3414361: UX regression / error when duplicating webform in D10.2
  • #3380667: Remote post handler triggers session related error messages when remote post fails
  • [#3441600] feat: Webform might create invalid link renderable arrays on submission list.
  • [#3449370] feat: Values not shown on submission display when multiple items and UL used
  • [#3510410] feat: Disabled webform text format -- unable to reenable
  • [#3497954] feat: Excessive memory use when building dynamic library definitions
  • [#3440309] feat: First option of required checkboxes/checkboxes other become required under conditional state while wrapper type set to 'form element'
  • #3497954 by weseze, catch, heddn, cilefen, jrockowitz, liam morland: Excessive memory use when building dynamic library definitions. Minor Fix.
  • [#3484772] feat: Managed file element using "button" option appears to incorrectly invalidate valid uploads
  • [#3449549] feat: Webform 'remote_post' handler doesn't exclude fields without access
  • #3497954 by weseze, catch, heddn, cilefen, jrockowitz, liam morland: Excessive memory use when building dynamic library definitions. Minor Fix.
  • #3497954 by weseze, catch, heddn, cilefen, jrockowitz, liam morland: Excessive memory use when building dynamic library definitions. Minor Fix.
  • [#3397048] feat: PHP Implode error array vs string, EntityReferenceSelection
  • Revert "[#3397048] feat: PHP Implode error array vs string, EntityReferenceSelection"
  • [#3397048] feat: PHP Implode error array vs string, EntityReferenceSelection
  • [#3490096] feat: Entity reference field fails to create entities that don't exist for taxonomy when only one target bundle selected
  • [#3515391] feat: There's no 'group_relation' entity type.
  • [#3501983] feat: Duplicate Submission should allow 'edit own' instead of 'edit any'
  • [#3495192] feat: Date List element title display options not applying.
  • [#3468142] feat: Wizard previous and next label not overridden
  • [#3517077] feat: Error and inconcistency when deleting form element after reordering
  • [#3519674] feat: Telephone validation issues when using states and pages
  • [#3512775] feat: Minimum items not respected when multi-value element is required
  • [#3462738] feat: webform_submission and webform_submission_data schema don't match for sid
  • [#3440133] feat: Submissions can be purged immediately after submission
  • [#3426141] feat: Deleting submissions using webform_submission_bulk_form fails because row order is random
  • [#3546716] feat: data-options doesn't override existing config
  • [#3414928] feat: Webform submission import: failed to import a lot of records executed in multiple batches
  • [#3423775] feat: Error message when using SymfonyMailer plugin
  • [#3546389] feat: Error: Call to undefined function Drupal\webform\Hook\_webform_token_get_submission_value()
  • [#3484204] feat: [Performance] Timeout when removing a webform field
  • [#3547520] feat: TypeError if YAML contains custom tag
  • [#3550092] feat: WebformElementBase::hiddenElementAfterBuild() does not handle AccessResult objects
  • [#3517069] feat: Accessibility issues when adding elements to a form
  • #3556560: Deprecated function preg_match() passing null to parameter
  • [#3556492] feat: Tests are broken
  • 3553808: Fix the condition for @size limit.
  • #3553446 : option fields with a description but no text cause confusion...
  • Revert "Issue #3533744 by apparatchik: Allow Signature Element To Notify Value Changes And Work With Webform Conditions"
  • Revert "Issue #3538258 by andrew.wang, jrockowitz, divya.sejekan: "You have unsaved changes." prompt does not display when "Required" checkboxes are clicked"
  • fix: #3452360 Fix wrapper focus in webformScrollTop
  • fix: #3563385 Correct conditional in aria-describedby workaround
  • fix: #3350275 Fix select-other computed token error
  • fix: #3565422 Replace SQL table alias `user` which is invalid in PostgreSQL
  • fix: #3559837 Replace use of `->entity` accessor in WebformEntityReferenceManager
  • fix: #3559837 Remove unused body field from test node type
  • fix: #3567894 Do not pass NULL to string param to preg_match()
  • fix: #3414928 Add missing `escape` pamra to fgetcsv() call
  • fix: #3559041 Allow referencing paragraphs
  • fix: #3569060 Fix incorrect CSS selector for applying off-canvas CSS overrides
  • fix: #3572819 Use ::loadMultipleOverrideFree() in webform_update_8648()
  • fix: #3575614 Use colon to open case statements
  • fix: #3575614 Fix whitespace in case statements
  • fix: #3576379 Fix flaky WebformElementComputedJavaScriptTest
  • fix: #3576379 Use random numbers in WebformElementComputedJavaScriptTest
  • fix: #3567475 Use correct variable for Select2 custom options
  • fix: #3576340 Fix memory leak in batch export causing incomplete CSV for large numbers of submissions
  • fix: #3578807 Refactor WebformExporterBase::addToZipFile()
  • fix: #3573777 Return array from WebformAccessGroupEntityBlock::build()
  • fix: #3538483 Sort modules in WebformSubmissionUserLimitTest
  • fix: #3588766 Fix broken help link
  • fix: #3586789 Prevent InvalidArgumentException when source YAML is invalid
  • fix: #3590360 Ensure $operation is not NULL in Webform::getPages()
  • fix: #3590360 Ensure $key is not NULL in Webform::getPage()
  • fix: #3590360 Do not call FormStateInterface::setErrorByName() with NULL $name param
  • fix: #3590360 Avoid NULL array key in WebformAdminConfigBaseForm
  • fix: #3590360 Avoid NULL array key in Webform::getElement()
  • fix: #3590360 Avoid NULL array key WebformSubmission::isOwner()
  • fix: #3590360 Avoid NULL array key in WebformOptionsCustom::setTemplateOptions()
  • feat: #3547533 Fix potential XSS vulnerability in webform_submission_log
  • fix: #3592693 Fix docblock typehint on WebformHandlerInterface::setHandlerId()
  • fix: #3594252 Catch exceptions in scheduled email cron

Feature

  • #3465838: Remove PHP version constraint
  • #3465838 by ankitv18, liam morland: Remove use of class alias Drupal\Core\Serialization\Yaml
  • #3465838 by acbramley, liam morland, ankitv18, kim.pepper, vladimiraus, hswong3i, mstrelan, stefank, linhnm, nicxvan, jrockowitz, nikunj.shah, chris matthews, evgen, nagy.balint, mably, webdrips: Drupal 11 compatibility fixes for webform
  • #3482644: Option to suppress successful install message
  • #3511733 by mandclu: Add an "average" formatter for Likert elements
  • #3532527 by divyansh.gupta, majid.ali, jrockowitz, norman.lol, thamas: All errors should have role alert for better accessibility when using client side validation
  • #3516134: Add access check for "notes" operation
  • #3469200: Allow to use rendered entities (in selected view mode) as webform entity checkboxes / radios options
  • #3524488 by jrockowitz, martonlaci, liam morland: Activate Title case input mask option
  • #3458484 by jrockowitz, abhijith s, nupur badola, cilefen, luke.leber: Provide option to disable default Js validation on Telephone element
  • #3504078 by liam morland, milosr, jrockowitz, crutch, ivan616: Operations Dropbutton improvement, need webform node id/class or form id for a webform node
  • #3487468: Extend "Terms of service" element with the option to add a link
  • #3493832: Allow custom data-options to added to elements JavaScript options
  • #3524488 by jrockowitz, martonlaci, liam morland: Activate Title case input mask option
  • #3483410: Add justify content settings in WebformFlexbox Element
  • #3439662 by jrockowitz, arno_vgh: Allow a WebformEmailHandler to specify the language of an email message
  • #3449523 by jrockowitz, nicholosophy, cilefen: Add option to add css class to fieldset legend element
  • [#3543014] feat: Make form_file_limit error message configurable
  • [#3315197] feat: [Performance] Add an index on webform_submission_data name and property
  • #3473153 by jrockowitz, rraney, flyke, cilefen, s3b0un3t, rajeevk, carma03, anurag_2711, lukey: Route "webform.addons" does not exist
  • [#3520969] feat: Validate US ZIP codes in the Advanced Address element
  • [#3487530] feat: New permission for filter and bulk action on overview page
  • [#3487530] feat: New permission for filter and bulk action on overview page
  • feat: Update WebformNodeReferencesListController to support paragraph-based webform references
  • feat: Replace fieldgroup with fieldset in WebformEntitySettingsFormForm
  • feat: Add version check for escaping HTML in WebformEntityTranslationTest
  • fix: #3465838 Improve testing message
  • fix: #3465838: Update lifecycle_link keys

Misc

  • Automated Project Update Bot fixes from run 11-235699.
  • DanChadwick: Remove table.sticky-header CSS for D10.3 compatibility.
  • Fix typos
  • Speed up tests
  • Fix broken tests
  • Fix checkbox via dialog/off-canvas tray.
  • Merge remote-tracking branch 'origin/6.3.x' into 6.3.x
  • Fix broken test
  • Add package: 'Webform [DEPRECATED]' to webform_bootstrap.info.yml
  • Update UPDATE-LIBRARIES.md.
  • Update Drupal version in README.md
  • Remove extraneous debug statement and update dependencies
  • Add "titlecase" to cspell project words list
  • Remove excluded children from containers
  • Add Spanish words to cspell project word list
  • Linting
  • fix fatal error on getName
  • Revert "fix fatal error on getName"
  • Fix instances where isset is use instead of !empty and add test cases
  • Update step validation to check has_access first
  • Remove redundant way of setting field's value in validateWebformUsers()
  • refactor: Simplify HTML escaping and prefix test methods in WebformEntityTranslationTest
  • refactor: Unhide test methods in WebformEntityTranslationTest
  • Fix form build cache compatibility on Drupal 11
  • Display table drag row changed warning once.
  • Fix webform results table not clearing the right floated customize button.
  • Minor tweaks to tests that are failing locally under certain conditions.

Task

  • #3461552: Remove compatibility shims for versions prior to Drupal 10.2
  • #3419661: format_size() is deprecated and will be removed in Drupal 11
  • #3422712: Remove deprecated watchdog_exception()
  • #3464929: Require minimum of Drupal 10.3
  • #3463350: Use default .gitlab-ci.yml
  • #3464929: Remove compatibility shims for Drupal 10.2
  • #3463350: Run tests on maximum PHP version
  • #3463350: Relax checks for file elements
  • #3463350: Run upgrade_status test
  • #3458611: Remove polyfill-fastly.io library from webform.libraries.yml
  • #3474074: Mark nullable parameters with null defaults
  • #3474074: Sort `use` statements
  • #3478415: Fix test module package versions
  • #3478398: Remove modernizr dependency and code
  • #3474074: Fix cspell errors
  • #3478047 by ankitv18: Make CSS coding standards fixes
  • #3481554 by pfrenssen: Update testing config to accommodate changes to default templates
  • #3481554 by pfrenssen: Correct target version detection in tests for features introduced in Drupal 11.1
  • #3479443: Remove code related to legacy ckeditor
  • #3481554: Convert test to XPath
  • #3479443: Remove legacy ckeditor from codebase
  • #3457416 by jrockowitz, nick dewitte, solideogloria, luke.leber, rraney, liam morland, ransomweaver, chartmann, wesleymusgrove, tgoeg, raphaelbertrand, malcomio: choices/choices 9.0.1 is affected by polyfill.io. Upgrade to 11.0
  • #3336931 by jrockowitz, sandeep sanwale, paulocs, percoction: [Deprecation] Replace deprecated jQuery :tabbable selector
  • #3481554: Convert ::testImageSelect() test to XPath
  • #3492971: Document webform_bootstrap deprecation
  • #3495674: Update spelling words list
  • #3495674: Fix broken tests
  • #3500521: Use colon to open case statements
  • #3474074: Add NULL to nullable param documentation
  • #3513027: Remove .eslintrc.json
  • #3513032: Remove "use strict" statements from JS modules
  • #3515108 by idebr: Remove obsolete drupalci.yml
  • #3477942 by idebr, ankitv18, kul.pratap, jrockowitz, liam morland, acbramley: Fix phpstan errors
  • #3378771 by jrockowitz, jonathanshaw: Don't require source entity type to be specified in querystring if it is configured
  • #3512816: jQuery.isFunction is removed in jQuery 4.0+
  • #3514719: Use object-shorthand for attach declarations
  • #3487957: Discuss process for converting webform to OOP Hooks
  • #3489932: Move deprecated modules into webform_deprecated
  • Revert "Issue #3513032: Remove "use strict" statements from JS modules"
  • #3527032: Remove string-to-string concatenations
  • #3474074: Replace use of "blacklist"
  • #3474074: Add spelling exceptions
  • #3474074: Work-around cspell handling of "whitelist"
  • #3528984 by mably: Remove deprecated Human Presence Form Protector module
  • #3524749: Remove outdated warning about CDN, Ajax, and BigPipe
  • #3526637: Make webform blocks fully validatable and thus show as as dynamic component in Experience Builder
  • #3534976 by hosterholz: Add escape param to fputcsv()
  • #3526637 by gábor hojtsy, mandclu, jrockowitz, penyaskito: Make webform blocks fully validatable and thus show as as dynamic component in Experience Builder
  • #3538392: Fix test failure in WebformElementCaptchaTest
  • #3541370: Replace deprecated rgba()
  • #3487957: Add LegacyModuleImplementsAlter attribute annotation
  • #3538392: Make @dataProvider methods static
  • #3538392: Update tests to handle differences in Drupal 11
  • #3538392: Use XPath in WebformElementValidateRequiredTest
  • #3542169: Remove fix checkbox via dialog/off-canvas tray
  • #3524067 by tom konda: strpos($a, $b) which compares with FALSE or 0 should replace with str_contains($a, $b) or str_starts_with($a, $b) if possible
  • #3542319: array_intersect(): Argument #1 ($array) must be of type array, null given
  • #3538042: Add autocomplete for date element to be a11y compliant
  • #3514708 by jrockowitz, mandclu: Add a test for the Likert "average" formatter
  • #3473834 by liam morland, jrockowitz: Remove JS shims for Internet Explorer (IE)
  • #3488049 by jrockowitz, berdir: Delay discovery/init logic in WebformHelpManager
  • #3443385 by arno_vgh, cilefen, jrockowitz: Update remote_post Webform handler name & description
  • #3542964: Remove Add-ons feature
  • [#3513032] feat: Remove "use strict" statements from JS where cited by eslint
  • [#3432428] feat: Information message for file uploads is confusing when form limit is enabled
  • [#3487061] feat: Fix coding standards
  • [#3464731] feat: webform_bootstrap: Bootstrap Theme vs. Bootstrap Framework (e.g. Radix)
  • [#3544435] feat: Upgrade 6.2.x → 6.3.x removes webform_shortcuts → causes missing-module errors during updb/cim
  • [#3257570] feat: Ensure that submission are deleted when a webform is deleted
  • [#3504274] feat: Variants do not override the title and description
  • [#3491104] feat: Warning: foreach() argument must be of type array|object, null given in Drupal\webform\WebformTranslationLingotekManager
  • [#3548220] feat: Minor tweaks to Webform references showing paragraphs
  • [#3547627] feat: LogicException: The hook update_dependencies does not support attributes
  • #3550939 Remove all phpcs:ignorefile
  • [#3487061] feat: Fix issues raised by phpcs
  • [#3556780] feat: Fix flexbox 'justify_content' default value
  • fix: #3558621 Use canonical type casts for PHP 8.5 compatibility
  • fix: #3558621 Use canonical type names
  • fix: #3561057 Use Drupal\Component\Serialization\Yaml
  • fix: #3478047 Fix issues raised by stylelint
  • fix: #3565161 Correct class for mock in WebformSubmissionBulkFormTest
  • fix: #3565161 Remove use of deprecated ::assertAttributeEquals()
  • fix: #3565161 Add missing param to instantiation of WebformSubmissionBulkForm
  • fix: #3565161 Fix path to webform.tokens.inc
  • fix: #3565161 Replace use of deprecated ::basename() method
  • fix: #3474074 Make spelling corrections
  • fix: #3568000 Replace content_translation_form_language_content_settings_submit() with ContentTranslationFormLanguageHooks
  • feat: #3500529 Enable testing on previous minor
  • fix: #3550117 Re-enable skipped test
  • fix: #3550117 Remove configuration for node:webform:body which has been removed from Drupal core
  • fix: #3550117 Remove filter tips assertions for Drupal 11.4+
  • fix: #3550117 Send Boolean argument to AccessResult::allowedIf()
  • fix: #3550117 Modify text format help only when text format has help
  • fix: #3550117 Patch `hal` for compatibility with Drupal 11.4
  • fix: #3474074 Fix spelling error
  • fix: #2914153 Correct comments in webform-element-more.html.twig
  • fix: #3589901 Do not use null as an array offset in WebformPluginElementController
  • fix: #3589901 Correct documentation for WebformElementInterface::getItemDefaultFormat()
  • fix: #3589284 Remove unused `value` variable in `webform.element.signature.js`
  • fix: #3588934 Refactor URL generation in webform_requirements()
  • fix: #3588934 Update URL for reCAPTCHA
  • feat: #3588934 Add `cleantalk` to the list of recommended spam protection modules
  • fix: #3592998 Fix the return type in WebformHandlerInterface::access()
  • fix: #3594290 Add void return type declaration to test methods
Created by: liam morland
Created on: 7 Jul 2026 at 15:37 UTC
Last updated: 14 Jul 2026 at 00:41 UTC
Bug fixes
New features

Other releases