@@ -3913,22 +3913,22 @@ class SomeForm(Form):
39133913 )
39143914 self .assertHTMLEqual (
39153915 f ["field" ].legend_tag (),
3916- '<legend for="id_field" class="required">Field:</legend>' ,
3916+ '<legend class="required">Field:</legend>' ,
39173917 )
39183918 self .assertHTMLEqual (
39193919 f ["field" ].label_tag (attrs = {"class" : "foo" }),
39203920 '<label for="id_field" class="foo required">Field:</label>' ,
39213921 )
39223922 self .assertHTMLEqual (
39233923 f ["field" ].legend_tag (attrs = {"class" : "foo" }),
3924- '<legend for="id_field" class="foo required">Field:</legend>' ,
3924+ '<legend class="foo required">Field:</legend>' ,
39253925 )
39263926 self .assertHTMLEqual (
39273927 f ["field2" ].label_tag (), '<label for="id_field2">Field2:</label>'
39283928 )
39293929 self .assertHTMLEqual (
39303930 f ["field2" ].legend_tag (),
3931- ' <legend for="id_field2" >Field2:</legend>' ,
3931+ " <legend>Field2:</legend>" ,
39323932 )
39333933
39343934 def test_label_split_datetime_not_displayed (self ):
@@ -4190,31 +4190,47 @@ class SomeForm(Form):
41904190
41914191 boundfield = SomeForm ()["field" ]
41924192
4193- testcases = [ # (args, kwargs, expected )
4194- # without anything: just print the <label>
4195- ((), {}, '<%(tag)s for="id_field">Field:</%(tag)s>' ),
4193+ testcases = [ # (args, kwargs, expected_label, expected_legend )
4194+ # without anything: just print the <label>/<legend>
4195+ ((), {}, '<label for="id_field">Field:</label>' , "<legend>Field:</legend>" ),
41964196 # passing just one argument: overrides the field's label
4197- (("custom" ,), {}, '<%(tag)s for="id_field">custom:</%(tag)s>' ),
4197+ (
4198+ ("custom" ,),
4199+ {},
4200+ '<label for="id_field">custom:</label>' ,
4201+ "<legend>custom:</legend>" ,
4202+ ),
41984203 # the overridden label is escaped
4199- (("custom&" ,), {}, '<%(tag)s for="id_field">custom&:</%(tag)s>' ),
4200- ((mark_safe ("custom&" ),), {}, '<%(tag)s for="id_field">custom&:</%(tag)s>' ),
4201- # Passing attrs to add extra attributes on the <label>
4204+ (
4205+ ("custom&" ,),
4206+ {},
4207+ '<label for="id_field">custom&:</label>' ,
4208+ "<legend>custom&:</legend>" ,
4209+ ),
4210+ (
4211+ (mark_safe ("custom&" ),),
4212+ {},
4213+ '<label for="id_field">custom&:</label>' ,
4214+ "<legend>custom&:</legend>" ,
4215+ ),
4216+ # Passing attrs to add extra attributes on the <label>/<legend>
42024217 (
42034218 (),
42044219 {"attrs" : {"class" : "pretty" }},
4205- '<%(tag)s for="id_field" class="pretty">Field:</%(tag)s>' ,
4220+ '<label for="id_field" class="pretty">Field:</label>' ,
4221+ '<legend class="pretty">Field:</legend>' ,
42064222 ),
42074223 ]
42084224
4209- for args , kwargs , expected in testcases :
4225+ for args , kwargs , expected_label , expected_legend in testcases :
42104226 with self .subTest (args = args , kwargs = kwargs ):
42114227 self .assertHTMLEqual (
42124228 boundfield .label_tag (* args , ** kwargs ),
4213- expected % { "tag" : "label" } ,
4229+ expected_label ,
42144230 )
42154231 self .assertHTMLEqual (
42164232 boundfield .legend_tag (* args , ** kwargs ),
4217- expected % { "tag" : "legend" } ,
4233+ expected_legend ,
42184234 )
42194235
42204236 def test_boundfield_label_tag_no_id (self ):
@@ -4252,7 +4268,7 @@ class SomeForm(Form):
42524268 )
42534269 self .assertHTMLEqual (
42544270 form ["custom" ].legend_tag (),
4255- ' <legend for="custom_id_custom" >Custom:</legend>' ,
4271+ " <legend>Custom:</legend>" ,
42564272 )
42574273 self .assertHTMLEqual (form ["empty" ].label_tag (), "<label>Empty:</label>" )
42584274 self .assertHTMLEqual (form ["empty" ].legend_tag (), "<legend>Empty:</legend>" )
@@ -4266,7 +4282,7 @@ class SomeForm(Form):
42664282 self .assertHTMLEqual (boundfield .label_tag (), '<label for="id_field"></label>' )
42674283 self .assertHTMLEqual (
42684284 boundfield .legend_tag (),
4269- ' <legend for="id_field" ></legend>' ,
4285+ " <legend></legend>" ,
42704286 )
42714287
42724288 def test_boundfield_id_for_label (self ):
@@ -4339,7 +4355,7 @@ class SomeForm(Form):
43394355 )
43404356 self .assertHTMLEqual (
43414357 boundfield .legend_tag (label_suffix = "$" ),
4342- ' <legend for="id_field" >Field$</legend>' ,
4358+ " <legend>Field$</legend>" ,
43434359 )
43444360
43454361 def test_error_dict (self ):
@@ -4879,7 +4895,7 @@ def test_label_does_not_include_new_line(self):
48794895 )
48804896 self .assertEqual (
48814897 field .legend_tag (),
4882- ' <legend for="id_first_name" >First name:</legend>' ,
4898+ " <legend>First name:</legend>" ,
48834899 )
48844900
48854901 @override_settings (USE_THOUSAND_SEPARATOR = True )
@@ -4892,7 +4908,7 @@ def test_label_attrs_not_localized(self):
48924908 )
48934909 self .assertHTMLEqual (
48944910 field .legend_tag (attrs = {"number" : 9999 }),
4895- '<legend number="9999" for="id_first_name" >First name:</legend>' ,
4911+ '<legend number="9999">First name:</legend>' ,
48964912 )
48974913
48984914 def test_remove_cached_field (self ):
@@ -5204,12 +5220,12 @@ def clean(self):
52045220 self .assertHTMLEqual (
52055221 t .render (Context ({"form" : f })),
52065222 "<form>"
5207- ' <p><legend for="id_username" >Username:</legend>'
5223+ " <p><legend>Username:</legend>"
52085224 '<input id="id_username" type="text" name="username" maxlength="10" '
52095225 'aria-describedby="id_username_helptext" required></p>'
5210- ' <p><legend for="id_password1" >Password1:</legend>'
5226+ " <p><legend>Password1:</legend>"
52115227 '<input type="password" name="password1" id="id_password1" required></p>'
5212- ' <p><legend for="id_password2" >Password2:</legend>'
5228+ " <p><legend>Password2:</legend>"
52135229 '<input type="password" name="password2" id="id_password2" required></p>'
52145230 '<input type="submit" required>'
52155231 "</form>" ,
0 commit comments