mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #33235 -- Removed "for = ..." from MultiWidget's <label>.
This improves accessibility for screen reader users.
This commit is contained in:
		
				
					committed by
					
						 Mariusz Felisiak
						Mariusz Felisiak
					
				
			
			
				
	
			
			
			
						parent
						
							2c01ebb4be
						
					
				
				
					commit
					c6c6cd3c5a
				
			| @@ -849,9 +849,7 @@ class MultiWidget(Widget): | ||||
|         return context | ||||
|  | ||||
|     def id_for_label(self, id_): | ||||
|         if id_: | ||||
|             id_ += '_0' | ||||
|         return id_ | ||||
|         return '' | ||||
|  | ||||
|     def value_from_datadict(self, data, files, name): | ||||
|         return [ | ||||
|   | ||||
| @@ -141,7 +141,7 @@ class MultiValueFieldTest(SimpleTestCase): | ||||
|         self.assertHTMLEqual( | ||||
|             form.as_table(), | ||||
|             """ | ||||
|             <tr><th><label for="id_field1_0">Field1:</label></th> | ||||
|             <tr><th><label>Field1:</label></th> | ||||
|             <td><input type="text" name="field1_0" id="id_field1_0" required> | ||||
|             <select multiple name="field1_1" id="id_field1_1" required> | ||||
|             <option value="J">John</option> | ||||
| @@ -164,7 +164,7 @@ class MultiValueFieldTest(SimpleTestCase): | ||||
|         self.assertHTMLEqual( | ||||
|             form.as_table(), | ||||
|             """ | ||||
|             <tr><th><label for="id_field1_0">Field1:</label></th> | ||||
|             <tr><th><label>Field1:</label></th> | ||||
|             <td><input type="text" name="field1_0" value="some text" id="id_field1_0" required> | ||||
|             <select multiple name="field1_1" id="id_field1_1" required> | ||||
|             <option value="J" selected>John</option> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| import datetime | ||||
|  | ||||
| from django.core.exceptions import ValidationError | ||||
| from django.forms import SplitDateTimeField | ||||
| from django.forms import Form, SplitDateTimeField | ||||
| from django.forms.widgets import SplitDateTimeWidget | ||||
| from django.test import SimpleTestCase | ||||
|  | ||||
| @@ -60,3 +60,16 @@ class SplitDateTimeFieldTest(SimpleTestCase): | ||||
|         self.assertTrue(f.has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['2008-05-06', '12:40:00'])) | ||||
|         self.assertFalse(f.has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:40'])) | ||||
|         self.assertTrue(f.has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:41'])) | ||||
|  | ||||
|     def test_form_as_table(self): | ||||
|         class TestForm(Form): | ||||
|             datetime = SplitDateTimeField() | ||||
|  | ||||
|         f = TestForm() | ||||
|         self.assertHTMLEqual( | ||||
|             f.as_table(), | ||||
|             '<tr><th><label>Datetime:</label></th><td>' | ||||
|             '<input type="text" name="datetime_0" required id="id_datetime_0">' | ||||
|             '<input type="text" name="datetime_1" required id="id_datetime_1">' | ||||
|             '</td></tr>', | ||||
|         ) | ||||
|   | ||||
| @@ -665,7 +665,7 @@ class TestFormField(PostgreSQLSimpleTestCase): | ||||
|         self.assertHTMLEqual(str(form), ''' | ||||
|             <tr> | ||||
|                 <th> | ||||
|                 <label for="id_field_0">Field:</label> | ||||
|                 <label>Field:</label> | ||||
|                 </th> | ||||
|                 <td> | ||||
|                     <input id="id_field_0_0" name="field_0_0" type="text"> | ||||
| @@ -700,7 +700,7 @@ class TestFormField(PostgreSQLSimpleTestCase): | ||||
|             form.as_table(), | ||||
|             """ | ||||
|             <tr><th> | ||||
|             <label for="id_datetime_field_0">Datetime field:</label> | ||||
|             <label>Datetime field:</label> | ||||
|             </th><td> | ||||
|             <input type="text" name="datetime_field_0" id="id_datetime_field_0"> | ||||
|             <input type="text" name="datetime_field_1" id="id_datetime_field_1"> | ||||
| @@ -717,7 +717,7 @@ class TestFormField(PostgreSQLSimpleTestCase): | ||||
|             form.as_table(), | ||||
|             """ | ||||
|             <tr><th> | ||||
|             <label for="id_datetime_field_0">Datetime field:</label> | ||||
|             <label>Datetime field:</label> | ||||
|             </th><td> | ||||
|             <input type="text" name="datetime_field_0" | ||||
|             value="2010-01-01 11:13:00" id="id_datetime_field_0"> | ||||
| @@ -754,7 +754,7 @@ class TestFormField(PostgreSQLSimpleTestCase): | ||||
|  | ||||
|         self.assertHTMLEqual(str(RangeForm()), ''' | ||||
|         <tr> | ||||
|             <th><label for="id_ints_0">Ints:</label></th> | ||||
|             <th><label>Ints:</label></th> | ||||
|             <td> | ||||
|                 <input id="id_ints_0" name="ints_0" type="number"> | ||||
|                 <input id="id_ints_1" name="ints_1" type="number"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user