Stop adding required attribute to WTForm fields

WTForms now renders the `required` attribute if there is a validator
such as `DataRequired`. This was flagged in an accessibility audit as
being unnecessary since it doesn't conform to the Design System
recommendations, which state that "all form fields are considered
mandatory when navigating a government service unless otherwise denoted
by the word ‘(optional)’."

This uses the approach here https://github.com/wtforms/wtforms/pull/361
to overwrite the `render_field` method.
This commit is contained in:
Katie Smith
2021-02-19 11:31:25 +00:00
parent a2147e9c84
commit 1f9ea4a72f

View File

@@ -555,6 +555,10 @@ class StripWhitespaceForm(Form):
bound.get_form = weakref.ref(form) # GC won't collect the form if we don't use a weakref
return bound
def render_field(self, field, render_kw):
render_kw.setdefault('required', False)
return super().render_field(field, render_kw)
class StripWhitespaceStringField(GovukTextInputField):
def __init__(self, label=None, param_extensions=None, **kwargs):