Skip to content

Commit 6c1c4e0

Browse files
authored
Merge pull request #727 from NHSDigital/DTOSS-11446-visually-hidden-label-text
Allow modified labels for screenreaders and assistive tech
2 parents 1c3d055 + 5da7609 commit 6c1c4e0

File tree

15 files changed

+117
-27
lines changed

15 files changed

+117
-27
lines changed

manage_breast_screening/mammograms/forms/symptom_forms.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -233,13 +233,15 @@ def create(self, appointment, request):
233233
class LumpForm(SymptomForm):
234234
area = CommonFields.area_radios(symptom_name="lump")
235235
area_description_right_breast = CommonFields.area_description(
236-
"lump", visually_hidden_label_suffix="right breast"
236+
"lump", visually_hidden_label_suffix=": right breast"
237237
)
238238
area_description_left_breast = CommonFields.area_description(
239-
"lump", visually_hidden_label_suffix="left breast"
239+
"lump", visually_hidden_label_suffix=": left breast"
240240
)
241241
area_description_other = CommonFields.area_description(
242-
"lump", visually_hidden_label_suffix="other", classes="nhsuk-u-width-two-thirds"
242+
"lump",
243+
visually_hidden_label_suffix=": other",
244+
classes="nhsuk-u-width-two-thirds",
243245
)
244246
when_started = CommonFields.when_started
245247
specific_date = CommonFields.specific_date
@@ -269,14 +271,14 @@ def __init__(self, instance=None, **kwargs):
269271
class SwellingOrShapeChangeForm(SymptomForm):
270272
area = CommonFields.area_radios(symptom_name="swelling or shape change")
271273
area_description_right_breast = CommonFields.area_description(
272-
"swelling or shape change", visually_hidden_label_suffix="right breast"
274+
"swelling or shape change", visually_hidden_label_suffix=": right breast"
273275
)
274276
area_description_left_breast = CommonFields.area_description(
275-
"swelling or shape change", visually_hidden_label_suffix="left breast"
277+
"swelling or shape change", visually_hidden_label_suffix=": left breast"
276278
)
277279
area_description_other = CommonFields.area_description(
278280
"swelling or shape change",
279-
visually_hidden_label_suffix="other",
281+
visually_hidden_label_suffix=": other",
280282
classes="nhsuk-u-width-two-thirds",
281283
)
282284
when_started = CommonFields.when_started
@@ -311,14 +313,14 @@ def __init__(self, instance=None, **kwargs):
311313
class SkinChangeForm(SymptomForm):
312314
area = CommonFields.area_radios(symptom_name="skin change")
313315
area_description_right_breast = CommonFields.area_description(
314-
"skin change", visually_hidden_label_suffix="right breast"
316+
"skin change", visually_hidden_label_suffix=": right breast"
315317
)
316318
area_description_left_breast = CommonFields.area_description(
317-
"skin change", visually_hidden_label_suffix="left breast"
319+
"skin change", visually_hidden_label_suffix=": left breast"
318320
)
319321
area_description_other = CommonFields.area_description(
320322
"skin change",
321-
visually_hidden_label_suffix="other",
323+
visually_hidden_label_suffix=": other",
322324
classes="nhsuk-u-width-two-thirds",
323325
)
324326
symptom_sub_type = ChoiceField(
@@ -442,13 +444,13 @@ def area_initial(self, area):
442444
class OtherSymptomForm(SymptomForm):
443445
area = CommonFields.area_radios()
444446
area_description_right_breast = CommonFields.area_description(
445-
visually_hidden_label_suffix="right breast"
447+
visually_hidden_label_suffix=": right breast"
446448
)
447449
area_description_left_breast = CommonFields.area_description(
448-
visually_hidden_label_suffix="left breast"
450+
visually_hidden_label_suffix=": left breast"
449451
)
450452
area_description_other = CommonFields.area_description(
451-
visually_hidden_label_suffix="other", classes="nhsuk-u-width-two-thirds"
453+
visually_hidden_label_suffix=": other", classes="nhsuk-u-width-two-thirds"
452454
)
453455
symptom_sub_type_details = CharField(
454456
label="Describe the symptom",

manage_breast_screening/nhsuk_forms/fields/boolean_field.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ def __init__(
1111
*args,
1212
hint=None,
1313
label_classes=None,
14+
visually_hidden_label_prefix=None,
15+
visually_hidden_label_suffix=None,
1416
classes=None,
1517
**kwargs,
1618
):
@@ -19,5 +21,7 @@ def __init__(
1921
self.hint = hint
2022
self.classes = classes
2123
self.label_classes = label_classes
24+
self.visually_hidden_label_prefix = visually_hidden_label_prefix
25+
self.visually_hidden_label_suffix = visually_hidden_label_suffix
2226

2327
super().__init__(*args, **kwargs)

manage_breast_screening/nhsuk_forms/fields/char_field.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,15 @@ def __init__(
2222
hint=None,
2323
label_classes=None,
2424
classes=None,
25+
visually_hidden_label_prefix=None,
2526
visually_hidden_label_suffix=None,
2627
inputmode=None,
2728
**kwargs,
2829
):
2930
self.hint = hint
3031
self.classes = classes
3132
self.label_classes = label_classes
33+
self.visually_hidden_label_prefix = visually_hidden_label_prefix
3234
self.visually_hidden_label_suffix = visually_hidden_label_suffix
3335
self.max_length = max_length
3436
self.max_words = max_words

manage_breast_screening/nhsuk_forms/fields/choice_fields.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ def __init__(
5858
*args,
5959
hint=None,
6060
label_classes="nhsuk-fieldset__legend--m",
61+
visually_hidden_label_prefix=None,
62+
visually_hidden_label_suffix=None,
6163
classes=None,
6264
**kwargs,
6365
):
@@ -68,6 +70,8 @@ def __init__(
6870
self.hint = hint
6971
self.classes = classes
7072
self.label_classes = label_classes
73+
self.visually_hidden_label_prefix = visually_hidden_label_prefix
74+
self.visually_hidden_label_suffix = visually_hidden_label_suffix
7175

7276
super().__init__(*args, **kwargs)
7377

@@ -100,6 +104,8 @@ def __init__(
100104
*args,
101105
hint=None,
102106
label_classes="nhsuk-fieldset__legend--m",
107+
visually_hidden_label_prefix=None,
108+
visually_hidden_label_suffix=None,
103109
classes=None,
104110
**kwargs,
105111
):
@@ -108,5 +114,7 @@ def __init__(
108114
self.hint = hint
109115
self.classes = classes
110116
self.label_classes = label_classes
117+
self.visually_hidden_label_prefix = visually_hidden_label_prefix
118+
self.visually_hidden_label_suffix = visually_hidden_label_suffix
111119

112120
super().__init__(*args, **kwargs)

manage_breast_screening/nhsuk_forms/fields/integer_field.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ def __init__(
77
*args,
88
hint=None,
99
label_classes=None,
10+
visually_hidden_label_prefix=None,
11+
visually_hidden_label_suffix=None,
1012
classes=None,
1113
inputmode="numeric",
1214
**kwargs,
@@ -16,6 +18,8 @@ def __init__(
1618
self.hint = hint
1719
self.classes = classes
1820
self.label_classes = label_classes
21+
self.visually_hidden_label_prefix = visually_hidden_label_prefix
22+
self.visually_hidden_label_suffix = visually_hidden_label_suffix
1923
self.inputmode = inputmode
2024

2125
super().__init__(*args, **kwargs)

manage_breast_screening/nhsuk_forms/jinja2/forms/character-count.jinja

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
{% from "character-count/macro.jinja" import characterCount %}
2+
{% from "forms/label.jinja" import label_html %}
23
{% set unbound_field = field.field %}
34
{% set widget = unbound_field.widget %}
45
{% set character_count_params = {
56
"label": {
6-
"text": field.label,
7+
"html": label_html(field),
78
"classes": unbound_field.label_classes if unbound_field.label_classes
89
},
910
"hint": {

manage_breast_screening/nhsuk_forms/jinja2/forms/checkboxes.jinja

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{% from 'nhsuk/components/checkboxes/macro.jinja' import checkboxes %}
2+
{% from "forms/label.jinja" import label_html %}
23
{% set unbound_field = field.field %}
34
{% if field.errors %}
45
{% set error_message = {"text": field.errors | first} %}
@@ -25,7 +26,7 @@
2526
"idPrefix": field.auto_id,
2627
"fieldset": {
2728
"legend": {
28-
"text": field.label,
29+
"html": label_html(field),
2930
"classes": unbound_field.label_classes
3031
}
3132
} if field.use_fieldset else none,

manage_breast_screening/nhsuk_forms/jinja2/forms/input.jinja

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
{% from "nhsuk/components/input/macro.jinja" import input %}
2+
{% from "forms/label.jinja" import label_html %}
23
{% set unbound_field = field.field %}
34
{% set widget = unbound_field.widget %}
4-
{% if unbound_field.visually_hidden_label_suffix %}
5-
{% set label_html %}
6-
{{ field.label }}<span class="nhsuk-u-visually-hidden">: {{ unbound_field.visually_hidden_label_suffix }}</span>
7-
{% endset %}
8-
{% endif %}
95
{% set input_params = {
106
"label": {
11-
"text": field.label,
12-
"html": label_html if label_html,
7+
"html": label_html(field),
138
"classes": unbound_field.label_classes if unbound_field.label_classes
149
},
1510
"hint": {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{% macro label_html(field) %}
2+
{% set unbound_field = field.field %}
3+
{% if unbound_field.visually_hidden_label_prefix -%}
4+
<span class="nhsuk-u-visually-hidden">{{ unbound_field.visually_hidden_label_prefix }}</span>
5+
{% endif -%}
6+
{{ field.label }}
7+
{%- if unbound_field.visually_hidden_label_suffix -%}
8+
<span class="nhsuk-u-visually-hidden">{{ unbound_field.visually_hidden_label_suffix }}</span>
9+
{% endif %}
10+
{% endmacro %}

manage_breast_screening/nhsuk_forms/jinja2/forms/radios.jinja

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{% from 'nhsuk/components/radios/macro.jinja' import radios %}
2+
{% from "forms/label.jinja" import label_html %}
23
{% set unbound_field = field.field %}
34
{% if field.errors %}
45
{% set error_message = {"text": field.errors | first} %}
@@ -25,7 +26,7 @@
2526
"idPrefix": field.auto_id,
2627
"fieldset": {
2728
"legend": {
28-
"text": field.label,
29+
"html": label_html(field),
2930
"classes": unbound_field.label_classes
3031
}
3132
} if field.use_fieldset else none,

0 commit comments

Comments
 (0)