0001-misc-more-items-accessibility-40883-40884.patch
combo/apps/wcs/templates/combo/wcs/forms_of_category.html | ||
---|---|---|
25 | 25 |
{% if form.description %}<div class="description">{{ form.description|safe }}</div>{% endif %} |
26 | 26 |
</li> |
27 | 27 |
{% endfor %} |
28 |
</ul> |
|
28 | 29 | |
29 | 30 |
{% if more_forms %} |
30 |
<li class="more-items"><a>+</a></li> |
|
31 |
<button aria-expanded="false" aria-controls="wcs-more-items-{{ cell.get_reference }}" aria-label="{% trans 'More items' %}" id="btn-wcs-more-items-{{ cell.get_reference }}" class="more-items--button">+</button> |
|
32 |
<ul style="display: none" class="more-items--list" id="wcs-more-items-{{ cell.get_reference }}" aria-labelledby="btn-wcs-more-items-{{ cell.get_reference }}"> |
|
31 | 33 |
{% for form in more_forms %} |
32 |
<li style="display: none" class="additional-form {% if form.authentication_required %}required-authentication{% endif %}
|
|
34 |
<li class="more-items--item {% if form.authentication_required %}required-authentication{% endif %}
|
|
33 | 35 |
{% for context in form.required_authentication_contexts %}required-{{context}}-authentication {% endfor %} |
34 | 36 |
{% for keyword in form.keywords %}keyword-{{keyword|slugify}} {% endfor %} |
35 | 37 |
{% if form.redirection %}is-redirection{% endif %}" |
combo/public/static/js/combo.public.js | ||
---|---|---|
99 | 99 |
$(this).parent().hide(); |
100 | 100 |
$(this).parent().nextAll().show(); |
101 | 101 |
}); |
102 |
$(document).on('click', 'button.more-items--button', function() { |
|
103 |
$(this).attr('aria-expanded', 'true'); |
|
104 |
$(this).hide(); |
|
105 |
$('#' + $(this).attr('aria-controls')).show().focus(); |
|
106 |
}); |
|
102 | 107 | |
103 | 108 |
var menu_page_ids = $.makeArray($('[data-menu-page-id]').map(function() { return $(this).data('menu-page-id'); })); |
104 | 109 |
if (menu_page_ids.length && $('body').data('check-badges') === true) { |
combo/public/templates/combo/link-list-cell.html | ||
---|---|---|
1 |
{% load i18n %} |
|
1 | 2 |
{% block cell-content %} |
2 | 3 |
{% spaceless %} |
3 | 4 |
{% if title %}<h2>{{ title }}</h2>{% endif %} |
... | ... | |
7 | 8 |
{% for link in links %} |
8 | 9 |
<li><a href="{{ link.url }}">{{ link.title }}</a></li> |
9 | 10 |
{% endfor %} |
11 |
</ul> |
|
10 | 12 | |
11 | 13 |
{% if more_links %} |
12 |
<li class="more-items"><a>+</a></li> |
|
14 |
<button aria-expanded="false" aria-controls="more-items-{{ cell.get_reference }}" aria-label="{% trans 'More items' %}" id="btn-more-items-{{ cell.get_reference }}" class="more-items--button">+</button> |
|
15 |
<ul style="display: none" class="more-items--list" id="more-items-{{ cell.get_reference }}" aria-labelledby="btn-more-items-{{ cell.get_reference }}"> |
|
13 | 16 |
{% for link in more_links %} |
14 |
<li style="display: none" class="additional-links"><a href="{{ link.url }}">{{ link.title }}</a></li>
|
|
17 |
<li class="more-items--item"><a href="{{ link.url }}">{{ link.title }}</a></li>
|
|
15 | 18 |
{% endfor %} |
16 | 19 |
{% endif %} |
17 | 20 |
</ul> |
tests/test_cells.py | ||
---|---|---|
273 | 273 |
order=1, |
274 | 274 |
) |
275 | 275 |
ctx = {'page_cells': [item, item2]} |
276 |
assert '<li class="more-items"><a>+</a></li>' not in cell.render(ctx)
|
|
276 |
assert 'class="more-items--button">+</button>' not in cell.render(ctx)
|
|
277 | 277 |
cell.limit = 1 |
278 |
assert '<li class="more-items"><a>+</a></li>' in cell.render(ctx)
|
|
278 |
assert 'class="more-items--button">+</button>' in cell.render(ctx)
|
|
279 | 279 | |
280 | 280 | |
281 | 281 |
def test_link_list_cell_validity(): |
282 |
- |