Install
Works with Drupal: ^10.3 || ^11.0Using Composer to manage Drupal site dependencies
Alternative installation files
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:
- #3505669: Prevent max-age=0 from bubbling for anonymous users to restore caching on CDN
- #3561066: Set max-age:0 for authenticated users to exclude Webforms from Dynamic page cache
- #3551513: Webform specific CSS and JavaScript not loaded when loading a webform outside the Webform URL (eg. AJAX / Block)
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