mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-10 12:17:56 +02:00
Provide accessible name to radio groups (#945)
This commit is contained in:
@@ -42,8 +42,11 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'shared' in preferences_form.editable_fields %}
|
{% if 'shared' in preferences_form.editable_fields %}
|
||||||
<div class="form-group radio-group">
|
<div class="form-group radio-group" role="radiogroup" aria-labelledby="search-shared-label">
|
||||||
<div class="form-label{% if 'shared' in search.modified_params %} text-bold{% endif %}">Shared filter</div>
|
<label id="search-shared-label"
|
||||||
|
class="form-label{% if 'shared' in search.modified_params %} text-bold{% endif %}">
|
||||||
|
Shared filter
|
||||||
|
</label>
|
||||||
{% for radio in preferences_form.shared %}
|
{% for radio in preferences_form.shared %}
|
||||||
<label for="{{ radio.id_for_label }}" class="form-radio form-inline">
|
<label for="{{ radio.id_for_label }}" class="form-radio form-inline">
|
||||||
{{ radio.tag }}
|
{{ radio.tag }}
|
||||||
@@ -54,8 +57,11 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'unread' in preferences_form.editable_fields %}
|
{% if 'unread' in preferences_form.editable_fields %}
|
||||||
<div class="form-group radio-group">
|
<div class="form-group radio-group" role="radiogroup" aria-labelledby="search-unread-label">
|
||||||
<div class="form-label{% if 'unread' in search.modified_params %} text-bold{% endif %}">Unread filter</div>
|
<label id="search-unread-label"
|
||||||
|
class="form-label{% if 'unread' in search.modified_params %} text-bold{% endif %}">
|
||||||
|
Unread filter
|
||||||
|
</label>
|
||||||
{% for radio in preferences_form.unread %}
|
{% for radio in preferences_form.unread %}
|
||||||
<label for="{{ radio.id_for_label }}" class="form-radio form-inline">
|
<label for="{{ radio.id_for_label }}" class="form-radio form-inline">
|
||||||
{{ radio.tag }}
|
{{ radio.tag }}
|
||||||
|
@@ -71,19 +71,15 @@ class BookmarkSearchTagTest(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
|||||||
radios = form.select(f'input[name="{name}"][type="radio"]')
|
radios = form.select(f'input[name="{name}"][type="radio"]')
|
||||||
self.assertTrue(len(radios) == 0)
|
self.assertTrue(len(radios) == 0)
|
||||||
|
|
||||||
def assertUnmodifiedLabel(self, html: str, text: str, id: str = ""):
|
def assertUnmodifiedLabel(self, html: str, text: str):
|
||||||
id_attr = f'for="{id}"' if id else ""
|
soup = self.make_soup(html)
|
||||||
tag = "label" if id else "div"
|
label = soup.find("label", string=lambda s: s and s.strip() == text)
|
||||||
needle = f'<{tag} class="form-label" {id_attr}>{text}</{tag}>'
|
self.assertEqual(label["class"], ["form-label"])
|
||||||
|
|
||||||
self.assertInHTML(needle, html)
|
def assertModifiedLabel(self, html: str, text: str):
|
||||||
|
soup = self.make_soup(html)
|
||||||
def assertModifiedLabel(self, html: str, text: str, id: str = ""):
|
label = soup.find("label", string=lambda s: s and s.strip() == text)
|
||||||
id_attr = f'for="{id}"' if id else ""
|
self.assertEqual(label["class"], ["form-label", "text-bold"])
|
||||||
tag = "label" if id else "div"
|
|
||||||
needle = f'<{tag} class="form-label text-bold" {id_attr}>{text}</{tag}>'
|
|
||||||
|
|
||||||
self.assertInHTML(needle, html)
|
|
||||||
|
|
||||||
def test_search_form_inputs(self):
|
def test_search_form_inputs(self):
|
||||||
# Without params
|
# Without params
|
||||||
@@ -216,27 +212,27 @@ class BookmarkSearchTagTest(TestCase, BookmarkFactoryMixin, HtmlTestMixin):
|
|||||||
url = "/test"
|
url = "/test"
|
||||||
rendered_template = self.render_template(url)
|
rendered_template = self.render_template(url)
|
||||||
|
|
||||||
self.assertUnmodifiedLabel(rendered_template, "Sort by", "id_sort")
|
self.assertUnmodifiedLabel(rendered_template, "Sort by")
|
||||||
self.assertUnmodifiedLabel(rendered_template, "Shared filter")
|
self.assertUnmodifiedLabel(rendered_template, "Shared filter")
|
||||||
self.assertUnmodifiedLabel(rendered_template, "Unread filter")
|
self.assertUnmodifiedLabel(rendered_template, "Unread filter")
|
||||||
|
|
||||||
# Modified sort
|
# Modified sort
|
||||||
url = "/test?sort=title_asc"
|
url = "/test?sort=title_asc"
|
||||||
rendered_template = self.render_template(url)
|
rendered_template = self.render_template(url)
|
||||||
self.assertModifiedLabel(rendered_template, "Sort by", "id_sort")
|
self.assertModifiedLabel(rendered_template, "Sort by")
|
||||||
self.assertUnmodifiedLabel(rendered_template, "Shared filter")
|
self.assertUnmodifiedLabel(rendered_template, "Shared filter")
|
||||||
self.assertUnmodifiedLabel(rendered_template, "Unread filter")
|
self.assertUnmodifiedLabel(rendered_template, "Unread filter")
|
||||||
|
|
||||||
# Modified shared
|
# Modified shared
|
||||||
url = "/test?shared=yes"
|
url = "/test?shared=yes"
|
||||||
rendered_template = self.render_template(url)
|
rendered_template = self.render_template(url)
|
||||||
self.assertUnmodifiedLabel(rendered_template, "Sort by", "id_sort")
|
self.assertUnmodifiedLabel(rendered_template, "Sort by")
|
||||||
self.assertModifiedLabel(rendered_template, "Shared filter")
|
self.assertModifiedLabel(rendered_template, "Shared filter")
|
||||||
self.assertUnmodifiedLabel(rendered_template, "Unread filter")
|
self.assertUnmodifiedLabel(rendered_template, "Unread filter")
|
||||||
|
|
||||||
# Modified unread
|
# Modified unread
|
||||||
url = "/test?unread=yes"
|
url = "/test?unread=yes"
|
||||||
rendered_template = self.render_template(url)
|
rendered_template = self.render_template(url)
|
||||||
self.assertUnmodifiedLabel(rendered_template, "Sort by", "id_sort")
|
self.assertUnmodifiedLabel(rendered_template, "Sort by")
|
||||||
self.assertUnmodifiedLabel(rendered_template, "Shared filter")
|
self.assertUnmodifiedLabel(rendered_template, "Shared filter")
|
||||||
self.assertModifiedLabel(rendered_template, "Unread filter")
|
self.assertModifiedLabel(rendered_template, "Unread filter")
|
||||||
|
Reference in New Issue
Block a user