Skip to content

Commit 95ed0d5

Browse files
authored
Improved accessibility of DSF contact form
* Used proper label tags instead of placeholders * Improved visual styling of errors
1 parent e84871e commit 95ed0d5

File tree

3 files changed

+31
-25
lines changed

3 files changed

+31
-25
lines changed

contact/forms.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,20 @@
1717
class BaseContactForm(ContactForm):
1818
message_subject = forms.CharField(
1919
max_length=100,
20-
widget=forms.TextInput(
21-
attrs={"class": "required", "placeholder": _("Message subject")}
22-
),
20+
widget=forms.TextInput(attrs={"class": "required"}),
2321
label=_("Message subject"),
2422
)
2523
email = forms.EmailField(
26-
widget=forms.TextInput(attrs={"class": "required", "placeholder": _("E-mail")})
24+
widget=forms.TextInput(attrs={"class": "required"}),
25+
label=_("E-mail"),
2726
)
2827
name = forms.CharField(
29-
widget=forms.TextInput(attrs={"class": "required", "placeholder": _("Name")})
28+
widget=forms.TextInput(attrs={"class": "required"}),
29+
label=_("Name"),
3030
)
3131
body = forms.CharField(
32-
widget=forms.Textarea(
33-
attrs={"class": "required", "placeholder": _("Your message")}
34-
)
32+
widget=forms.Textarea(attrs={"class": "required"}),
33+
label=_("Your message"),
3534
)
3635
captcha = ReCaptchaField(widget=ReCaptchaV3)
3736

djangoproject/scss/_style.scss

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,6 +1334,17 @@ a.cta {
13341334
}
13351335
}
13361336

1337+
label[for] {
1338+
font-weight: bold;
1339+
}
1340+
1341+
.errorlist {
1342+
color: var(--error-fg);
1343+
background-color: var(--error-light-l10);
1344+
border-radius: .3em;
1345+
margin: 10px 0;
1346+
}
1347+
13371348
.callout-right {
13381349
@include respond-min(768px) {
13391350
float: right;

djangoproject/templates/contact/foundation.html

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,19 @@ <h1>{% translate "Contact the Django Software Foundation" %}</h1>
3131
</p>
3232
<form action="." method="post" accept-charset="utf-8" class="form-input">
3333
{% csrf_token %}
34-
<p>
35-
{% if form.name.errors %}<p class="errors">{{ form.name.errors.as_text }}</p>{% endif %}
36-
{{ form.name }}
37-
</p>
38-
<p class="form-email">
39-
{% if form.email.errors %}<p class="errors">{{ form.email.errors.as_text }}</p>{% endif %}
40-
{{ form.email }}
41-
</p>
42-
<p>
43-
{% if form.message_subject.errors %}<p class="errors">{{ form.message_subject.errors.as_text }}</p>{% endif %}
44-
{{ form.message_subject }}
45-
</p>
46-
<p>
47-
{% if form.body.errors %}<p class="errors">{{ form.body.errors.as_text }}</p>{% endif %}
48-
{{ form.body }}
49-
</p>
50-
<p>{{ form.captcha }}</p>
34+
<div>
35+
{{ form.name.as_field_group }}
36+
</div>
37+
<div>
38+
{{ form.email.as_field_group }}
39+
</div>
40+
<div>
41+
{{ form.message_subject.as_field_group }}
42+
</div>
43+
<div>
44+
{{ form.body.as_field_group }}
45+
</div>
46+
{{ form.captcha }}
5147
<p class="submit"><input type="submit" class="cta" value="{% translate "Send &rarr;" %}"></p>
5248
</form>
5349
{% endblock %}

0 commit comments

Comments
 (0)